yarn的web地址 只能一个yarn namenodee看吗

查看: 63024|回复: 9
hadoop2.X如何将namenode与SecondaryNameNode分开配置
主题帖子积分
本帖最后由 pig2 于
19:54 编辑
1.如何将namenode与SecondaryNameNode分开?
2.SecondaryNameNode单独配置,需要修改那些配置文件?
3.masters文件的作用是什么?
我们这里假设你已经安装配置了hadoop2.2,至于如何配置可以参考,。
在这个基础上,我们对配置文件做一些修改:
1.增加masters文件sudo vi masters复制代码
peizhsecondary.png (50.46 KB, 下载次数: 27)
06:10 上传
这里面放什么内容还是比较关键的,这里我们指定slave1节点上运行SecondaryNameNode。
注意:如果你想单独配置一台机器,那么在这个文件里面,填写这个节点的ip地址或则是hostname,如果是多台,则在masters里面写上多个,一行一个,我们这里指定一个slave1复制代码
content.png (4.95 KB, 下载次数: 26)
06:14 上传
2.修改hdfs-site.xml
在下面文件中增加如下内容:(记得下面亦可写成ip地址,这里为了理解方便,写的是hostname)
&property&
&name&dfs.http.address&/name&
&value&master:50070&/value&
&description&
The address and the base port where the dfs namenode web ui will listen on.
If the port is 0 then the server will start on a free port.
&/description&
&/property&
&property&
&name&dfs.namenode.secondary.http-address&/name&
&value&slave1:50090&/value&
&/property&
hdfssite.png (28.39 KB, 下载次数: 35)
06:21 上传
3.修改core-site.xml文件
&property&
&&&name&fs.checkpoint.period&/name&
&&&value&3600&/value&
&&&description&The number of seconds between two periodic checkpoints.
&&&/description&
&/property&
&property&
&&&name&fs.checkpoint.size&/name&
&&&value&&/value&
&/property&
复制代码
coresite.png (24.2 KB, 下载次数: 28)
06:20 上传
上面修改完毕,相应的节点也做同样的修改
下面我们开始启动节点:
start-dfs.sh复制代码输出如下内容:
Starting namenodes on [master]
master: starting namenode, logging to /usr/hadoop/logs/hadoop-aboutyun-namenode-master.out
slave2: starting datanode, logging to /usr/hadoop/logs/hadoop-aboutyun-datanode-slave2.out
slave1: starting datanode, logging to /usr/hadoop/logs/hadoop-aboutyun-datanode-slave1.out
Starting secondary namenodes [slave1]
slave1: starting secondarynamenode, logging to /usr/hadoop/logs/hadoop-aboutyun-secondarynamenode-slave1.out
复制代码
startdfs.sh.png (35.47 KB, 下载次数: 30)
06:27 上传
然后查看节点:
(1)master节点:
aboutyun@master:/usr/hadoop/etc/hadoop$ jps
5994 NameNode
6201 Jps
复制代码
master.png (7.54 KB, 下载次数: 34)
06:28 上传
(2)slave1节点
aboutyun@slave1:/usr/hadoop/etc/hadoop$ jps
5199 SecondaryNameNode
5015 DataNode
5291 Jps
复制代码
slave1.png (7.89 KB, 下载次数: 33)
06:29 上传
(3)slave2节点
aboutyun@slave2:/usr/hadoop/etc/hadoop$ jps
3628 DataNode
3696 Jps
复制代码
slave2.png (7.53 KB, 下载次数: 25)
10:18 上传
停止节点:
master: stopping namenode
slave1: stopping datanode
slave2: stopping datanode
Stopping secondary namenodes [slave1]
slave1: stopping secondarynamenode
复制代码
tingzhi.png (10.81 KB, 下载次数: 1)
06:25 上传
欢迎加入about云群 、 ,云计算爱好者群,关注
主题帖子积分
Secondarynamenode的单独启动和停止
& &bin/hadoop-daemons.sh --config conf/ --hosts masters start secondarynamenode
& &bin/hadoop-daemons.sh --config conf/ --hosts masters stop secondarynamenode
欢迎加入about云群 、 ,云计算爱好者群,关注
主题帖子积分
新手上路, 积分 18, 距离下一级还需 32 积分
新手上路, 积分 18, 距离下一级还需 32 积分
请问hadoop2.4里secondarynamenode总是在执行start-dfs.sh后自动起来,也没配置secondarynamenode,怎么不自动启动secondarynamenode呢?
主题帖子积分
请问hadoop2.4里secondarynamenode总是在执行start-dfs.sh后自动起来,也没配置secondarynamenode,怎么不 ...hadoop的启动命令:
start-dfs.sh
一旦执行这个脚本,它就会启动master,slave,然后secondarynamenode。
也就是说start-dfs.sh对它们进行了定义,你可以修改里面的脚本。
首先进入hadoop的sbin目录,
xiugai.png (39.84 KB, 下载次数: 1)
10:35 上传
aboutyun@master:/usr/hadoop/sbin$ sudo nano start-dfs.sh
#!/usr/bin/env bash
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the &License&); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an &AS IS& BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# Start hadoop dfs daemons.
# Optinally upgrade or rollback dfs state.
# Run this on master node.
usage=&Usage: start-dfs.sh [-upgrade|-rollback] [other options such as -clusterId]&
bin=`dirname &${BASH_SOURCE-$0}&`
bin=`cd &$bin&; pwd`
DEFAULT_LIBEXEC_DIR=&$bin&/../libexec
HADOOP_LIBEXEC_DIR=${HADOOP_LIBEXEC_DIR:-$DEFAULT_LIBEXEC_DIR}
. $HADOOP_LIBEXEC_DIR/hdfs-config.sh
# get arguments
if [ $# -ge 1 ]; then
nameStartOpt=&$1&
case &$nameStartOpt& in
(-upgrade)
(-rollback)
dataStartOpt=&$nameStartOpt&
echo $usage
#Add other possible options
nameStartOpt=&$nameStartOpt $@&
#---------------------------------------------------------
# namenodes
NAMENODES=$($HADOOP_PREFIX/bin/hdfs getconf -namenodes)
echo &Starting namenodes on [$NAMENODES]&
&$HADOOP_PREFIX/sbin/hadoop-daemons.sh& \
--config &$HADOOP_CONF_DIR& \
--hostnames &$NAMENODES& \
--script &$bin/hdfs& start namenode $nameStartOpt
#---------------------------------------------------------
# datanodes (using default slaves file)
if [ -n &$HADOOP_SECURE_DN_USER& ]; then
&Attempting to start secure cluster, skipping datanodes. & \
&Run start-secure-dns.sh as root to complete startup.&
&$HADOOP_PREFIX/sbin/hadoop-daemons.sh& \
--config &$HADOOP_CONF_DIR& \
--script &$bin/hdfs& start datanode $dataStartOpt
#---------------------------------------------------------
# secondary namenodes (if any)
SECONDARY_NAMENODES=$($HADOOP_PREFIX/bin/hdfs getconf -secondarynamenodes 2&/dev/null)
if [ -n &$SECONDARY_NAMENODES& ]; then
echo &Starting secondary namenodes [$SECONDARY_NAMENODES]&
&$HADOOP_PREFIX/sbin/hadoop-daemons.sh& \
--config &$HADOOP_CONF_DIR& \
--hostnames &$SECONDARY_NAMENODES& \
--script &$bin/hdfs& start secondarynamenode
#---------------------------------------------------------
# quorumjournal nodes (if any)
SHARED_EDITS_DIR=$($HADOOP_PREFIX/bin/hdfs getconf -confKey dfs.namenode.shared.edits.dir 2&&-)
case &$SHARED_EDITS_DIR& in
qjournal://*)
JOURNAL_NODES=$(echo &$SHARED_EDITS_DIR& | sed 's,qjournal://\([^/]*\)/.*,\1,g; s/;/ /g; s/:[0-9]*//g')
echo &Starting journal nodes [$JOURNAL_NODES]&
&$HADOOP_PREFIX/sbin/hadoop-daemons.sh& \
--config &$HADOOP_CONF_DIR& \
--hostnames &$JOURNAL_NODES& \
--script &$bin/hdfs&;
#---------------------------------------------------------
# ZK Failover controllers, if auto-HA is enabled
AUTOHA_ENABLED=$($HADOOP_PREFIX/bin/hdfs getconf -confKey dfs.ha.automatic-failover.enabled)
if [ &$(echo &$AUTOHA_ENABLED& | tr A-Z a-z)& = &true& ]; then
echo &Starting ZK Failover Controllers on NN hosts [$NAMENODES]&
&$HADOOP_PREFIX/sbin/hadoop-daemons.sh& \
--config &$HADOOP_CONF_DIR& \
--hostnames &$NAMENODES& \
--script &$bin/hdfs& start zkfc
我们看到上面红字部分,注释掉就不会起来了。
切忌在做这个操作前,自己先备份呢一份
欢迎加入about云群 、 ,云计算爱好者群,关注
主题帖子积分
新手上路, 积分 18, 距离下一级还需 32 积分
新手上路, 积分 18, 距离下一级还需 32 积分
非常感谢,曾经也想过这个方法,一直在找是不是有其他方面的参数可以来配置。
主题帖子积分
非常感谢,曾经也想过这个方法,一直在找是不是有其他方面的参数可以来配置。SECONDARY_NAMENODES=$($HADOOP_PREFIX/bin/hdfs getconf -secondarynamenodes 2&/dev/null)
这是进入启动secondarynamenode的条件,你打印出来看看,就知道配置在什么地方了
欢迎加入about云群 、 ,云计算爱好者群,关注
主题帖子积分
高级会员, 积分 1557, 距离下一级还需 3443 积分
高级会员, 积分 1557, 距离下一级还需 3443 积分
这个版主太牛了!非常感谢!
主题帖子积分
注册会员, 积分 62, 距离下一级还需 138 积分
注册会员, 积分 62, 距离下一级还需 138 积分
版主写的非常详细谢谢啦~~~
主题帖子积分
注册会员, 积分 112, 距离下一级还需 88 积分
注册会员, 积分 112, 距离下一级还需 88 积分
请问如果是多个secondarynamenode,hdfs-site.xml应该怎么写?
主题帖子积分
注册会员, 积分 112, 距离下一级还需 88 积分
注册会员, 积分 112, 距离下一级还需 88 积分
hadoop 2.7.2环境
经常参与各类话题的讨论,发帖内容较有主见
经常帮助其他会员答疑
活跃且尽责职守的版主
为论坛做出突出贡献的会员
站长推荐 /6
about云|新出视频,openstack零基础入门,解决你ping不通外网难题
云计算hadoop视频大全(新增 yarn、flume|storm、hadoop一套视频
视频资料大优惠
大数据零基础由入门到实战
阶段1:hadoop零基础入门基础篇
阶段2:hadoop2入门
阶段3:大数据非hadoop系列课程
阶段4:项目实战篇
阶段5:大数据高级系列应用课程
阶段6:工作实用系列教程
等待验证会员请验证邮箱
新手获取积分方法
Powered byhadoop源码解读namenode高可靠:HA;web方式查看namenode下信息;dfs/data决定datanode存储位置 - 推酷
hadoop源码解读namenode高可靠:HA;web方式查看namenode下信息;dfs/data决定datanode存储位置
点击browserFilesystem,和命令查看结果一样
当我们查看hadoop源码时,我们看到hdfs下的hdfs-default.xml文件信息
我们查找${hadoop.tmp.dir}这是引用变量,肯定在其他文件有定义,在core-default.xml中查看到,这两个配置文件有个共同点:
就是不要修改此文件,但可以复制信息到core-site.xml和hdfs-site.xml中修改
usr/local/hadoop
是我存放hadoop文件夹的地方
几个关于namenode的重要文件
in_use.lock本身没什么东西,但是它标记着这个namenode被使用,不准其他进程调用
current下存放了重要信息,尤其是fsimage,是namenode核心信息
edits用于事务处理
HA措施之一就是备份多个文件信息,可以用逗号隔开多个目录保存,注:不能在hdfs-default.xml中直接修改,而应该复制到hdfs-site下修改
dfs下的data文件决定datanode存储位置
HA措施之二:secondary用于辅助namenode,合并edits到fsimage。从secondary恢复数据可能存在部分丢失(类似windows备份点),但我认为这里的信息可能储存到了硬盘,而namenode储存的信息可能还包括内存中的信息
已发表评论数()
请填写推刊名
描述不能大于100个字符!
权限设置: 公开
仅自己可见
正文不准确
标题不准确
排版有问题
主题不准确
没有分页内容
图片无法显示
视频无法显示
与原文不一致当前位置: &&>> 阅读正文
View: 26,597
Author: Dong
- 359,967 阅 - 273,614 阅 - 261,862 阅 - 247,109 阅 - 245,229 阅 - 243,154 阅 - 223,098 阅 - 214,591 阅 - 211,833 阅 - 204,386 阅
collapsItems['collapsArch-'] = '
collapsItems['collapsArch-'] = '
collapsItems['collapsArch-'] = '
collapsItems['collapsArch-'] = '
collapsItems['collapsArch-'] = '
collapsItems['collapsArch-'] = '
collapsItems['collapsArch-'] = '
collapsItems['collapsArch-'] = '
collapsItems['collapsArch-'] = '
collapsItems['collapsArch-'] = '
collapsItems['collapsArch-'] = '
collapsItems['collapsArch-'] = '
collapsItems['collapsArch-'] = '
collapsItems['collapsArch-'] = '
collapsItems['collapsArch-'] = '
collapsItems['collapsArch-'] = '
collapsItems['collapsArch-'] = '
collapsItems['collapsArch-'] = '
collapsItems['collapsArch-'] = '
collapsItems['collapsArch-'] = '
collapsItems['collapsArch-'] = '
collapsItems['collapsArch-'] = '
collapsItems['collapsArch-'] = '
collapsItems['collapsArch-'] = '
collapsItems['collapsArch-'] = '
collapsItems['collapsArch-'] = '
collapsItems['collapsArch-'] = '
collapsItems['collapsArch-'] = '
collapsItems['collapsArch-'] = '
collapsItems['collapsArch-'] = '
collapsItems['collapsArch-'] = '
collapsItems['collapsArch-'] = '
collapsItems['collapsArch-'] = '
collapsItems['collapsArch-'] = '
collapsItems['collapsArch-'] = '
collapsItems['collapsArch-'] = '
collapsItems['collapsArch-'] = '
collapsItems['collapsArch-'] = 'hadoop(1)
以前用hadoop2.2.0只搭建了hadoop的高可用,但在hadoop2.2.0中始终没有完成YARN HA的搭建,直接下载了hadoop最新稳定版本2.6.0完成了YARN HA及HADOOP HA的搭建流程,没有仔细看hadoop的官方文档,貌似hadoop2.2.0不支持YARN HA,如果说错了谢谢指正呀,下面总结一下我的搭建流程:
首先完成虚拟机的搭建:
192.168.247.134
NameNode、DFSZKFailoverController、ResourceManager
192.168.247.135
NameNode、DFSZKFailoverController、ResourceManager
192.168.247.136
hadoop,zookeeper
DataNode、QuorumPeerMain、JournalNode、NodeManager
192.168.247.137
hadoop,zookeeper
DataNode、QuorumPeerMain、JournalNode、NodeManager
192.168.247.138
DataNode、NodeManager
192.168.247.139
hadoop,zookeeper
DataNode、QuorumPeerMain、JournalNode、NodeManager
& & & 在hadoop2.X中通常由两个NameNode组成,一个处于active状态,另一个处于standby状态。Active NameNode对外提供服务,而Standby NameNode则不对外提供服务,仅同步active namenode的状态,以便能够在它失败时快速进行切换。
& & & hadoop2.0官方提供了两种HDFS HA的解决方案,一种是NFS,另一种是QJM(由cloudra提出,原理类似zookeeper)。这里我使用QJM完成。主备NameNode之间通过一组JournalNode同步元数据信息,一条数据只要成功写入多数JournalNode即认为写入成功。通常配置奇数个JournalNode
虚拟机安装linux系统,我这里用的是centos6.4
使用root用户修改/etc/hosts文件,如下:
&span style=&font-family:Courier N&&192.168.247.134 namenode1
192.168.247.135 namenode2
192.168.247.136 datanode1
192.168.247.137 datanode2
192.168.247.138 datanode3
192.168.247.139 datanode4&/span&
安装jdk1.7和hadoop并配置环境变量,可以配置全局的(修改/etc/profile)也可以配置当前用户的(修改~/.bashrc文件),这里我配置是全局的环境变量
安装jdk的过程直接解压tar xzvf jdk.tar, 这里不做说明了,列出/etc/profile文件中末尾添加的内容如下
&span style=&font-family:Courier N&&export JAVA_HOME=/usr/java/jdk1.7.0_67
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
export HADOOP_HOME=/home/hadoop/hadoop_installs/hadoop-2.6.0&/span&
使用root用户关闭防火墙和selinux
service iptables stop
chkconfig iptables off
修改/etc/selinux/config文件中设置SELINUX=disabled ,然后重启服务器
创建hadoop用户组及hadoop用户并完成.ssh免密码登录
在每台虚拟机中通过hadoop用户执行ssh-keygen -t rsa会在~/.ssh/目录中生成两个文件id_rsa和id_rsa.pub,
如果想从namenode1免密码登录到namenode2中要在namenode1中执行ssh-copy-id -i ~/.ssh/id_rsa.pub root@namenode2
(注意:些命令中的-i一定加上否则之后的一些操作会出现ssh_exchange_identification: Connection closed by remote host这样的错误),
这个命令完成后会在namenode2的~/.ssh/目录下生成文件authorized_keys,此时可以从namenode1直接ssh到namenode2了,建议在每台机器包括namenode2本身都执行ssh-copy-id -i ~/.ssh/id_rsa.pub root@namenode2然后把生成的authorized_keys复制到集群中每个机器上实现任何机器之间都可以免密码登录。
注意:同时也要考备到本机,否则在启动yran时要求输入本机的登录密码。
完成安装zookeeper3.4.5集群:
主要作用是用于ZKFC(DFSZKFailoverController)故障转移,当Active NameNode挂掉了,会自动切换Standby NameNode为standby状态
解压zookeeper包在zookeeper3.4.5/conf/目录执行mv zoo_sample.cfg zoo.cfg,之后修改zoo.cfg文件,
修改dataDir=/hadoop/zookeeper-3.4.5/tmp(zookeeper修改源数据的地方,包括myid文件)
文件最后添加
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/hadoop/zookeeper-3.4.5/tmp
clientPort=2181
ZOO_LOG_DIR=/hadoop/zookeeper-3.4.5/log
server.1=datanode1:
server.2=datanode2:
server.3=datanode4:
然后分别在datanode1,2,4节点中创建一个tmp文件夹 ,mkdir /hadoop/zookeeper-3.4.5/tmp ,再创建一个空文件&&touch /hadoop/zookeeper-3.4.5/tmp/myid 最后向该文件写入ID,datanode1执行echo 1 & /hadoop/zookeeper-3.4.5/tmp/myid,datanode1执行echo 2 & /hadoop/zookeeper-3.4.5/tmp/myid,datanode3执行echo 3 & /hadoop/zookeeper-3.4.5/tmp/myid
安装配置hadoop2.6.0集群:
解压文件后配置HDFS(注意:hadoop2.X之后所有的配置文件都在$HADOOP_HOME/etc/hadoop目录下),需要修改文件如下:
修改文件hadoo-env.sh
export JAVA_HOME=/usr/java/jdk1.7.0_67
export HADOOP_LOG_DIR=/data/log/hadoop
注意:修改hadoop里的配置文件时一定在linux系统中进行修改,如果通类似于WinSCP的软在windows下打开文件并修改会造成文件编码格式不正确的相关问题,导致集群启动失败。血的教训!!!!牢记!!!
修改文件core-site.xml
&configuration&
  &!-- 指定hdfs的nameservice为ns1,是NameNode的URI。hdfs://主机名:端口/ --&
&property&
&name&fs.defaultFS&/name&
&value&hdfs://gagcluster&/value&
&/property&
&property&
&name&io.file.buffer.size&/name&
&value&131072&/value&
&/property&
&!-- 指定hadoop临时目录 --&
&property&
&name&hadoop.tmp.dir&/name&
&value&file:/data/hadoop/tmp&/value&
&description&Abase for other temporary directories.&/description&
&/property&
&!--指定可以在任何IP访问--&
&property&
&name&hadoop.proxyuser.hduser.hosts&/name&
&value&*&/value&
&/property&
&!--指定所有用户可以访问--&
&property&
&name&hadoop.proxyuser.hduser.groups&/name&
&value&*&/value&
&/property&
&!-- 指定zookeeper地址 --&
&property&
&name&ha.zookeeper.quorum&/name&
&value&dataNode1:2181,dataNode2:2181,dataNode4:2181&/value&
&/property&
&/configuration&
修改文件hdfs-site.xml
&configuration&
&!--指定hdfs的nameservice为ns1,需要和core-site.xml中的保持一致 --&
&property&
&name&dfs.nameservices&/name&
&value&gagcluster&/value&
&/property&
&!-- ns1下面有两个NameNode,分别是nn1,nn2 --&
&property&
&name&dfs.ha.namenodes.gagcluster&/name&
&value&nn1,nn2&/value&
&/property&
&!-- nn1的RPC通信地址 --&
&property&
&name&dfs.namenode.rpc-address.gagcluster.nn1&/name&
&value&namenode1:9000&/value&
&/property&
&!-- nn2的RPC通信地址 --&
&property&
&name&dfs.namenode.rpc-address.gagcluster.nn2&/name&
&value&namenode2:9000&/value&
&/property&
&!-- nn1的http通信地址 --&
&property&
&name&dfs.namenode.http-address.gagcluster.nn1&/name&
&value&namenode1:50070&/value&
&/property&
&!-- nn2的http通信地址 --&
&property&
&name&dfs.namenode.http-address.gagcluster.nn2&/name&
&value&namenode2:50070&/value&
&/property&
&!-- 指定NameNode的元数据在JournalNode上的存放位置 --&
&property&
&name&dfs.namenode.shared.edits.dir&/name&
&value&qjournal://dataNode1:8485;datanode2:8485;datanode4:8485/gagcluster&/value&
&/property&
&!-- 配置失败自动切换实现方式 --&
&property&
&name&dfs.client.failover.proxy.provider.gagcluster&/name&
&value&org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider&/value&
&/property&
&!-- 配置隔离机制 --&
&property&
&name&dfs.ha.fencing.methods&/name&
&value&sshfence&/value&
&/property&
&!-- 使用隔离机制时需要ssh免密码登陆 --&
&property&
&name&dfs.ha.fencing.ssh.private-key-files&/name&
&value&/home/hadoop/.ssh/id_rsa&/value&
&/property&
&!-- 指定NameNode的元数据在JournalNode上的存放位置 --&
&property&
&name&dfs.journalnode.edits.dir&/name&
&value&/data/hadoop/tmp/journal&/value&
&/property&
&!--指定支持高可用自动切换机制--&
&property&
&name&dfs.ha.automatic-failover.enabled&/name&
&value&true&/value&
&/property&
&!--指定namenode名称空间的存储地址--&
&property&
&name&dfs.namenode.name.dir&/name&
&value&file:/data/hadoop/dfs/name&/value&
&/property&
&!--指定datanode数据存储地址--&
&property&
&name&dfs.datanode.data.dir&/name&
&value&file:/data/hadoop/dfs/data&/value&
&/property&
&!--指定数据冗余份数--&
&property&
&name&dfs.replication&/name&
&value&3&/value&
&/property&
&!--指定可以通过web访问hdfs目录--&
&property&
&name&dfs.webhdfs.enabled&/name&
&value&true&/value&
&/property&
&!--保证数据恢复 --&
&property&
&name&dfs.journalnode.http-address&/name&
&value&0.0.0.0:8480&/value&
&/property&
&property&
&name&dfs.journalnode.rpc-address&/name&
&value&0.0.0.0:8485&/value&
&/property&
&property&
&name&ha.zookeeper.quorum&/name&
&value&dataNode1:2181,dataNode2:2181,dataNode4:2181&/value&
&/property&
&/configuration&
修改文件yarn-site.xml
&configuration&
&!--rm失联后重新链接的时间--&
&property&
&name&yarn.resourcemanager.connect.retry-interval.ms&/name&
&value&2000&/value&
&/property&
&!--开启resource manager HA,默认为false--&
&property&
&name&yarn.resourcemanager.ha.enabled&/name&
&value&true&/value&
&/property&
&!--配置resource manager --&
&property&
&name&yarn.resourcemanager.ha.rm-ids&/name&
&value&rm1,rm2&/value&
&/property&
&property&
&name&ha.zookeeper.quorum&/name&
&value&dataNode1:2181,dataNode2:2181,dataNode4:2181&/value&
&/property&
&!--开启故障自动切换--&
&property&
&name&yarn.resourcemanager.ha.automatic-failover.enabled&/name&
&value&true&/value&
&/property&
&property&
&name&yarn.resourcemanager.hostname.rm1&/name&
&value&namenode1&/value&
&/property&
&property&
&name&yarn.resourcemanager.hostname.rm2&/name&
&value&namenode2&/value&
&/property&
&!--在namenode1上配置rm1,在namenode2上配置rm2,注意:一般都喜欢把配置好的文件远程复制到其它机器上,但这个在YARN的另一个机器上一定要修改--&
&property&
&name&yarn.resourcemanager.ha.id&/name&
&value&rm1&/value&
&description&If we want to launch more than one RM in single node, we need this configuration&/description&
&/property&
&!--开启自动恢复功能--&
&property&
&name&yarn.resourcemanager.recovery.enabled&/name&
&value&true&/value&
&/property&
&!--配置与zookeeper的连接地址--&
&property&
&name&yarn.resourcemanager.zk-state-store.address&/name&
&value&datanode1:2181,datanode2:2181,datanode4:2181&/value&
&/property&
&property&
&name&yarn.resourcemanager.store.class&/name&
&value&org.apache.hadoop.yarn.server.resourcemanager.recovery.ZKRMStateStore&/value&
&/property&
&property&
&name&yarn.resourcemanager.zk-address&/name&
&value&datanode1:2181,datanode2:2181,datanode4:2181&/value&
&/property&
&property&
&name&yarn.resourcemanager.cluster-id&/name&
&value&gagcluster-yarn&/value&
&/property&
&!--schelduler失联等待连接时间--&
&property&
&name&yarn.app.mapreduce.am.scheduler.connection.wait.interval-ms&/name&
&value&5000&/value&
&/property&
&!--配置rm1--&
&property&
&name&yarn.resourcemanager.address.rm1&/name&
&value&namenode1:8132&/value&
&/property&
&property&
&name&yarn.resourcemanager.scheduler.address.rm1&/name&
&value&namenode1:8130&/value&
&/property&
&property&
&name&yarn.resourcemanager.webapp.address.rm1&/name&
&value&namenode1:8188&/value&
&/property&
&property&
&name&yarn.resourcemanager.resource-tracker.address.rm1&/name&
&value&namenode1:8131&/value&
&/property&
&property&
&name&yarn.resourcemanager.admin.address.rm1&/name&
&value&namenode1:8033&/value&
&/property&
&property&
&name&yarn.resourcemanager.ha.admin.address.rm1&/name&
&value&namenode1:23142&/value&
&/property&
&!--配置rm2--&
&property&
&name&yarn.resourcemanager.address.rm2&/name&
&value&namenode2:8132&/value&
&/property&
&property&
&name&yarn.resourcemanager.scheduler.address.rm2&/name&
&value&namenode2:8130&/value&
&/property&
&property&
&name&yarn.resourcemanager.webapp.address.rm2&/name&
&value&namenode2:8188&/value&
&/property&
&property&
&name&yarn.resourcemanager.resource-tracker.address.rm2&/name&
&value&namenode2:8131&/value&
&/property&
&property&
&name&yarn.resourcemanager.admin.address.rm2&/name&
&value&namenode2:8033&/value&
&/property&
&property&
&name&yarn.resourcemanager.ha.admin.address.rm2&/name&
&value&namenode2:23142&/value&
&/property&
&property&
&name&yarn.nodemanager.aux-services&/name&
&value&mapreduce_shuffle&/value&
&/property&
&property&
&name&yarn.nodemanager.aux-services.mapreduce.shuffle.class&/name&
&value&org.apache.hadoop.mapred.ShuffleHandler&/value&
&/property&
&property&
&name&yarn.nodemanager.local-dirs&/name&
&value&/data/hadoop/yarn/local&/value&
&/property&
&property&
&name&yarn.nodemanager.log-dirs&/name&
&value&/data/log/hadoop&/value&
&/property&
&property&
&name&mapreduce.shuffle.port&/name&
&value&23080&/value&
&/property&
&!--故障处理类--&
&property&
&name&yarn.client.failover-proxy-provider&/name&
&value&org.apache.hadoop.yarn.client.ConfiguredRMFailoverProxyProvider&/value&
&/property&
&property&
&name&yarn.resourcemanager.ha.automatic-failover.zk-base-path&/name&
&value&/yarn-leader-election&/value&
&description&Optional setting. The default value is /yarn-leader-election&/description&
&/property&
&/configuration&
修改文件mapred-site.xml
&configuration&
&property&
&name&mapreduce.framework.name&/name&
&value&yarn&/value&
&/property&
&!-- 配置 MapReduce JobHistory Server 地址 ,默认端口10020 --&
&property&
&name&mapreduce.jobhistory.address&/name&
&value&0.0.0.0:10020&/value&
&/property&
&!-- 配置 MapReduce JobHistory Server web ui 地址, 默认端口19888 --&
&property&
&name&mapreduce.jobhistory.webapp.address&/name&
&value&0.0.0.0:19888&/value&
&/property&
&/configuration&
修改文件slaves
修改文件yarn-env.sh
export JAVA_HOME=/usr/java/jdk1.7.0_67
export YARN_LOG_DIR=/data/log/hadoop指定日志存放目录
把配置好的文件远程scp到集群其它节点相应目录中,注意修改YARN高可用的yarn-site.xml文件中的yarn.resourcemanager.ha.id项
启动zookeeper集群(分别在datanode1、datanode2、datanode4上启动zk)&
进入到 zookeeper-3.4.5/bin/ & &输入启动命令
./zkServer.sh start
&查看状态:
./zkServer.sh
(一个leader,两个follower)
启动journalnode(在namenode1上启动所有journalnode)&
& && && && &进入到hadoop-2.6.0
sbin/hadoop-daemons.sh
start journalnode
&(运行jps命令检验,多了JournalNode进程)
格式化HDFS&
& && && && &在namenode1上执行命令:&
namenode -format
&格式化后会在根据core-site.xml中的hadoop.tmp.dir配置生成个文件,之后通过sbin/hadoop-daemon.sh start namenode启动namenode进程在namenode2上执行hdfs namenode -bootstrapStandby完成主备节点同步信息
格式化ZK(在namenode1上执行即可)
zkfc -formatZK
启动HDFS(在namenode1上执行)
sbin/start-dfs.sh
启动YARN(在namenode1和namenode2上执行)
sbin/start-yarn.sh
    注意: 在namenode2上执行此命令时会提示NodeManager已存在等信息不用管这些,主要是启动namenode2上的resourceManager完成与namenode1的互备作用,目前没有找到单独启动resourceManager的方法
启动完成之后可以在浏览器中输入和查看namenode分别为Active和Standby
在namenode1上执行${HADOOP_HOME}/bin/yarn rmadmin -getServiceState rm1查看rm1和rm2分别为active和standby状态,也可以通过浏览器访问:8188查看状态
另外:我们从官网上下载的hadoop的本地库是在32位系统中编译。所以,如果你的linux系统是64位的那么运行的时候可能会出现一些错误导致namenode上hdfs不能启动,这时需要去下载64位本地库来进行替换。只需要替换namenode机器上的就可以了(我没有进行详细的测试,只替换了namenode1,建议大家全部机器替换)。
64位本地库下载地址:http://download.csdn.net/detail/xuekunlu/9402379
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:1506次
排名:千里之外
(1)(1)(3)(6)

我要回帖

更多关于 yarn web端口 的文章

 

随机推荐