文章目录
一、虚拟机集群
1、安装三台虚拟机centos7.5
hadoop102:192.168.10.102
hadoop103:192.168.10.103
hadoop104:192.168.10.104
2、在hadoop102上安装jdk和hadoop
3、把hadoop102上的jdk和daoop复制到103、104上
二、集群部署规划
注意:
➢ NameNode 和 SecondaryNameNode 不要安装在同一台服务器
➢ ResourceManager 也很消耗内存,不要和 NameNode、SecondaryNameNode 配置在同一台机器上。
1、Hadoop=
MapReduce(计算)+Yarn(资源调度)+HDFS(数据存储)+Common(辅助工具)
(1)HDFS=
1)NameNode(nn):存储文件的元数据,如文件名,文件目录结构,文件属性(生成时间、副本数、文件权限),以及每个文件的块列表和块所在的DataNode等。
2)DataNode(dn):在本地文件系统存储文件块数据,以及块数据的校验和。
3)Secondary NameNode(2nn):每隔一段时间对NameNode元数据备份。
(2)YARN=
1)ResourceManager(RM):整个集群资源(内存、CPU等)管理
3)ApplicationMaster(AM):单个任务运行管理
2)NodeManager(N M):单个节点服务器资源管理
4)Container:容器,相当一台独立的服务器,里面封装了
说明1:客户端可以有多个
说明2:集群上可以运行多个ApplicationMaster
说明3:每个NodeManager上可以有多个Container
(3)MapReduce
MapReduce 将计算过程分为两个阶段:Map 和 Reduce
1)Map 阶段并行处理输入数据
2)Reduce 阶段对 Map 结果进行汇总
2、配置文件说明
默认配置文件位置
三、配置集群
(1)核心配置文件
配置 core-site.xml
[chenjixia@hadoop102 ~]$ cd $HADOOP_HOME/etc/hadoop
[chenjixia@hadoop102 hadoop]$ vim core-site.xml
文件内容如下:
<?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 网页登录使用的静态用户为 chenjixia -->
<property>
<name>hadoop.http.staticuser.user</name>
<value>chenjixia</value>
</property>
</configuration>
(2)HDFS 配置文件
配置 hdfs-site.xml
[chenjixia@hadoop102 hadoop]$ vim hdfs-site.xml
文件内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<!-- nn web 端访问地址-->
<property>
<name>dfs.namenode.http-address</name>
<value>hadoop102:9870</value>
</property>
<!-- 2nn web 端访问地址-->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>hadoop104:9868</value>
</property>
</configuration>
(3)YARN 配置文件
配置 yarn-site.xml
[atguigu@hadoop102 hadoop]$ vim yarn-site.xml
文件内容如下:
<?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_CO
NF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAP
RED_HOME</value>
</property>
</configuration>
(4)MapReduce 配置文件
配置 mapred-site.xml
[chenjixia@hadoop102 hadoop]$ vim mapred-site.xml
文件内容如下:
<?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>
注:
(1)在集群上分发配置好的 Hadoop 配置文件
[chenjixia@hadoop102 hadoop]$ xsync /opt/module/hadoop-3.1.3/etc/hadoop/
(2)去 103 和 104 上查看文件分发情况
[chenjixia@hadoop103 ~]$ cat /opt/module/hadoop-3.1.3/etc/hadoop/core-site.xml
[chenjixia@hadoop104 ~]$ cat /opt/module/hadoop-3.1.3/etc/hadoop/core-site.xml
四、 群起集群
(1)配置 workers
[chenjixia@hadoop102 hadoop]$ vim /opt/module/hadoop3.1.3/etc/hadoop/workers
在该文件中增加如下内容:
hadoop102
hadoop103
hadoop104
——注意:该文件中添加的内容结尾不允许有空格,文件中不允许有空行。
同步所有节点配置文件
[chenjixia@hadoop102 hadoop]$ xsync /opt/module/hadoop-3.1.3/etc
(2)启动集群
(1)如果集群是第一次启动,需要在 hadoop102 节点格式化 NameNode
(注意:格式化 NameNode,会产生新的集群 id,导致 NameNode 和 DataNode 的集群 id 不一致,集群找不到已往数据。如果集群在运行过程中报错,需要重新格式化 NameNode 的话,一定要先停止 namenode 和 datanode 进程,并且要删除所有机器的 data 和 logs 目录,然后再进行格式
化。)
[chenjixia@hadoop102 hadoop-3.1.3]$ hdfs namenode -format
(2)启动 HDFS
[chenjixia@hadoop102 hadoop-3.1.3]$ sbin/start-dfs.sh
(3)在配置了 ResourceManager 的节点(hadoop103)启动 YARN
[chenjixia@hadoop103 hadoop-3.1.3]$ sbin/start-yarn.sh
(4)Web 端查看 HDFS 的 NameNode
——浏览器中输入:http://hadoop102:9870
——查看 HDFS 上存储的数据信息
(5)Web 端查看 YARN 的 ResourceManager
——浏览器中输入:http://hadoop103:8088
——查看 YARN 上运行的 Job 信息