1、集群部署规划
注意:
- NameNode、SecondaryNameNode不要安装在同一服务器
- ResourceManager很消耗内存,不要和NameNode、SecondaryNameNode配置在一起
- HDFS:
NameNode(nn):存储文件的元数据,如文件名,文件目录结构,文件属性,以及每个文件的块列表和块所在的DateNode等
DataNode(dn):在本地文件系统存储文件块数据,以及块数据的校验和
Secondary NameNode(2nn):每隔一段时间对NameNode元数据备份 - YARN:
ResourceManager (RM):管理整个集群资源
NodeManager(NM):管理单个节点服务器资源
ApplicationMaster(AM):客户端每提交一个任务作业,NM就会产生一个AM
Container:任务都需要在容器中运行,里面封装了资源、网络
2、配置文件说明
Hadoop配置文件分为:默认配置文件、自定义配置文件
- 默认配置文件
- 自定义配置文件
core-site.xml、hdfs-site.xml、yarn-site.xml、mapred-site.xml四个配置文件存放在$HADOOP_HOME/etc/hadoop/中
3、配置集群
- core-site.xml配置:
<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 网页登录使用的静态用户为 atguigu -->
<property>
<name>hadoop.http.staticuser.user</name>
<value>root</value>
</property>
</configuration>
- hdfs-site.xml配置
<!-- 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>
- 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_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value>
</property>
</configuration>
- 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>
最后再用xsync命令将修改后的102的hadoop文件夹分配同步至103、104即可。
[root@hadoop102 etc]# xsync hadoop/