当前位置: 首页 > news >正文

云计算与大数据——部署Hadoop集群并运行MapReduce集群(超级详细!)

云计算与大数据——部署Hadoop集群并运行MapReduce集群(超级详细!)

Linux搭建Hadoop集群(CentOS7+hadoop3.2.0+JDK1.8+Mapreduce完全分布式集群)

本文章所用到的版本号: CentOS7 Hadoop3.2.0 JDK1.8

基本概念及重要性

很多小伙伴部署集群用hadoop用mapreduce,却不知道到底部署了什么,有什么用。在部署集群之前先给大家讲一下Hadoop和MapReduce的基本概念,以及它们在大数据处理中的重要性:

-Hadoop 是一个由Apache基金会开发的开源软件框架,用于在大规模数据集上进行分布式处理和存储。Hadoop的核心组件包括Hadoop Distributed File System (HDFS)和MapReduce。

  • HDFS 是一个分布式文件系统,可以在普通的硬件上存储大量的数据。HDFS将数据分割成多个块,然后在集群中的多个节点上进行分布式存储,从而提供了高容错性和高吞吐量。

  • MapReduce 是一种编程模型,用于处理和生成大数据集。MapReduce任务包括两个阶段:Map阶段和Reduce阶段。在Map阶段,输入数据被分割成多个独立的块,然后并行处理。在Reduce阶段,处理结果被合并成一个最终的输出。

Hadoop和MapReduce在大数据处理中的重要性主要体现在以下几点:

  1. 可扩展性:Hadoop可以在数百或数千台机器上运行,处理PB级别的数据。

  2. 容错性:Hadoop可以自动处理节点故障,保证数据的可靠性和完整性。

  3. 成本效益:Hadoop可以在普通的硬件上运行,降低了大数据处理的成本。

  4. 灵活性:MapReduce编程模型可以处理结构化和非结构化的数据,适应各种类型的数据处理任务。

下面正式进入正题话!

一、直接选择root用户登录并关闭防火墙

在这里插入图片描述

直接选择root用户登录,避免了普通用户授权和切换用户导致的一些环境问题,简单来说就是高效、方便。

然后关闭防火墙:

systemctl stop firewalld  //关闭防火墙

在这里插入图片描述

systemctl disable firewalld  //关闭开机自启

在这里插入图片描述

systemctl status firewalld  //查看防火墙状态

在这里插入图片描述
让防火墙处于关闭状态。

二、实现ssh免密码登录

配置ssh的无密码访问

ssh-keygen -t rsa

连续按回车
在这里插入图片描述

cd ~/.ssh
cat id_rsa.pub >> authorized_keys

在这里插入图片描述
设置ssh服务器自动启动

vi ~/.bashrc 

在文件的最末尾按O进入编辑模式,加上:

/etc/init.d/ssh start

在这里插入图片描述
按ESC返回命令模式,输入:wq保存并退出。
让修改即刻生效

source ~/.bashrc

在这里插入图片描述
查看ssh服务状态。

systemctl status sshd

在这里插入图片描述

三、CentOS7 安装jdk1.8

1、yum安装

  1. 安装之前先查看一下有无系统自带jdk,有的话先卸载。
    在这里插入图片描述
    卸载自带的jdk:
    rpm -e --nodeps 上步查询出的所有jdk
    例如:
[root@master ~]# rpm -e --nodeps copy-jdk-configs-3.3-10.el7_5.noarch

验证是否已经卸载干净:

java -version

在这里插入图片描述
卸载完之后开始安装jdk1.8:

查看可安装的版本

yum list java*

在这里插入图片描述
安装1.8.0版本openjdk

yum -y install java-1.8.0-openjdk*

在这里插入图片描述
在这里插入图片描述
安装位置查看:

rpm -qa | grep java
rpm -ql java-1.8.0-openjdk-1.8.0.352.b08-2.el7_9.x86_64

在这里插入图片描述
添加用户环境变量
添加:

export JAVA_HOME=/usr/lib/jvm/java-openjdk
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin

在这里插入图片描述
然后执行

source ~/.bashrc

在这里插入图片描述
验证安装:

