Hadoop集群搭建(hdfs、yarn)
Hadoop 是 Apache 软件基金会旗下的一个开源项目,是用于处理大数据的分布式系统基础架构,被广泛应用于大数据存储、处理和分析等场景。
一、核心组件
1、Hadoop 分布式文件系统(HDFS)
具有高容错性,能在低成本硬件上运行,可将大规模数据分布存储在多个节点上,支持数据的可靠读写,适合处理大文件和流式数据访问。
2、YARN(Yet Another Resource Negotiator)
负责集群资源的管理和调度,将资源分配给不同的应用程序,使多个应用程序能在同一集群中共享资源并高效运行。
3、MapReduce
一种编程模型和计算框架,用于大规模数据集的并行处理。它将数据处理过程分为 Map(映射)和 Reduce(归约)两个阶段,方便用户将复杂的计算任务分解为可在多个节点上并行执行的子任务。
二、特点
1、高可靠性
通过数据冗余和自动故障转移机制,确保数据的安全性和系统的稳定性,即使部分节点出现故障,也能保证数据不丢失和任务继续执行。
2、高可扩展性
能够轻松扩展到大量的节点,以处理不断增长的数据量和计算需求,可根据业务发展灵活添加硬件资源。
3、高效性
利用数据本地性原理,将计算任务分配到存储数据的节点上执行,减少数据传输开销,提高计算效率,同时支持大规模数据的并行处理,大大缩短了数据处理时间。
4、低成本
基于普通的商用硬件构建集群,降低了硬件成本,且开源的特性使其无需支付软件授权费用,降低了整体的大数据处理成本。
三、Hadoop集群搭建(HDFS、YARN)
1、服务器免密操作
三台服务器均需要操作:
ssh-keygen 生成秘钥,
然后ssh-copy root@ip
ssh-copy root@192.168.50.xx
ssh-copy root@192.168.50.xx
ssh-copy root@192.168.50.xx
2、下载hadoop的安装包
可以自行前往官网进行下载:hadoop下载链接
我下载到/opt/module目录下,并通过tar -xvf命令进行解压,解压完毕后如下所示:
drwxr-xr-x 4 root root 4096 Mar 24 03:27 ./
drwxr-xr-x 5 root root 4096 Mar 20 13:10 ../
drwxr-xr-x 10 root root 4096 Mar 21 03:21 flink-1.17.0/
drwxr-xr-x 10 root root 4096 Mar 4 2024 hadoop-3.4.0/
-rw-r--r-- 1 root root 965537117 Mar 24 03:25 hadoop-3.4.0.tar.gz
root@node-1:/opt/module#
3、配置环境变量
执行命令:vim /etc/profile,打开环境变量进行配置:
#hadoop3.4.0
export HADOOP_HOME=/opt/module/hadoop-3.4.0
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin
#flink需要
export HADOOP_CLASSPATH=`hadoop classpath`
export HADOOP_CONF_DIR=${HADOOP_HOME}/etc/hadoop
通过:wq进行保存并退出,执行命令source /etc/profile加载环境变量。
通过 dadoop version 查看dadoop信息:
root@node-1:/opt/module/hadoop-3.4.0/etc/hadoop# source /etc/profile
root@node-1:/opt/module/hadoop-3.4.0/etc/hadoop# hadoop version
Hadoop 3.4.0
Source code repository git@github.com:apache/hadoop.git -r bd8b77f398f626bb7791783192ee7a5dfaeec760
Compiled by root on 2024-03-04T06:35Z
Compiled on platform linux-x86_64
Compiled with protoc 3.21.12
From source with checksum f7fe694a3613358b38812ae9c31114e
This command was run using /opt/module/hadoop-3.4.0/share/hadoop/common/hadoop-common-3.4.0.jar
root@node-1:/opt/module/hadoop-3.4.0/etc/hadoop#
4、修改配置文件(三台服务器均需配置)
(1)修改Hadoop配置文件
cd /data/hadoop-3.4.0/etc/hadoop,进去hadoop目录下
vi workers 加入下面配置文件
node-1
node-2
node-3
vim hadoop-env.sh 加入下面配置
export JAVA_HOME=/opt/jdk1.8.0_211
export HADOOP_HOME=/opt/module/hadoop-3.4.0
export HADOOP_CONF_DIR=${HADOOP_HOME}/etc/hadoop
export HADOOP_LOG_DIR=${HADOOP_HOME}/logs
export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root
vim core-site.xml 加入下面配置
<property>
<name>fs.defaultFS</name>
<value>hdfs://192.168.50.55:8020</value>
</property>
<property>
<name>io.file.buffer.size</name>
<value>131072</value>
</property>
<property>
<name>hadoop.http.staticuser.user</name>
<value>root</value>
</property>
(2)hdfs配置文件
vim hdfs-site.xml 加入下面配置信息
<property>
<name>dfs.datanode.data.dir.perm</name>
<value>700</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/data/nn</value>
</property>
<property>
<name>dfs.namenode.hosts</name>
<value>node-1,node-2,node-3</value>
</property>
<property>
<name>dfs.blocksize</name>
<value>268435456</value>
</property>
<property>
<name>dfs.namenode.handler.count</name>
<value>100</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/data/dn</value>
</property>
(3)yarn配置文件
vim yarn-site.xml 加入下面配置信息
<property>
<name>yarn.resourcemanager.hostname</name>
<value>node-1</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.pmem-check-enabled</name>
<value>false</value>
</property>
<property>
<name>yarn.nodemanager.vpmem-check-enabled</name>
<value>false</value>
</property>
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<property>
<name>yarn.log.server.url</name>
<value>http://node-1:19888/jobhistory/logs</value>
</property>
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>604800</value>
</property>
(4)MapReduce配置文件
vim mapred-site.xml 加入下面配置信息
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>node-1:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>node-1:19888</value>
</property>
5、文件分发
将配置好的文件分发到其余两台服务器上面
scp -r /opt/module/hadoop-3.4.0/ root@node-1:/opt/module
scp -r /opt/module/hadoop-3.4.0/ root@node-2:/opt/module
分发系统环境变量文件
scp /etc/profile root@node-1:/etc
scp /etc/profile root@node-2:/etc
在node-2、node-3中使用source /etc/profile命令初始化系统环境变量
创建hdfs存储文件路径
mkdir /data/nn
mkdir /data/dn
6、启动集群
(1)初始化
#格式化NameNode
hadoop namenode -format
#启动hdfs集群
start-dfs.sh
#启动yarn集群
start-yarn.sh
7、访问web页面
访问hdfs可视化:http://192.168.50.55:9870/
访问yarn:http://192.168.50.55:8088/
8、关闭hdfs集群和yarn集群
#一键关闭hdfs集群
stop-dfs.sh
#一键关闭yarn集群
stop-yarn.sh
至此,hadoop的搭建全部完成,后续继续Flink的学习。