HDFS与YARN HA部署配置文件

core-site.xml

<!--Yarn 需要使用 fs.defaultFS 指定NameNode URI -->
<property>
    <name>fs.defaultFS</name>
    <value>hdfs://ruozeclusterg6</value>
</property>

<!--==============================Trash机制======================================= -->
<property>
    <!--多长时间创建CheckPoint NameNode截点上运行的CheckPointer 从Current文件夹创建CheckPoint;默认:0 由fs.trash.interval项指定 ,fs.trash.checkpoint.interval则是指垃圾回收的检查间隔,应该是小于或者等于fs.trash.interval。如果是0,值等同于fs.trash.interval。每次检查器运行,会创建新的检查点。-->
    <name>fs.trash.checkpoint.interval</name>
    <value>0</value>
</property>

<!--指定hadoop临时目录, hadoop.tmp.dir 是hadoop文件系统依赖的基础配置,很多路径都依赖它。如果hdfs-site.xml中不配 置namenode和datanode的存放位置,默认就放在这>个路径中 -->
<property>   
    <name>hadoop.tmp.dir</name>
    <value>/home/hadoop/app/hadoop-2.6.0-cdh5.7.0/tmp</value>
</property>
#hadoop.tmp.dir需要自己创建
[hadoop@hadoop001 hadoop]$ mkdir -p /home/hadoop/app/hadoop-2.6.0-cdh5.7.0/tmp

<!-- 指定zookeeper地址 -->
<property>
    <name>ha.zookeeper.quorum</name>
    <value>hadoop001:2181,hadoop002:2181,hadoop003:2181</value>  
</property>

<!--hadoop代理user的host,hadoop进程允许访问的用户机器host或者用户组,proxyuser后面指定的hadoop进程运行的用户,如果改成别的用户,则必须以该用户启动hadoop进程-->
<property>
    <name>hadoop.proxyuser.hadoop.hosts</name>
    <value>*</value> 
</property> 

<property> 
    <name>hadoop.proxyuser.hadoop.groups</name> 
    <value>*</value> 
</property> 

hdfs-site.xml

<!--dfs的namenode节点的name.dir目录需要自己创建-->
<property>
    <name>dfs.namenode.name.dir</name>
    <value>/home/hadoop/app/hadoop-2.6.0-cdh5.7.0/data/dfs/name</value>
    <description> namenode 存放name table(fsimage)本地目录(需要修改)</description>
</property>

[hadoop@hadoop001 hadoop]$ mkdir -p /home/hadoop/app/hadoop-2.6.0-cdh5.7.0/data/dfs/name
<!--dfs的datanode的data。dir目录,同样需要自己创建-->
<property>
    <name>dfs.datanode.data.dir</name>
    <value>/home/hadoop/app/hadoop-2.6.0-cdh5.7.0/data/dfs/data</value>
    <description>datanode存放block本地目录(需要修改)</description>
</property>

<!--HDFS高可用配置 -->
<!--指定hdfs的nameservice为clustername,需要和core-site.xml中的保持一致 -->
<property>
    <name>dfs.nameservices</name>
    <value>ruozeclusterg6</value>
</property>

<property>
    <!--设置NameNode IDs 此版本最大只支持两个NameNode,nn1,nn2表示的是下面的hadoop001跟hadoop002的映射-->
    <name>dfs.ha.namenodes.ruozeclusterg6</name>
    <value>nn1,nn2</value>
</property>

<!-- Hdfs HA: dfs.namenode.rpc-address.[nameservice ID] rpc 通信地址 -->
<property>
    <name>dfs.namenode.rpc-address.ruozeclusterg6.nn1</name>
    <value>hadoop001:8020</value>
</property>

<property>
    <name>dfs.namenode.rpc-address.ruozeclusterg6.nn2</name>
    <value>hadoop002:8020</value>
</property>

<property>
    <!--JournalNode存放数据地址,同样需要自己创建 -->
    <name>dfs.journalnode.edits.dir</name>
    <value>/home/hadoop/app/hadoop-2.6.0-cdh5.7.0/data/dfs/jn</value>
</property>

[hadoop@hadoop001 hadoop]$ mkdir -p /home/hadoop/app/hadoop-2.6.0-cdh5.7.0/data/dfs/jn
<!--这边配置的是SSH信任关系私钥的配置,前面配置了hadoop的信任关系,这边也配置成hadoop-->
<property>
    <name>dfs.ha.fencing.ssh.private-key-files</name>
    <value>/home/hadoop/.ssh/id_rsa</value>
</property>
<!--动态许可datanode连接namenode列表 -->

<property>
    <name>dfs.hosts</name>
    <value>/home/hadoop/app/hadoop-2.6.0-cdh5.7.0/etc/hadoop/slaves</value>
</property>

mapred-site.xml

<!-- 配置 MapReduce Applications -->
<property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
</property>
<!-- JobHistory Server ============================================================== -->
<!-- 配置 MapReduce JobHistory Server 地址 ,默认端口10020 -->
<property>
    <name>mapreduce.jobhistory.address</name>
    <value>hadoop001:10020</value>
</property>
<!-- 配置 MapReduce JobHistory Server web ui 地址, 默认端口19888 -->
<property>
    <name>mapreduce.jobhistory.webapp.address</name>
    <value>hadoop001:19888</value>
</property>

<!-- 配置 Map段输出的压缩,snappy-->
<property>
    <name>mapreduce.map.output.compress</name> 
    <value>true</value>
</property>

<property>
    <name>mapreduce.map.output.compress.codec</name> 
    <value>org.apache.hadoop.io.compress.SnappyCodec</value>
</property>

yarn-site.xml

<!-- 集群名称,确保HA选举时对应的集群,rm1,rm2代表了hadoop001跟hadoop002的映射 -->
<property>
    <name>yarn.resourcemanager.cluster-id</name>
    <value>yarn-cluster</value>
</property>
<property>
    <name>yarn.resourcemanager.ha.rm-ids</name>
    <value>rm1,rm2</value>
</property>
<!-- Client访问RM的RPC地址 (applications manager interface) -->
<property>
    <name>yarn.resourcemanager.address.rm1</name>
    <value>hadoop001:23140</value>
</property>
<property>
    <name>yarn.resourcemanager.address.rm2</name>
    <value>hadoop002:23140</value>
</property>
<!--yarn的资源配置-->
<property>
    <name>yarn.nodemanager.resource.memory-mb</name>
    <value>2048</value>
</property>
<property>
    <name>yarn.scheduler.minimum-allocation-mb</name>
    <value>1024</value>
    <discription>单个任务可申请最少内存,默认1024MB</discription>
</property>
<property>
    <name>yarn.scheduler.maximum-allocation-mb</name>
    <value>2048</value>
    <discription>单个任务可申请最大内存,默认8192MB</discription>
</property>
<property>
    <name>yarn.nodemanager.resource.cpu-vcores</name>
    <value>2</value>
</property>

启动流程:

1.启动journalnode:hadoop-daemon.sh start journalnode

2.格式化hadoop namenode,同时将namenode1的data文件copy到namenode2,保证一致:

hadoop namenode -format

3.zkfc格式化:hdfs zkfc -formatZK

4.启动集群:start-dfs.sh

5.启动yarn:start-yarn.sh ,手动启动第二台机器的resourcemanager:yarn-daemon.sh start resourcemanager

6.正常启动集群之后,可以通过web页面,访问hdfs端口50070以及yarn端口8088
posted @ 2019-06-24 10:56  BBBone  阅读(151)  评论(0编辑  收藏  举报