再复习一下HDFS、YARN、MapReduce
HDFS主要记住3个东西:
- NameNode(nn):记录整个集群每一个文件存放在哪台服务器上
- SecondNameNode(2nn):NameNode的备份
- DataNode(dn):一台服务器上一个
YARN主要记住2个东西:
- SourceManager:负责整个集群的资源调度
- NodeManager
MapReduce分为两个阶段
- Map阶段:在某台服务器的DataNode上进行资源的匹配工作
- Reduce阶段:把匹配的结果(无论匹配上与否)写入一个DataNode
注意:
(1)NameNode和SecondaryNameNode不要安装在同一台服务器(消耗内存)
(2)ResourceManager也很消耗内存,不要和NameNode、SecondaryNameNode配置在同一台机器上。
如果内存很牛忽略上面两条
部署:
NameNode在102上,ResourceManager在103上,SecondaryNameNode在104上
core-site.xml、hdfs-site.xml、yarn-site.xml、mapred-site.xml四个配置文件存放在$HADOOP_HOME/etc/hadoop这个路径上,用户可以根据项目需求重新进行修改配置。
(1)核心配置文件core-site.xml
@hadoop102 hadoop]$ vim core-site.xml
修改(粘过去就行)里面的内容:
fs.defaultFS hdfs://hadoop102:8020 hadoop.tmp.dir /opt/module/hadoop-3.1.3/data hadoop.http.staticuser.user cj
(2)HDFS配置文件
@hadoop102 hadoop]$ vim hdfs-site.xml
文件内容如下:
- namenode web端访问地址:给用户提供web接口,可以通过页面访问,前面配置的102的8020端口是内部端口
- secondnamenode端访问地址:web接口
dfs.namenode.http-address hadoop102:9870 dfs.namenode.secondary.http-address hadoop104:9868
(3)YARN配置文件
@hadoop102 hadoop]$ vim yarn-site.xml
文件内容如下:
有一项是环境变量的更改,只有hadoop3.1.3需要这样,以后的版本修复了这个bug,就不需要更改环境变量了
yarn.nodemanager.aux-services mapreduce_shuffle yarn.resourcemanager.hostname hadoop103 yarn.nodemanager.env-whitelist JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME
(4)MapReduce配置文件
@hadoop102 hadoop]$ vim mapred-site.xml
文件内容如下:
3.在集群上分发配置好的Hadoop配置文件mapreduce.framework.name yarn
脚本xsync的使用见Hadoop(四)—— Hadoop运行模式
@hadoop102 hadoop]$ xsync /opt/module/hadoop-3.1.3/etc/hadoop/
提醒我自己:103和104还没配!



