- 前提:装好了虚拟机,在
hadoop102
装好了JDK
和Hadoop
- 部署规划
hadoop102 | hadoop103 | hadoop104 | |
---|---|---|---|
HDFS | NameNode DataNode | DataNode | SecondaryNameNode DataNode |
YARN | NodeManager | ResourceManager NodeManager | NodeManager |
- 注意:
NameNode
和SecondaryNameNode
不要安装在同一台服务器;ResourceManager
也很消耗内存,不要和NameNode
和SecondaryNameNode
配置在同一台机器上。 - 配置四个自定义配置文件,在
hadoop2.7.2/etc/hadoop
目录下
- 核心配置文件
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-2.7.2/data/tmp</value>
</property>
</configuration>
HDFS
配置文件hdfs-site.xml
,在文件中加上以下代码后保存退出;
<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>
YARN
配置文件yarn-site.xml
,在文件中加上以下代码后保存退出;
<configuration>
<!-- Site specific YARN configuration properties -->
<!--指定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>
MapReduce
配置文件mapred-site.xml
,在文件中加上以下代码后保存退出;
<configuration>
<!--指定MapReduce程序运行在Yarn上-->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
- 在集群上分发配置文件
[amelia@hadoop103 hadoop]$ xsync /opt/module/hadoop-2.7.2/etc/hadoop/
- 在
hadoop103
和hadoop104
上查看配置文件分发情况
[amelia@hadoop103 hadoop]$ cat /opt/module/hadoop-2.7.2/etc/hadoop/core-site.xml
-
问题:在我编辑配置文件时,没有
mapred-site.xml
文件。如果没有mapred-site.xml
,就使用命令cp mapred-site.xml.template mapred-site.xml
复制一个出来,再进行编辑处理配置。 -
扩展
-
DataNode
是单独机器上运行的软件节点; -
NameNode
是整个文件系统的管理节点,主要是用来保存HDFS
的元数据信息,比如命名空间信息,块信息等。当它运行的时候,这些信息是存在内存中的。但是这些信息也可以持久化到磁盘上; -
SecondaryNameNode
职责是合并NameNode
的edit logs
到fsimage
文件中; -
NodeManager
是运行在单个节点上的代理,它管理Hadoop
集群中单个计算节点,功能包括与ResourceManager
保持通信,管理Container
的生命周期、监控每个Container
的资源使用(内存、CPU
等)情况、追踪节点健康状况、管理日志和不同应用程序用到的附属服务等。 -
ResourceManager
是整个Yarn
集群中最重要的组件之一,其主要的功能包括ApplicationMaster
的管理(启动、停止等)、NodeManager
管理、Application
管理、状态机管理等;并且ResourceManager
负责集群中所有资源的统一管理和分配,它接收来自各个节点的资源汇报信息,并把这些信息按照一定的策略分配给各个应用程序; -
NodeManager
是YARN
中单个节点的代理,它需要与应用程序的ApplicationMaster
和集群管理者ResourceManager
交互;它从ApplicationMaster
上接收有关Container
的命令并执行(比如启动、停止Contaner
);向ResourceManager
汇报各个Container
运行状态和节点健康状况,并领取有关Container
的命令(比如清理Container
)。