which java

查看java版本信息

java -version

在这里插入图片描述
说明JDK配置完成。

四、下载hadoop

这个链接也有更多3.2.0版本其它的hadoop文件:
https://archive.apache.org/dist/hadoop/common/hadoop-3.2.0/
这里有下载好的hadoop-3.2.0.tar.gz网盘文件链接:
链接:https://pan.baidu.com/s/1a3GJH_fNhUkfaDbckrD8Gg?pwd=2023

下载hadoop文件:
在这里插入图片描述
然后上传文件并解压缩
1.在opt目录下新建一个名为hadoop的目录,并将下载得到的hadoop-3.2.0.tar上传到该目录下
mkdir /opt/hadoop

解压安装:

tar -zxvf hadoop-3.2.0.tar.gz

在这里插入图片描述
配置Hadoop环境变量:

vim ~/.bashrc

在这里插入图片描述
添加hadoop环境变量:

export JAVA_HOME=/usr/lib/jvm/java-openjdk
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin:/opt/hadoop/hadoop-3.2.0/bin:/opt/hadoop/hadoop-3.2.0/sbin
export HADOOP_HOME=/opt/hadoop/hadoop-3.2.0
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native

在这里插入图片描述
然后我们执行

source  ~/.bashrc

使修改的配置文件生效。
在这里插入图片描述

五、Hadoop配置文件修改

新建几个目录:

mkdir /root/hadoop
mkdir /root/hadoop/tmp
mkdir /root/hadoop/var
mkdir /root/hadoop/dfs
mkdir /root/hadoop/dfs/name
mkdir /root/hadoop/dfs/data

在这里插入图片描述
修改etc/hadoop中的一系列配置文件
vi /opt/hadoop/hadoop-3.2.0/etc/hadoop/core-site.xml
在节点内加入配置:

<configuration><property><name>hadoop.tmp.dir</name><value>/root/hadoop/tmp</value><description>Abase for other temporary directories.</description></property><property><name>fs.default.name</name><value>hdfs://master:9000</value></property></configuration>

在这里插入图片描述
修改hadoop-env.sh

vi /opt/hadoop/hadoop-3.2.0/etc/hadoop/hadoop-env.sh

将 export JAVA_HOME=${JAVA_HOME}
修改为: export JAVA_HOME=/usr/lib/jvm/java-openjdk
说明:修改为自己的JDK路径
在这里插入图片描述

修改hdfs-site.xml
vi /opt/hadoop/hadoop-3.2.0/etc/hadoop/hdfs-site.xml
在节点内加入配置:

<configuration>
<property><name>dfs.name.dir</name><value>/root/hadoop/dfs/name</value><description>Path on the local filesystem where theNameNode stores the namespace and transactions logs persistently.</description>
</property><property><name>dfs.data.dir</name><value>/root/hadoop/dfs/data</value><description>Comma separated list of paths on the localfilesystem of a DataNode where it should store its blocks.</description>
</property><property><name>dfs.replication</name><value>2</value>
</property><property><name>dfs.permissions</name><value>false</value><description>need not permissions</description>
</property>
</configuration>

在这里插入图片描述
新建并且修改mapred-site.xml:
vi /opt/hadoop/hadoop-3.2.0/etc/hadoop/mapred-site.xml
在节点内加入配置:

<configuration>
<!-- 配置mapReduce在Yarn上运行(默认本地运行) -->
<property><name>mapreduce.framework.name</name><value>yarn</value>
</property>
</configuration>

在这里插入图片描述
修改workers文件:

vi /opt/hadoop/hadoop-3.2.0/etc/hadoop/workers

将里面的localhost删除,添加以下内容(master和node1节点都要修改):

master
node1

在这里插入图片描述
修改yarn-site.xml文件:

vi /opt/hadoop/hadoop-3.2.0/etc/hadoop/yarn-site.xml

在这里插入图片描述
配置hadoop-3.2.0/sbin/目录下start-dfs.sh、start-yarn.sh、stop-dfs.sh、stop-yarn.sh文件
服务启动权限配置

cd /opt/hadoop/hadoop-3.2.0

