前置工作
1.创建虚拟机
2.配置虚拟机网络
3.WIN10 IP地址配置
4.CentOS静态IP设置
5.克隆三台虚拟机
6.jdk安装
7.hadoop安装
8.SSH免密登录配置(shell脚本单独提供)
集群搭建
1.集群部署规划
192.168.5.102 hadoop102
192.168.5.103 hadoop103
192.168.5.104 hadoop104
2.配置文件说明及配置事项
总共涉及的配置文件有4个:
core-site.xml 、hdfs-site.xml 、yarn-site.xml 、mapred-site.xml
存放路径:$HADOOP_HOME/etc/hadoop
(1)核心配置文件
配置core-site.xml
vim core-site.xml
代码语言:javascript复制<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<!-- 指定 NameNode 的地址 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop102:8020</value>
</property>
<!-- 指定 hadoop 数据的存储目录 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/module/hadoop-3.1.3/data</value>
</property>
<!-- 配置 HDFS 网页登录使用的静态用户为 hadoop -->
<property>
<name>hadoop.http.staticuser.user</name>
<value>hadoop</value>
</property>
</configuration>
(2)hdfs配置文件
配置文件:hdfs-site.xml
vim hdfs-site.xml
代码语言:javascript复制<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<!-- NameNode web 端访问地址-->
<property>
<name>dfs.namenode.http-address</name>
<value>hadoop102:9870</value>
</property>
<!-- SecondaryNameNode web 端访问地址-->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>hadoop104:9868</value>
</property>
</configuration>
(3)YARN配置文件
配置文件:yarn-site.xml
vim yarn-site.xml
代码语言:javascript复制<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<!-- 指定 MR 走 shuffle -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!-- 指定 ResourceManager 的地址-->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop103</value>
</property>
<!-- 环境变量的继承 -->
<property>
<name>yarn.nodemanager.env-whitelist</name>
<value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value>
</property>
</configuration>
(4)MapReduce配置文件
配置文件: mapred-site.xml
vim mapred-site.xml
代码语言:javascript复制<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<!-- 指定 MapReduce 程序运行在 Yarn 上 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
3.配置文件分发
通过shell自行封装的命令xsync,把hadoop102上的所有配置文件分到到其他节点的相同路径下(shell脚本单独提供)
命令格式:xsync 文件路径
xsync /opt/module/hadoop-3.1.3/etc/hadoop/
比如:要分到home下的stu.json到所有节点,具体如下:
这样,在hadoop102上的所有配置文件,全都同步到hadoop103、hadoop104的相应路径了。可以进入hadoop103、hadoop104上检查确认一下。
截至到这一步,hadoop集群的配置工作就完成了。
群起集群并测试
1.配置workers
切换到 /etc/,编辑worker文件
vim /opt/module/hadoop-3.1.3/etc/hadoop/workers
在该文件中增加如下内容:(有几个节点就配置几个主机名称)
hadoop102
hadoop103
hadoop104
注意:该文件中添加的内容结尾不允许有空格,文件中不允许有空行。
同步所有节点配置文件
xsync /opt/module/hadoop-3.1.3/etc
截图略
2.启动集群(这部分就不一一截图了)
(1)初始化
如果是集群第一次启动,需要初始化,后续操作无需此步操作了。
命令:hdfs namenode -format
截图略(hadoop初始化和hdfs启动跟本地模式的搭建相同)
(2)启动hdfs
切换到hadoop102的hadoop下的sbin,启动hdfs
命令:./start-dfs.sh
切换到hadoop103的hadoop下的sbin,启动yarn
命令:./start-yarn.sh
因为在hadoop103上配置了 ResourceManager
启动完成后,分别在hadoop102,103,104执行jps,查看进程
跟之前的集群部署规划一致!
(3)web端查看hdfs的NameNode
(a)浏览器中输入:http://hadoop102:9870
(b)查看 HDFS 上存储的数据信息
(4)web端查看YARN的ResourceManager
(a)浏览器中输入:
http://hadoop103:8088
(b)查看 YARN 上运行的 Job 信息
3.集群基本测试
(1)上传文件到集群
上传小文件:hadoop fs -mkdir /input
执行完后,HDFS网页种多了个input文件
(2)上传到文件
hadoop fs -put /opt/software/jdk-8u212-linux-x64.tar.gz /
【注意】
上面的蓝色字体表示存储的是一个链接,实际存储的数据在datanode节点上。另外,需要分发的shell脚本的小伙伴可以私信给我哦~
【小结】
上面详细讲述了hadoop集群的搭建、运行与测试。具体的操作稍微有点繁琐,需要花时间多练习几遍。