Apache Hadoop在CentOS下分布式集群安装
2021/6/17 7:25:57
本文主要是介绍Apache Hadoop在CentOS下分布式集群安装,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
Apache Hadoop在CentOS下分布式集群安装
分布式集群规划
节点名称 | IP | HDFS | YARN |
---|---|---|---|
bigdata02 | 192.168.237.132 | NameNode + DataNode 主节点 | NodeManager |
bigdata03 | 192.168.237.133 | DataNode + SecondaryNamenode | NodeManager |
bigdata04 | 192.168.237.134 | DataNode | NodeManager + ResourceManager主节点 |
环境准备
基础环境
-
JDK1.8(安装略),CentOS7(安装略),hadoop-2.7.7.tar.gz
-
关闭防火墙
#关闭命令 service firewalld stop chkconfig firewalld off
-
关闭SELINUX 配置文件:/etc/selinux/config
#SELINUX=enforcing SELINUX=disabled
设置hostname
-
在Master节点的bigdata02机器上,将hostname置为bigdata02
hostnamectl set-hostname bigdata02
-
同样的方式在另外两台worker节点上分别设置hostname为bigdata03、bigdata04
配置hosts文件信息
-
在三个节点都需要配置 vim /etc/hosts,都加入如下内容
192.168.237.132 bigdata02 192.168.237.133 bigdata03 192.168.237.134 bigdata04
设置节点之间的ssh免密登录
-
配置132节点到133节点和134节点的ssh免密登录,由于134作为Yarn的主节点,需在134节点启动Yarn集群,还需要配置134节点到132节点和133节点的ssh免密登录,一定要配。
-
每个节点生成ssh密钥,执行命令后会在~目录下生成.ssh文件夹,里面包含id_rsa和id_rsa.pub两个文件。
[root@bigdata02 ~]# ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa): Created directory '/root/.ssh'. Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /root/.ssh/id_rsa. Your public key has been saved in /root/.ssh/id_rsa.pub. ..................... [root@bigdata02 ~]# cd .ssh [root@bigdata02 .ssh]# ls id_rsa id_rsa.pub
-
在主节点上将公钥拷到一个特定文件authorized_keys中。
[root@bigdata02 ~]# cd .ssh [root@bigdata02 .ssh]# ls id_rsa id_rsa.pub [root@bigdata02 .ssh]# cp id_rsa.pub authorized_keys [root@bigdata02 .ssh]# ls authorized_keys id_rsa id_rsa.pub
-
将authorized_keys文件拷到下一个节点,并将该节点的ssh密钥id_rsa.pub加入该文件中。
#在bigdata02上使用scp命令实现远程文件拷贝 [root@bigdata02 .ssh]# scp authorized_keys root@bigdata03:/root/.ssh/ The authenticity of host 'bigdata03 (192.168.237.133)' can't be established. ECDSA key fingerprint is SHA256:MyB1zs0E3J/fm8pC0AN8ycsgEIBNHtUqd9xS0WAyv3s. ECDSA key fingerprint is MD5:88:48:3a:ba:3e:14:a7:d7:86:f6:51:74:00:10:f9:00. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added 'hadoop02,192.168.237.133' (ECDSA) to the list of known hosts. root@bigdata03's password: authorized_keys 100% 395 306.2KB/s 00:00 #登录bigdata03主机 [root@bigdata03 ~]# cd .ssh/ [root@bigdata03 .ssh]# ls authorized_keys id_rsa id_rsa.pub [root@bigdata03 .ssh]# cat id_rsa.pub >> authorized_keys #使用cat追加方式
-
重复上一步的操作,将bigdata04节点的ssh密钥加入到authorized_keys文件中,并将bigdata04节点生成的authorized_keys文件拷贝到其他两个节点(bigdata02、bigdata03)即可。
-
验证免密登录
使用ssh 用户名@节点名或ssh ip地址命令验证免密码登录。
[root@bigdata02 .ssh]# ssh root@bigdata03
总述安装步骤
- 准备好三台服务器
- 在第一个节点中安装Hadoop
2.1. 解压缩安装
2.2. 配置Hadoop_env.sh
2.3. 配置core-sitem.xml
2.4. 配置hdfs-site.xml
2.5. 配置mapred-site.xml
2.6. 配置yarn-site.xml
2.7. 配置slaves - 分发安装包到每个节点
- 所有节点配置环境变量
- 初始化Hadoop
- 启动集群
- 验证安装,启动是否成功
在主节点安装hadoop-2.7.7
-
在132节点创建路径/hadoop,将hadoop压缩包上传并解压出路径 hadoop-2.7.7
-
创建集群的相关数据存储目录、name目录和data目录
修改主节点配置文件
修改hadoop-env.sh配置文件,添加jdk安装目录配置
-
在路径/hadoop/hadoop-2.7.7/etc/hadoop下,进行配置文件修改
# The java implementation to use. export JAVA_HOME=/usr/local/src/jdk8
修改core-site.xml配置文件
-
在标签中添加如下内容:
<property> <name>fs.defaultFS</name> <value>hdfs://bigdata02:9000</value> <description>HDFS集群的url</description> </property> <property> <name>hadoop.tmp.dir</name> <value>/hadoop/bigdata/tmp</value> <description>HDFS集群的相关数据存储目录</description> </property>
修改hdfs-site.xml配置文件
-
在标签中添加如下内容:
<property> <name>dfs.namenode.name.dir</name> <value>/hadoop/bigdata/name</value> <description>为了保证元数据的安全一般配置多个不同目录</description> </property> <property> <name>dfs.datanode.data.dir</name> <value>/hadoop/bigdata/data</value> <description>datanode的数据存储目录</description> </property> <property> <name>dfs.replication</name> <value>3</value> <description>HDFS的数据块的副本存储个数</description> </property> <property> <name>dfs.secondary.http.address</name> <value>bigdata03:50090</value> <description>secondarynamenode运行节点的信息,和namenode不同节点</description> </property>
修改mapred-site.xml配置文件
-
集群只有 mapred-site.xml.template,可以从这个文件进行复制,或者直接改名也可
cp mapred-site.xml.template mapred-site.xml
-
然后修改配置文件
<property> <name>mapreduce.framework.name</name> <value>yarn</value> </property>
配置yarn-site.xml配置文件
-
在标签中添加如下内容:
<property> <name>yarn.resourcemanager.hostname</name> <value>bigdata04</value> <description>YARN集群主节点所在节点</description> </property> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> <description>YARN集群为MapReduce程序提供的shuffle服务</description> </property>
配置slaves配置文件
bigdata02 bigdata03 bigdata04
配置系统变量
vim /etc/profile
#set java environment export JAVA_HOME=/usr/local/src/jdk8 export JRE_HOME=$JAVA_HOME/jre export CLASS_PATH=.:$JAVA_HOME/lib:$JRE_HOME/lib export HADOOP_HOME=/hadoop/hadoop-2.7.7 export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
source /etc/profile
分发安装到其他节点
[root@bigdata02 /]# scp -r hadoop bigdata03:$PWD [root@bigdata02 /]# scp -r hadoop bigdata04:$PWD
在主节点执行HDFS集群的初始化
-
只需在bigdata02节点执行,进入到bin目录下执行
[root@bigdata02 bin]# ./hadoop namenode -format
-
注意
关于初始化操作,是第一次安装Hadoop集群的时候初始化一次就可以了,而不是后面每次使用的都需要初始化一次。如果你想要把一个旧HDFS集群的数据都给删掉,当做一个新集群来使用。那么可以重新初始化,但是还是要把对应的每个节点数据存储目录先行删掉。然后再初始化。这样又得到了一个新HDFS集群。
启动HDFS集群
-
按照规划,在bigdata02节点上启动hdfs集群,进入sbin目录执行启动命令
[root@bigdata02 sbin]# ./start-dfs.sh
在Yarn主节点启动Yarn集群
-
按规划,在bigdata04节点启动Yarn集群
[root@bigdata04 sbin]# ./start-yarn.sh
检查集群启动是否成功
- 在bigdata02上执行jps,按规划,如下正确启动
- 在bigdata03上执行jps,按规划,如下正确启动
- 在bigdata04上执行jps,按规划,如下正确启动
Hadoop 集群
-
包含了 HDFS 和 YARN 两个集群,所以两个集群都分别做一次测试
关于 HDFS:上传一个文件查看是否存在,再下载下来。[root@bigdata02 bigdata]# ls data name SettleRedisConfig.java tmp [root@bigdata02 bigdata]# hadoop fs -put SettleRedisConfig.java /user/java
Yarn集群
- 可提交一个 mapreduce 例子程序
检测web ui启动是否成功
-
如在windows系统浏览器查看,则需修改win系统的hosts文件进行映射。
192.168.237.132 bigdata02
192.168.237.133 bigdata03
192.168.237.134 bigdata04
HDFS集群的web ui地址:http://bigdata02:50070
YARN集群的web ui地址:http://bigdata04:8088
查看集群状态
hadoop dfsadmin -report hdfs dfsadmin -report(推荐用这个)
duce 例子程序
检测web ui启动是否成功
-
如在windows系统浏览器查看,则需修改win系统的hosts文件进行映射。
192.168.237.132 bigdata02
192.168.237.133 bigdata03
192.168.237.134 bigdata04
HDFS集群的web ui地址:http://bigdata02:50070
YARN集群的web ui地址:http://bigdata04:8088
查看集群状态
hadoop dfsadmin -report hdfs dfsadmin -report(推荐用这个)
这篇关于Apache Hadoop在CentOS下分布式集群安装的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2025-01-01使用 SVN合并操作时,怎么解决冲突的情况?-icode9专业技术文章分享
- 2025-01-01告别Anaconda?试试这些替代品吧
- 2024-12-31自学记录鸿蒙API 13:实现人脸比对Core Vision Face Comparator
- 2024-12-31自学记录鸿蒙 API 13:骨骼点检测应用Core Vision Skeleton Detection
- 2024-12-31自学记录鸿蒙 API 13:实现人脸检测 Core Vision Face Detector
- 2024-12-31在C++中的双端队列是什么意思,跟消息队列有关系吗?-icode9专业技术文章分享
- 2024-12-31内存泄漏(Memory Leak)是什么,有哪些原因和优化办法?-icode9专业技术文章分享
- 2024-12-31计算机中的内存分配方式堆和栈有什么关系和特点?-icode9专业技术文章分享
- 2024-12-31QT布局器的具体使用原理和作用是什么?-icode9专业技术文章分享
- 2024-12-30用PydanticAI和Gemini 2.0构建Airflow的AI助手