Hadoop3.1.3集群搭建
前言
当Hadoop采用分布式模式部署和运行时,存储采用分布式文件系统HDFS,而且,HDFS的名称节点和数据节点位于不同机器上。这时,数据就可以分布到多个节点上,不同数据节点上的数据计算可以并行执行,这时的MapReduce分布式计算能力才能真正发挥作用。
集群规划
我们使用三个虚拟机节点来搭建集群环境:
| ip | 主机名 | 功能 |
|---|---|---|
| 192.168.36.121 | hadoop1 | NameNode DataNode ResourceManager NodeManager |
| 192.168.36.122 | hadoop2 | DataNode NodeManager |
| 192.168.36.123 | hadoop3 | SecondryNameNode DataNode NodeManager |
分别在上述的节点上修改hosts文件,增加IP和主机名的映射关系:
# 打开hosts文件 vim /etc/hosts # 添加如下内容 192.168.36.121 hadoop1 192.168.36.122 hadoop2 192.168.36.123 hadoop3
另外,Hadoop 集群运行需要 Java 运行环境,所以,在各个节点上需要安装 JDK!
集群搭建具体步骤
注意:以下步骤均在hadoop1节点上进行操作,特殊说明除外!
1、下载hadoop-3.1.3.tar.gz
hadoop官网下载:https://www.apache.org/dyn/closer.cgi/hadoop/common/hadoop-3.1.3/hadoop-3.1.3.tar.gz
2、上传并解压
将下载好的 hadoop-3.1.3.tar.gz 上传到 hadoop1 虚拟机节点 /opt/module 目录下。
cd /opt/module # 解压 tar -zxvf hadoop-3.1.3.tar.gz # 修改目录名 mv hadoop-3.1.3 hadoop
3、配置path变量
vim ~/.bashrc # 添加如下内容: export PATH=$PATH:/opt/module/hadoop/bin:/opt/module/hadoop/sbin # :wq! 保存退出后执行如下命令,使配置生效 source ~/.bashrc
4、修改配置文件
cd /opt/module/hadoop/etc/hadoop
4.1 修改文件hadoop-env.sh
vim hadoop-env.sh # 添加如下内容 export JAVA_HOME=/usr/java/jdk1.8.0_131
4.2 修改文件workers
vim workers # 将localhost去掉添加如下内容 hadoop1 hadoop2 hadoop3
注意:需要把所有数据节点的主机名写入该文件,每行一个,默认为
localhost(即把本机作为数据节点),所以,在伪分布式配置时,就采用了这种默认的配置,使得节点既作为名称节点也作为数据节点。在进行分布式配置时,可以保留localhost,让hadoop1节点同时充当名称节点和数据节点,或者也可以删掉localhost这行,让hadoop1节点仅作为名称节点使用。
4.3 修改文件core-site.xml
<configuration> <property> <name>fs.defaultFS
name> <value>hdfs://hadoop1:8020
value>
property> <property> <name>hadoop.tmp.dir
name> <value>file:/opt/module/hadoop/tmp
value> <description>Abase for other temporary directories.
description>
property>
configuration>
4.4 修改文件hdfs-site.xml
dfs.replication的值还是设置为 3, 也就是说,一份数据保存三份副本,Hadoop的分布式文件系统HDFS一般都是采用冗余存储。
<configuration> <property> <name>dfs.namenode.secondary.http-address
name> <value>hadoop1:50090
value>
property> <property> <name>dfs.replication
name> <value>3
value>
property> <property> <name>dfs.namenode.name.dir
name> <value>file:/opt/module/hadoop/tmp/dfs/name
value>
property> <property> <name>dfs.datanode.data.dir
name> <value>file:/opt/module/hadoop/tmp/dfs/data
value>
property>
configuration>
4.5 修改文件mapred-site.xml
<configuration> <property> <name>mapreduce.framework.name
name> <value>yarn
value>
property> <property> <name>mapreduce.jobhistory.address
name> <value>hadoop1:10020
value>
property> <property> <name>mapreduce.jobhistory.webapp.address
name> <value>hadoop1:19888
value>
property> <property> <name>yarn.app.mapreduce.am.env
name> <value>HADOOP_MAPRED_HOME=/opt/module/hadoop
value>
property> <property> <name>mapreduce.map.env
name> <value>HADOOP_MAPRED_HOME=/opt/module/hadoop
value>
property> <property> <name>mapreduce.reduce.env
name> <value>HADOOP_MAPRED_HOME=/opt/module/hadoop
value>
property>
configuration>
4.6 修改文件 yarn-site.xml
<configuration> <property> <name>yarn.resourcemanager.hostname
name> <value>hadoop1
value>
property> <property> <name>yarn.nodemanager.aux-services
name> <value>mapreduce_shuffle
value>
property>
configuration>
5、把/opt/module/hadoop复制到其他节点上
cd /opt/module rm -r ./hadoop/tmp # 删除 Hadoop 临时文件 rm -r ./hadoop/logs/* # 删除日志文件 tar -zxcf hadoop.tar.gz ./hadoop # 先压缩再复制 scp ./hadoop.tar.gz hadoop2:/opt/module scp ./hadoop.tar.gz hadoop3:/opt/module
6、在其他节点上操作
cd /opt/module rm -r ./hadoop # 删掉旧的(如果存在) tar -zxvf hadoop.tar.gz
7、名称节点的格式化
首次启动Hadoop集群时,需要先在hadoop1节点执行名称节点的格式化(只需要执行这一次,后面再启动Hadoop时,不要再次格式化名称节点)
hdfs namenode -format
8、启动Hadoop集群
需要在hadoop1节点上进行
# 启动hdfs start-dfs.sh # 启动yarn start-yarn.sh # 启动历史服务 mr-jobhistory-daemon.sh start historyserver
9、验证是否启动成功
通过命令jps可以查看各个节点所启动的进程。如果已经正确启动,则在hadoop1节点上可以看到NameNode、ResourceManager、和JobHistoryServer以及DataNode和NodeManager进程
在其他两个节点可以看到DataNode和NodeManager进程,在hadoop3节点上还可以看到SecondryNameNode进程
缺少任一进程都表示出错。
10、查看运行实例
在执行过程中,可以在Linux系统中打开浏览器,在地址栏输入http://hadoop1:8088/cluster,通过Web界面查看任务进度,在Web界面点击 Tracking UI 这一列的History连接,可以看到任务的运行信息。
11、关闭Hadoop集群
关闭Hadoop集群,需要在hadoop1节点执行如下命令:
stop-yarn.sh stop-dfs.sh mr-jobhistory-daemon.sh stop historyserver
至此,就顺利完成了Hadoop集群搭建。
微信公众号:扫描下方二维码或 搜索 笑看风云路 关注

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/224438.html原文链接:https://javaforall.net