配置start-dfs.sh与stop-dfs.sh文件

vi sbin/start-dfs.sh
vi sbin/stop-dfs.sh
加入下面内容
HDFS_DATANODE_USER=root
HADOOP_SECURE_DN_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root

在这里插入图片描述

配置start-yarn.sh与stop-yarn.sh文件

vi sbin/start-yarn.sh
vi sbin/stop-yarn.sh

加入下面内容

YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root

在这里插入图片描述
在这里插入图片描述
配置好基础设置(SSH、JDK、Hadooop、环境变量、Hadoop和MapReduce配置信息)后,克隆虚拟机,获得从机node1节点。
在这里插入图片描述
克隆master主机后,获得从机node1节点。
然后开始修改网卡信息:

vim /etc/sysconfig/network-scripts/ifcfg-ens33

修改node1节点ip信息:
在这里插入图片描述

修改node1节点主机名:

vi /etc/hostname

在这里插入图片描述
修改node1节点对应的ip 和主机名(主从节点保持一致)

vim /etc/hosts  

在这里插入图片描述
主从节点互连ssh试试:
先试试在master节点连接node1节点

ssh node1

在这里插入图片描述
再试试node1节点连接master节点:

ssh master

在这里插入图片描述
OK,互连成功。(按exit可以退出

六、启动Hadoop

因为master是namenode,node1是datanode,所以只需要对master进行初始化操作,也就是对hdfs进行格式化。
进入到master这台机器/opt/hadoop/hadoop-3.2.0/bin目录:

  cd /opt/hadoop/hadoop-3.2.0/bin

执行初始化脚本

  ./hadoop namenode -format

在这里插入图片描述
在这里插入图片描述

然后执行启动进程:

./sbin/start-all.sh

在这里插入图片描述
查看启动进程情况。

jps

在这里插入图片描述
master是我们的namenode,该机器的IP是192.168.95.20,在本地电脑访问如下地址:

http://192.168.95.20:9870/

在这里插入图片描述
在本地浏览器里访问如下地址:

http://192.168.95.20:8088/cluster

自动跳转到cluster页面
在这里插入图片描述
在hdfs上建立一个目录存放文件

./bin/hdfs dfs -mkdir -p /home/hadoop/myx/wordcount/input

查看分发复制是否正常

./bin/hdfs dfs -ls /home/hadoop/myx/wordcount/input

在这里插入图片描述

七、运行MapReduce集群

Mapreduce运行案例:
在hdfs上建立一个目录存放文件
例如

./bin/hdfs dfs -mkdir -p /home/hadoop/myx/wordcount/input

可以先简单地写两个小文件分别为text1和text2,如下所示。
file:text1.txt

hadoop is  very good 
mapreduce is very good
vim text1

在这里插入图片描述

然后可以把这两个文件存入HDFS并用WordCount进行处理.

./bin/hdfs dfs -put text1 /home/hadoop/myx/wordcount/input

在这里插入图片描述
查看分发情况
在这里插入图片描述
运行MapReduce用WordCount进行处理

./bin/hadoop jar ![在这里插入图片描述](https://img-blog.csdnimg.cn/81fe96bc9823429d8263e450ba417363.png)
/opt/hadoop/hadoop-3.2.0/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.2.0.jar  wordcount /home/hadoop/myx/wordcount/input /home/hadoop/myx/wordcount/output

在这里插入图片描述

在这里插入图片描述
最终结果会存储在指定的输出目录中,查看输出目录里面可以看到以下内容。

./bin/hdfs dfs -cat /home/hadoop/myx/wordcount/output/part-r-00000*

运行输出结果也可以在web端查看,里面有详细信息:

http://192.168.95.20:9870/explorer.html#/home/hadoop/myx/wordcount/output

在这里插入图片描述
在这里插入图片描述
以上输出结果为每个单词出现的次数。

再来试试第二个案例:
file:text2.txt

vim text2
hadoop is  easy to learn 
mapreduce is  easy to learn

在这里插入图片描述
在浏览器端查看新建的input2目录:
在这里插入图片描述
运行MapReduce进行处理,设置输出的目录为output2(输出结果目录不用提前创建,Mapreduce运行过程中会自动生成output2输出目录)。

./bin/hadoop jar /opt/hadoop/hadoop-3.2.0/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.2.0.jar  wordcount /home/hadoop/myx/wordcount/input2 /home/hadoop/myx/wordcount/output2

在这里插入图片描述
在这里插入图片描述
运行结束后,查看text2的输出结果

./bin/hdfs dfs -cat /home/hadoop/myx/wordcount/output2/part-r-00000*

在这里插入图片描述

运行输出结果也可以在web端查看,里面有详细信息:

http://192.168.95.20:9870/explorer.html#/home/hadoop/myx/wordcount/output2

在这里插入图片描述
在这里插入图片描述
以上输出结果为每个单词出现的次数。

我们再自己试试运行测试程序WordCount
先在hadoop当前用户目录下新建文件夹WordCount,在其中建立两个测试文件分别为file1.txt,file2.txt。自行在两个文件中填写内容。
新建文件夹WordCount。

mkdir WordCount
ls

在这里插入图片描述

cd WordCount
vim file1.txt

在这里插入图片描述
file1.txt文件内容为:

This is the first hadoop test program!

在这里插入图片描述

vim file2.txt

file2.txt文件内容为:

This  program is not very difficult,but this program is a common hadoop program!

在这里插入图片描述
然后在Hadoop文件系统HDFS中/home目录下新建文件夹input,并查看其中的内容。具体命令如下。

cd /opt/hadoop/hadoop-3.2.0
./bin/hadoop fs -mkdir /input
./bin/hadoop fs -ls /

在这里插入图片描述
在浏览器端查看:

http://192.168.95.20:9870/explorer.html#/input

在这里插入图片描述
将WordCount文件夹中file1.txt\file2.txt文件上传到刚刚创建的“input”文件夹。具体命令如下。

./bin/hadoop fs -put /opt/hadoop/hadoop-3.2.0/WordCount/*.txt  /input

在这里插入图片描述
运行Hadoop的示例程序,设置输出的目录为/output(输出结果目录不用提前创建,Mapreduce运行过程中会自动生成/output输出目录)。

./bin/hadoop jar /opt/had![在这里插入图片描述](https://img-blog.csdnimg.cn/abf75678cb6943698c1a26d250317caf.png)
oop/hadoop-3.2.0/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.2.0.jar  wordcount  /input /output

在这里插入图片描述

在这里插入图片描述
查看输出结果的文件目录信息和WordCount结果。
使用如下命令查看输出结果的文件目录信息。

./bin/hadoop fs -ls /output

在这里插入图片描述

使用如下命令查看WordCount的结果。

./bin/hdfs dfs -cat /output/part-r-00000*

输出结果如下所示
在这里插入图片描述
运行输出结果也可以在web端查看,里面有详细信息:

http://192.168.95.20:9870/explorer.html#/output

在这里插入图片描述
以上输出结果为每个单词出现的次数。
至此Centos搭建hadoop集群和运行3个MapReduce集群案例完成!

在这里给大家扩展一下优化Hadoop集群性能和MapReduce任务效率的一些技巧和建议:

  1. 硬件优化:选择适合的硬件配置是提高Hadoop集群性能的关键。例如,使用更快的CPU,更大的内存,更快的硬盘(如SSD),以及高速的网络连接。

  2. 配置优化:Hadoop和MapReduce的配置参数可以根据具体的工作负载进行调整。例如,可以增加HDFS的块大小以提高大文件的处理速度,或者调整MapReduce的内存设置以适应更大的任务。

  3. 数据本地化:尽可能在数据所在的节点上运行MapReduce任务,以减少网络传输的开销。

  4. 并行处理:通过增加MapReduce任务的并行度,可以更充分地利用集群的资源。

  5. 编程优化:在编写MapReduce程序时,应尽可能减少数据的传输和排序。例如,可以使用Combiner函数来减少Map和Reduce阶段之间的数据传输。

  6. 使用高级工具:一些高级的数据处理工具,如Apache Hive和Apache Pig,可以自动优化MapReduce任务,使其更高效。

  7. 监控和调试:使用Hadoop自带的监控工具,如Hadoop Web UI和Hadoop Metrics,可以帮助你发现和解决性能问题。

以上只是一些基本的优化技巧和建议,具体的优化策略需要根据具体需求和环境进行调整。小马同学在这里祝各位部署一切顺利!

相关文章:

云计算与大数据——部署Hadoop集群并运行MapReduce集群(超级详细!)

云计算与大数据——部署Hadoop集群并运行MapReduce集群(超级详细&#xff01;) Linux搭建Hadoop集群(CentOS7hadoop3.2.0JDK1.8Mapreduce完全分布式集群) 本文章所用到的版本号&#xff1a; CentOS7 Hadoop3.2.0 JDK1.8 基本概念及重要性 很多小伙伴部署集群用hadoop用mapr…...

基于jenkins+k8s实现devops

1、背景 由于jenkins运行在k8s上能够更好的利用动态agent进行构建。所以写了个部署教程&#xff0c;亲测无坑 2、部署 1、创建ns kubectl create namespace devops 2、kubectl apply -f jenkins.yml apiVersion: v1 kind: ServiceAccount metadata:name: jenkinsnamespace…...

一文了解企业如何实现文件自动化实时同步

在当今的数字化时代&#xff0c;数据是企业的核心资产&#xff0c;也是企业竞争力的重要体现。数据的传输、共享、协作、备份等都需要依赖文件同步技术&#xff0c;实现数据在不同平台和设备之间的一致性和可用性。文件同步是指将一个或多个文件夹中的内容复制或更新到另一个或…...

低代码系统哪里好

低代码作为近些年来被热议的话题&#xff0c;一直备受争议。低代码的出现更多的是用来辅助那些没有太多技能的人士而使用&#xff0c;在某些方面依然需要强大的代码来解决生产革新。所以低代码也不是浑水猛兽&#xff0c;也需要根据实际情况加以利用。那么为什么低代码会收到如…...

C#WPF通知更改公共类使用实例

本文实例演示C#WPF通知更改公共类使用实例,通过使用公共类简化了代码。其中的代码中也实现了命令的用法。 定义: INotifyPropertyChanged 接口:用于向客户端(通常是执行绑定的客户端)发出某一属性值已更改的通知。 首先创建WPF项目,添加按钮和文本控件 <Window x:C…...

解决高并发问题

在处理项目中的高并发问题时&#xff0c;可以采取以下几种方法&#xff1a; 后端处理&#xff1a;大部分的高并发处理是在后端进行的。可以通过优化数据库查询、增加缓存机制&#xff08;如集成Redis&#xff09;、使用分布式技术&#xff08;如分布式缓存、分布式锁&#xff…...

B+树的定义以及查找

1.B树的定义 一棵m阶的B树需满足下列条件: 每个分支结点最多有m棵子树(孩子结点)。非叶根结点至少有两棵子树&#xff0c;其他每个分支结点至少有「m/2]棵子树。结点的子树个数与关键字个数相等。所有叶结点包含全部关键字及指向相应记录的指针&#xff0c;叶结点中将关键字按…...

InputAction的使用

感觉Unity中InputAction的使用&#xff0c;步步都是坑。 需求点介绍 当用户长按0.5s 键盘X或者VR left controller primaryButton (即X键)时&#xff0c;显示下一个图片。 步骤总览 创建InputAction资产将该InputAction资产绑定到某个GameObject上在对应的script中&#xf…...

Bug排查思路

遇到一个Bug&#xff0c;怎么排查&#xff1f;以下几个思路&#xff0c;希望能对大家有所启发 一、环境问题 1、开发的代码是否已更新 2、是否是缓存原因导致的&#xff08;强刷&#xff0c;手动清除缓存&#xff0c;web甚至可以直接用无恒模式查看页面&#xff09; 3、是否…...

独立站引流,如何在Reddit进行营销推广?

Reddit是目前最被忽视却最具潜力的社交媒体营销平台之一&#xff0c;它相当于国内的百度贴吧&#xff0c;是美国最大的论坛&#xff0c;也是美国第五大网站&#xff0c;流量仅次于Google、Youtube、Facebook以及亚马逊。 如果会玩&#xff0c;Reddit也可以跟其他的社交媒体营销…...

文件拖拽上传功能已经烂大街了,你还不会吗?

说在前面 &#x1f5bc;文件拖拽上传功能现在已经随处可见&#xff0c;大家应该都用过了吧&#xff0c;那么它具体是怎么实现的大家有去了解过吗&#xff1f;今天我们一起来实现一下这个功能&#xff0c;并封装一个拖拽上传组件吧。 效果展示 体验地址&#xff1a;http://jyeon…...

TCP与UDP协议详解!!!

TCP/IP运输层中的两个重要协议 TCP的报文结构 TCP的流量控制 流量控制&#xff1a;让发送方发送速率不要太快&#xff0c;TCP协议使用滑动窗口实现流量控制。 利用滑动窗口机制可以很方便地在TCP连接上实现对发送方的流量控制。 TCP接收方利用自己的接收窗口的大小来限制发送…...

《C++ primer》练习6.36-6.38:书写返回数组引用的函数声明

最近看C primer&#xff0c;看到《C primer》6.3.3练习&#xff0c;要求书写返回数组引用的函数声明&#xff0c;觉得有必要实践记录一下。 这里先总结返回数组的引用的的函数声明写法&#xff08;下面的Type是数组元素的类型&#xff0c;可以是int、float等&#xff0c;如果要…...

Spring Cloud Gateway快速入门(三)——过滤器

文章目录 前言Gateway内置网关过滤器什么是网关过滤器Gateway内置网关过滤器GlobalFilterPreFilterPostFilter 使用示例 Gateway全局网关过滤器什么是全局网关过滤器使用全局网关过滤器注册全局网关过滤器使用全局网关过滤器 全局网关过滤器和Gateway内置网关过滤器的区别1. 注…...

vue3相比vue2的优点

一、响应式&#xff1a; &#xff08;1&#xff09;vue2&#xff1a;内置的Object.defineProperty将data中的数据转化成响应式数据的&#xff0c;它会将data中的每个属性都转换为具有getter和setter的响应式属性 Object.defineProperty是一个内置的方法&#xff0c;它用于定义…...

gitee-快速设置

快速设置— 如果你知道该怎么操作&#xff0c;直接使用下面的地址 HTTPS SSH: gitgitee.com:liuzl33078235/esp-idf.git 我们强烈建议所有的git仓库都有一个README, LICENSE, .gitignore文件 初始化 readme 文件 Git入门&#xff1f;查看 帮助 , Visual Studio / TortoiseG…...

将切分的图片筛选出有缺陷的

将切分的图片筛选出有缺陷的 需求代码 需求 由于之前切分的图像有一些存在没有缺陷&#xff0c;需要再次筛选 将可视化的图像更改后缀 更改为xml的 可视化代码 可视化后只有7000多个图像 原本的图像有1W多张 代码 # 按照xml文件删除对应的图片 # coding: utf-8 from P…...

el-tooltip内容换行显示

效果图&#xff1a; html: <div class"rules-tooltip flex-center"><el-tooltip class"item" effect"dark" placement"bottom-start"><div slot"content" v-html"tipsContent"></div>&l…...

linux 下用posix semaphore 解决资源竞争问题实例

/* author: hjjdebug date: 2023年 09月 20日 星期三 09:33:58 CST description: 10辆汽车通过承重5辆汽车的桥,处理一个资源争用问题 * 10个线程代表10辆汽车 * 桥上只能承载5辆汽车, 代表最大只能同时有5辆汽车通过 概要: 让10个线程竞争5个资源,用posix 接口, sem…...

RocketMQ —消费者负载均衡

消费者从 Apache RocketMQ 获取消息消费时&#xff0c;通过消费者负载均衡策略&#xff0c;可将主题内的消息分配给指定消费者分组中的多个消费者共同分担&#xff0c;提高消费并发能力和消费者的水平扩展能力。本文介绍 Apache RocketMQ 消费者的负载均衡策略。 背景信息​ …...

树莓派超全系列教程文档--(61)树莓派摄像头高级使用方法

树莓派摄像头高级使用方法 配置通过调谐文件来调整相机行为 使用多个摄像头安装 libcam 和 rpicam-apps依赖关系开发包 文章来源&#xff1a; http://raspberry.dns8844.cn/documentation 原文网址 配置 大多数用例自动工作&#xff0c;无需更改相机配置。但是&#xff0c;一…...

MongoDB学习和应用(高效的非关系型数据库)

一丶 MongoDB简介 对于社交类软件的功能&#xff0c;我们需要对它的功能特点进行分析&#xff1a; 数据量会随着用户数增大而增大读多写少价值较低非好友看不到其动态信息地理位置的查询… 针对以上特点进行分析各大存储工具&#xff1a; mysql&#xff1a;关系型数据库&am…...

测试markdown--肇兴

day1&#xff1a; 1、去程&#xff1a;7:04 --11:32高铁 高铁右转上售票大厅2楼&#xff0c;穿过候车厅下一楼&#xff0c;上大巴车 &#xffe5;10/人 **2、到达&#xff1a;**12点多到达寨子&#xff0c;买门票&#xff0c;美团/抖音&#xff1a;&#xffe5;78人 3、中饭&a…...

MMaDA: Multimodal Large Diffusion Language Models

CODE &#xff1a; https://github.com/Gen-Verse/MMaDA Abstract 我们介绍了一种新型的多模态扩散基础模型MMaDA&#xff0c;它被设计用于在文本推理、多模态理解和文本到图像生成等不同领域实现卓越的性能。该方法的特点是三个关键创新:(i) MMaDA采用统一的扩散架构&#xf…...

【VLNs篇】07:NavRL—在动态环境中学习安全飞行

项目内容论文标题NavRL: 在动态环境中学习安全飞行 (NavRL: Learning Safe Flight in Dynamic Environments)核心问题解决无人机在包含静态和动态障碍物的复杂环境中进行安全、高效自主导航的挑战&#xff0c;克服传统方法和现有强化学习方法的局限性。核心算法基于近端策略优化…...

消息队列系统设计与实践全解析

文章目录 &#x1f680; 消息队列系统设计与实践全解析&#x1f50d; 一、消息队列选型1.1 业务场景匹配矩阵1.2 吞吐量/延迟/可靠性权衡&#x1f4a1; 权衡决策框架 1.3 运维复杂度评估&#x1f527; 运维成本降低策略 &#x1f3d7;️ 二、典型架构设计2.1 分布式事务最终一致…...

LangChain 中的文档加载器(Loader)与文本切分器(Splitter)详解《二》

&#x1f9e0; LangChain 中 TextSplitter 的使用详解&#xff1a;从基础到进阶&#xff08;附代码&#xff09; 一、前言 在处理大规模文本数据时&#xff0c;特别是在构建知识库或进行大模型训练与推理时&#xff0c;文本切分&#xff08;Text Splitting&#xff09; 是一个…...

C++--string的模拟实现

一,引言 string的模拟实现是只对string对象中给的主要功能经行模拟实现&#xff0c;其目的是加强对string的底层了解&#xff0c;以便于在以后的学习或者工作中更加熟练的使用string。本文中的代码仅供参考并不唯一。 二,默认成员函数 string主要有三个成员变量&#xff0c;…...

高效的后台管理系统——可进行二次开发

随着互联网技术的迅猛发展&#xff0c;企业的数字化管理变得愈加重要。后台管理系统作为数据存储与业务管理的核心&#xff0c;成为了现代企业不可或缺的一部分。今天我们要介绍的是一款名为 若依后台管理框架 的系统&#xff0c;它不仅支持跨平台应用&#xff0c;还能提供丰富…...

代理服务器-LVS的3种模式与调度算法

作者介绍&#xff1a;简历上没有一个精通的运维工程师。请点击上方的蓝色《运维小路》关注我&#xff0c;下面的思维导图也是预计更新的内容和当前进度(不定时更新)。 我们上一章介绍了Web服务器&#xff0c;其中以Nginx为主&#xff0c;本章我们来讲解几个代理软件&#xff1a…...