- 前提:装好了虚拟机,在
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)。










