hadoop2.2.0配置了HA 今天发现它hadoop ha不自动切换换了?什么原因

&Hadoop2.2.0最新安装手册(HDFS-HA)
秒后自动跳转到登录页
快捷登录:
举报类型:
不规范:上传重复资源
不规范:标题与实际内容不符
不规范:资源无法下载或使用
其他不规范行为
违规:资源涉及侵权
违规:含有危害国家安全等内容
违规:含有反动/色情等内容
违规:广告内容
详细原因:
任何违反下载中心规定的资源,欢迎Down友监督举报,第一举报人可获5-10下载豆奖励。
视频课程推荐
Hadoop2.2.0最新安装手册(HDFS-HA)
上传时间:
技术分类:
资源评价:
(12位用户参与评价)
已被下载&144&次
一、Hadoop2.2.0完全分布式集群平台安装设置: HDFS HA架构: 在一个典型的 HDFS
HA 场景中,通常由两个 NameNode 组成,一个处于 active 状态,另一个处于 standby 状态。Active NameNode 对外提供服务,比如处理来自客户端的 RPC 请求,而 Standby NameNode 则不对外提供服务,仅同步 active namenode 的状态,以便能够在它失败时快速进行切换。 ……
51CTO下载中心常见问题:
1.如何获得下载豆?
1)上传资料
2)评论资料
3)每天在首页签到领取
4)购买VIP会员服务,无需下载豆下载资源
5)更多途径:点击此处
2.如何删除自己的资料?
下载资料意味着您已同意遵守以下协议:
1.资料的所有权益归上传用户所有
2.未经权益所有人同意,不得将资料中的内容挪作商业或盈利用途
3.51CTO下载中心仅提供资料交流平台,并不对任何资料负责
4.本站资料中如有侵权或不适当内容,请邮件与我们联系()
5.本站不保证资源的准确性、安全性和完整性, 同时也不承担用户因使用这些资料对自己和他人造成任何形式的伤害或损失
相关专题推荐
磁盘阵列简称RAID,有“价格便宜且多
网络存储系统的搭建能够为我们带来极
VMware是提供一套虚拟机解决方案的软
从开发、测试、生产三部曲这样的运作
本专题为vmware中文视频教程,在线视
本专题介绍了weblogic服务器在企业应
Vmware View是Vmware的桌面和应用虚拟
vSphere不是一个单独的产品,它由一系
本专题全面深入讲解Windows Server 2
本专题收集了高俊峰老师讲解的系统集
IBM TSM 备份软件实战教学视频,包含
菜鸟腾飞安全网VIP_精通VMware虚拟机
2013年传智播客WebService视频教程,
Active Directory 实操作参考系列,本
服务器虚拟化技术以VMware公司的vSph
LoadRunner,是一种预测系统行为和性
意见或建议:
联系方式:
您已提交成功!感谢您的宝贵意见,我们会尽快处理您所在位置: &
&nbsp&&nbsp&nbsp&&nbsp
Hadoop2.2.0+HA+zookeeper3.4.5详细配置过程.docx 23页
本文档一共被下载:
次 ,您可全文免费在线阅读后下载本文档。
下载提示
1.本站不保证该用户上传的文档完整性,不预览、不比对内容而直接下载产生的反悔问题本站不予受理。
2.该文档所得收入(下载+内容+预览三)归上传者、原创者。
3.登录后可充值,立即自动返金币,充值渠道很便利
Hadoop2.2.0 HA zookeeper3.4.5详细配置过程
你可能关注的文档:
··········
··········
Hadoop2.2.0体系结构hadoop1的核心组成是两部分,即HDFS和MapReduce。在hadoop2中变为HDFS和Yarn。新的HDFS中的NameNode不再是只有一个了,可以有多个(目前只支持2个)。每一个都有相同的职能。这两个NameNode的地位如何:一个是active状态的,一个是standby状态的。当集群运行时,只有active状态的NameNode是正常工作的,standby状态的NameNode是处于待命状态的,时刻同步active状态NameNode的数据。一旦active状态的NameNode不能工作,通过手工或者自动切换,standby状态的NameNode就可以转变为 active状态的,就可以继续工作了。这就是高可靠。当NameNode发生故障时,他们的数据如何保持一致:在这里,2个NameNode的数据其实是实时共享的。新HDFS采用了一种共享机制,JournalNode集群或者NFS进行共享。NFS是操作系统层面的,JournalNode是hadoop层面的,我们这里使用JournalNode集群进行数据共享。如何实现NameNode的自动切换:这就需要使用ZooKeeper集群进行选择了。HDFS集群中的两个NameNode都在ZooKeeper中注册,当active状态的NameNode出故障时,ZooKeeper能检测到这种情况,它就会自动把standby状态的NameNode切换为active状态。HDFS Federation(HDFS联盟):联盟的出现是有原因的。我们知道NameNode是核心节点,维护着整个HDFS中的元数据信息,那么其容量是有限的,受制于服务器的内存空间。当NameNode服务器的内存装不下数据后,那么HDFS集群就装不下数据了,寿命也就到头了。因此其扩展性是受限的。HDFS联盟指的是有多个HDFS集群同时工作,那么其容量理论上就不受限了,夸张点说就是无限扩展。你可以理解成,一个总集群中,可以虚拟出两个或两个以上的单独的小集群,各个小集群之间数据是实时共享的。因为hadoop集群中已经不在单独存在namenode和datanode的概念。当一个其中一个小集群出故障,可以启动另一个小集群中的namenode节点,继续工作。因为数据是实时共享,即使namenode或datanode一起死掉,也不会影响整个集群的正常工作。集群节点任务安排这点很重要,我们事先一定要先理解,节点之间任务是如何安排的。如果事先不理解为什么是这样,后面还会遇到更多的问题。这就需要,理解journalnode、zookeeper、datanode、namenode之间关系。自己也是在这上面耽误了很长时间,希望这点多注意下。6台主机,机器IP和主机名分别是: hadoop1;:hadoop2;:hadoop3;:hadoop4;:hadoop3;:hadoop4;下面是每台机器的进程规划Journalnode和zookeeper保持奇数点,这点大家要有个概念,最少不少于3个节点。这里暂不讲解。两个namenode上面已经说明,其实在hadoop2中几点之间namenode和datanode之间的划分已经不是那么明确了。这只是采用后4台机器作为namenode。这里也存在一个问题:如果把datanode和namenode放在一起,对数据的读取IO的效率肯定会有一定的影响,不同机器之间还是要通过网线和http请求完成数据之间的共享。实际中,两者是可以在一起。但是我不知道在一起和不在一起之间的主要区别在哪儿,上面的解释只是个人意见。下面就进入正式的集群的安装过程:下面所有的过程都是在hadoop1机器上完成的,之后把文件复制到其他节点中。机器预检1.检查机器系统系统建议是:Red Hat/CentOS 6.52.检查虚机的主机名和ip及用户名:(根据自己所在网段配置)在此我们以上面6个节点搭建的集群,以mvtech用户作为样例,查看主机名命令
hostname修改主机名命令
vim /etc/sysconfig/networkreboot查看ip信息ifconfig–a修改ip信息
vim /etc/sysconfig/network-scripts/ifcfg-eth0(要使所有节点都在一个网段内)固定ip,改为静态:
BOOTPROTO = static
ONBOOT = yes
(其他节点ip最后不同)
NETMAST= 在hadoop1上以root用户登录后,新建mvtech用户并设置密码:$&addusermvtech新建mvtech用户$&passwdmvtech为mvtech用户设置密码$&g
正在加载中,请稍后...查看: 40601|回复: 14
hadoop2.2.0配置了HA ,今天发现它自动切换了?什么原因呢?
主题帖子积分
中级会员, 积分 398, 距离下一级还需 602 积分
中级会员, 积分 398, 距离下一级还需 602 积分
hadoop2.2.0配置了HA,今天发现它自动切换了?为什么呢?是原来的节点出问题了么?在哪里可以看到问题阿?
主题帖子积分
高级会员, 积分 1511, 距离下一级还需 3489 积分
高级会员, 积分 1511, 距离下一级还需 3489 积分
主题帖子积分
中级会员, 积分 398, 距离下一级还需 602 积分
中级会员, 积分 398, 距离下一级还需 602 积分
是原来的节点出问题了么??为什么会自动切换呢?
主题帖子积分
是原来的节点出问题了么??为什么会自动切换呢?
自动切换说明原先的节点故障了,可以看看日志
欢迎加入about云群 、 ,云计算爱好者群,关注
主题帖子积分
中级会员, 积分 398, 距离下一级还需 602 积分
中级会员, 积分 398, 距离下一级还需 602 积分
自动切换说明原先的节点故障了,可以看看日志
我在namenode日志中没有看到什么异常阿,datanode中也没有发现,
就是在zkfc 日志中切换之前看到了这个
INFO org.apache.zookeeper.ClientCnxn: Unable to read additional data from server sessionid 0xa00a9, likely server has closed socket, closing socket connection and attempting reconnect
这个是说什么的 socket 关闭了呢??客户端链接服务端的?还是什么呢?不是很董阿
是修改这个么dfs.client.socket-timeout??
主题帖子积分
我在namenode日志中没有看到什么异常阿,datanode中也没有发现,
就是在zkfc 日志中切换之前看到了这个
可能是原因是与zookeeper失去联系了(不能正常通信),导致zookeeper认为他挂掉了
欢迎加入about云群 、 ,云计算爱好者群,关注
主题帖子积分
高级会员, 积分 1387, 距离下一级还需 3613 积分
高级会员, 积分 1387, 距离下一级还需 3613 积分
你可以在日志里面看下
主题帖子积分
中级会员, 积分 398, 距离下一级还需 602 积分
中级会员, 积分 398, 距离下一级还需 602 积分
可能是原因是与zookeeper失去联系了(不能正常通信),导致zookeeper认为他挂掉了
我的zookeeper一共配置了三台,那么就算坏掉一台不应该也是没有问题的么?
我看一台上面报了个这个
INFO&&[ProcessThread(sid:2 cport:2181)::PrepRequestProcessor@627] - Got user-level KeeperException when processing sessionid:0x142 type:create cxid:0x1 zxid:0x txntype:-1 reqpath:n/a Error Path:/hadoop-ha/ads-hadoop-cluster/ActiveStandbyElectorLock Error:KeeperErrorCode = NodeExists for /hadoop-ha/ads-hadoop-cluster/ActiveStandbyElectorLock
然后 后面一直就是报这个了
fsync-ing the write ahead log in SyncThread:2 took 1266ms which will adversely effect operation latency. See the ZooKeeper troubleshooting guide
主题帖子积分
我的zookeeper一共配置了三台,那么就算坏掉一台不应该也是没有问题的么?
我看一台上面报了个这个
是namenode坏掉,而不是zookeeper坏掉。有很多错误,可能自己也没有意识到。
既然自动切换了,就说明原先的namenode故障了,但是还没有日志,这本身就是问题。
欢迎加入about云群 、 ,云计算爱好者群,关注
主题帖子积分
中级会员, 积分 398, 距离下一级还需 602 积分
中级会员, 积分 398, 距离下一级还需 602 积分
是namenode坏掉,而不是zookeeper坏掉。有很多错误,可能自己也没有意识到。
既然自动切换了,就说明原 ...
你上面不是说“可能是原因是与zookeeper失去联系了(不能正常通信),导致zookeeper认为他挂掉了” 这个么?那能不能是因为什么 原因zookeeper坏掉了,然后联系不上namenode上了。以为是namenode坏了。所以就切换了呢?
存在这种可能么??
个人认为不存在这种可能性&
经常参与各类话题的讨论,发帖内容较有主见
经常帮助其他会员答疑
活跃且尽责职守的版主
站长推荐 /2
会员注册不成功的原因
新手获取积分方法
Powered byHadoop2.6.1集群部署之自动切换HA
在上篇博客中介绍了Haddop的手动切换NameNode,这在生产环境中还是不尽人意,因为工作人员可能并不会及时的知道NameNode什么时候宕机?因此在生产环境中实现NameNode的动态切换是十分有必要的,在本篇博客中就主要介绍一下NameNode的动态切换,NameNode的动态切换需要借助于调度框架zookeeper。在本篇博客中博主使用五台干净的机器从零开始搭建Hadoop集群环境,下面就是我使用的环境:
操作为:Centos6.7 jdk的版本为:1.7 jdk的安装路径为:/usr/local/jdk hadoop的版本为:2.6.1 hadoop的安装路径为:/usr/local/hadoop zookeeper的版本为:3.4.9 zookeeper的安装路径为:/usr/local/zookeeper 使用root用户进行集群搭建
接下来我将按照下表进行搭建Hadoop集群:
运行的进程
192.168.159.130
NameNode,ResourceManger,JournalNode,QuorumPeerMain,DFSZKFailoverController
192.168.159.131
NameNode,JournalNode,QuorumPeerMain,DFSZKFailoverController
192.168.159.132
DataNode,NodeManger,JournalNode,QuorumPeerMain
192.168.159.133
DataNode,NodeManger
192.168.159.134
DataNode,NodeManger
注:JournalNode进程主要用于NameNode的数据同步。,zookeeper的作用主要为:当NameNode宕机时,自动切换NameNode,保证NameNode的高可用。DFSZKFailoverController进程的作用时zookeeper的一个代理,实际上是DFSZKFailoverController实现切换NameNode的功能。搭建好的集群架构图如下图所示:
2.配置集群的hostname和IP映射
2.1 修改hostname
在hadoop1机器上修改hostname
//编辑文件
vim /etc/sysconfig/network
//修改主机名是hadoop1,(注意hostname的大小写)
hostname hadoop1
//命令行下修改hostname
hostname hadoop1
同理在hadoop2,hadoop3,hadoop4,hadoop5执行相同的命令,如下图所示
2.2 配置hostname和ip的映射关系以及防火墙
为了部署集群方便,因此我们建立了ip和主机名称的映射,过程如下:
修改/etc/hosts文件
//编辑hosts文件
vim /etc/hosts
//建立ip和host的映射关系
192.168.159.130 hadoop1
192.168.159.131 hadoop2
192.168.159.132 hadoop3
192.168.159.133 hadoop4
192.168.159.134 hadoop5
同理在hadoop2,hadoop3,hadoop4,hadoop5也要建立ip和host的映射关系,过程和hadoop1完全相同。
2.3 关闭防火墙
在hadoop集群中会经常发生 机器和机器之间的交互,为了避免因为防火墙产生的意外故障,因此我们需要将防火墙关闭,过程如下:
//关闭防火墙
service iptables stop
//查看防火墙状态
service iptables status
//关闭防火墙的自动运行
chkconfig iptables off
3 .配置集群免密码登录
ssh免密码登陆,由于要配置自动切换的HA,在SSH免密码登录的时候需要注意三点,第一:NameNode之间要相互可以免密码登录,第二NameNode到DataNode的免密码登录,第三:zookeeper实例之间要相互可以免密码登录,因此在设置之前,我们需要明白几点,如下:
hadoop1和hadoop2之间互为NameNode,因此hadoop1和hadoop2之间需要相互免密码登录 hadoop1和hadoop2都是NameNode,因此需要设置hadoop1到hadoop3,hadoop4,hadoop5的免密码登录,同理hadoop2也应该设置
hadoop1,hadoop2,hadoop3是zookeeper集群实例,因此也需要设置相互之间的免密码登录。
综上所述,需要执行的命令如下:
//hadoop1上需要执行的命令为:
ssh-keygen -t rsa
ssh-copy-id -i hadoop2
ssh-copy-id -i hadoop3
ssh-copy-id -i hadoop4
ssh-copy-id -i hadoop5
//hadoop2上需要执行的命令为:
ssh-keygen -t rsa
ssh-copy-id -i hadoop1
ssh-copy-id -i hadoop3
ssh-copy-id -i hadoop4
ssh-copy-id -i hadoop5
//hadoop3上需要执行的命令为:
ssh-copy-id -i hadoop1
ssh-copy-id -i hadoop2
解压jdk,并修改名称
//将jdk解压到/usr/local
tar -zxvf jdk-7u45-linux-x64.tar.gz -C /usr/local/
//进入到/usr/local
cd /usr/local
//修改文件夹的名称
mv jdk1.7.0_45 jdk
修改环境变量
//修改配置文件
vim /etc/profile
//需要添加的内容
export JAVA_HOME=/usr/local/jdk
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
将hadoop1的jdk复制到其他节点
//将jdk复制到hadoop2,hadoop3,hadoop4,hadoop5
scp -r /usr/local/jdk hadoop2:/usr/local/
scp -r /usr/local/jdk hadoop3:/usr/local/
scp -r /usr/local/jdk hadoop4:/usr/local/
scp -r /usr/local/jdk hadoop5:/usr/local/
//将环境变量复制到hadoop2,hadoop3,hadoop4,hadoop5
scp /etc/profile hadoop2:/etc/profile
scp /etc/profile hadoop3:/etc/profile
scp /etc/profile hadoop4:/etc/profile
scp /etc/profile hadoop5:/etc/profile
重新加载各个节点的环境变量
//分别在hadoop1,hadoop2,hadoop3,hadoop4,hadoop5执行下面命令(在五台机器上都执行)
source /etc/profile
分别在五台机器上验证是否安装成功
//判断Java版本
java -version
5.搭建zookeeper集群
解压zookeeper,并改名
//解压zookeeper安装包
tar -zxvf zookeeper-3.4.9.tar.gz -C /usr/local/
//进入到/usr/local目录
cd /usr/local
//修改文件夹名称
mv zookeeper-3.4.9 zookeeper
修改配置文件zoo.cfg
//将模板文件修改为配置文件
cp conf/zoo_sample.cfg conf/zoo.cfg
//zoo.cfg的内容修改为:
dataDir=/usr/local/zookeeper/data
clientPort=2181
server.1=hadoop1:
server.2=hadoop2:
server.3=hadoop3:
创建数据存储目录并标记
//创建数据存储目录
mkdir -p /usr/local/zookeeper/data
//将hadoop1标记为server.1
echo '1'&/usr/local/zookeeper/data/myid
将zookeeper分发到hadoop2和hadoop3
//将zookeeper分发到hadoop2
scp -r /usr/local/zookeeper hadoop2:/usr/local
//将zookeeper分发到hadoop3
scp -r /usr/local/zookeeper hadoop3:/usr/local
在hadoop2和hadoop3上打标记
//在hadoop2上执行,将hadoop2标记为server.2
echo '2'&/usr/local/zookeeper/data/myid
//在hadoop3上执行,将hadoop3标记为server.3
echo '3'&/usr/local/zookeeper/data/myid
在三个节点分别启动zookeeper
bin/zkServer.sh start
查看zookeeper是否启动成功
//进入zookeeper的命令行模式
zookeeper/bin/zkCli.sh
//查看刚刚安装成功的zookeeper的目录结构,此时可以看到只有一个目录为[zookeeper]
6 hadoop2.6.1的集群部署
6.1 安装hadoop集群
将hadoop解压并且改名
//解压hadoop
tar -zxvf hadoop-2.6.1.tar.gz -C /usr/local/
//进入/usr/local目录
cd /usr/local
//将hadoop-2.6.1改名为hadoop
mv hadoop-2.6.1 hadoop
修改配置文件hadoop-env.sh
//修改hadoop-env.sh配置文件
vim etc/hadoop/hadoop-env.sh
//修改jdk的环境变量
export JAVA_HOME=/usr/local/jdk
修改配置文件core-site.xml
fs.defaultFS
hdfs://cluster1
hadoop.tmp.dir
/usr/local/hadoop/tmp
ha.zookeeper.quorum
hadoop1:2181,hadoop2:2181,hadoop3:2181
修改配置文件hdfs-site.xml
dfs.replication
dfs.nameservices
dfs.ha.namenodes.cluster1
hadoopOne,hadoopTwo
dfs.namenode.rpc-address.cluster1.hadoopOne
hadoop1:9000
dfs.namenode.http-address.cluster1.hadoopOne
hadoop1:50070
dfs.namenode.rpc-address.cluster1.hadoopTwo
hadoop2:9000
dfs.namenode.http-address.cluster1.hadoopTwo
hadoop2:50070
dfs.ha.automatic-failover.enabled.cluster1
dfs.namenode.shared.edits.dir
qjournal://hadoop1:8485;hadoop2:8485;hadoop3:8485/cluster1
dfs.journalnode.edits.dir
/usr/local/hadoop/tmp/journal
dfs.ha.fencing.methods
dfs.ha.fencing.ssh.private-key-files
/root/.ssh/id_rsa
dfs.client.failover.proxy.provider.cluster1
org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider
修改配置文件yarn-site.xml
yarn.resourcemanager.hostname
yarn.nodemanager.aux-services
mapreduce_shuffle
修改配置文件mapred-site.xml
//首先修改模板文件为配置文件
mv mapred-site.xml.template mapred-site.xml
mapreduce.framework.name
设置从节点的位置
//编辑slaves文件
vim slaves
//slaves的内容为:
将hadoop分发到hadoop2,hadoop3,hadoop4,hadoop5
scp -rq /usr/local/hadoop hadoop2:/usr/local
scp -rq /usr/local/hadoop hadoop3:/usr/local
scp -rq /usr/local/hadoop hadoop4:/usr/local
scp -rq /usr/local/hadoop hadoop5:/usr/local
格式化zookeeper集群
//在hadoop1上执行
hadoop/bin/hdfs zkfc -formatZK
//进入zookeeper实例
zookeeper/bin/zkCli.sh
//查看格式化后的zookeeper的目录
启动journalnode集群
//分别在hadoop1,hadoop2,hadoop3上启动journalnode
hadoop/sbin/hadoop-daemon.sh start journalnode
格式化NameNode并启动集群
//在Hadoop1上格式化集群
hadoop/bin/hdfs namenode -format
//在Hadoop1上启动NameNode
hadoop/sbin/hadoop-daemon.sh start namenode
//在hadoop2上格式化集群
hadoop/bin/hdfs namenode -bootstrapStandby
//在hadoop2上启动NameNode
hadoop/sbin/hadoop-daemon.sh start namenode
//启动DataNode(在hadoop1上执行)
hadoop/sbin/hadoop-daemons.sh start datanode
//启动ZKFC,ZKFC是zookeeper的一个代理,主要用于切换NameNode(在hadoop1和hadoop2上执行)
hadoop/sbin/hadoop-daemon.sh start zkfc
//启动resourcemanager和nodemanager(在hadoop1上执行)
hadoop/sbin/start-yarn.sh start resourcemanager
6.2 验证hadoop是否安装成功
使用命令验证
//查看java进程
从web界面查看()
当我们在NameNode上杀死进程时,NameNode自动切换到hadoop2
自动切换比手工切换多出来的步骤:
配置上core-site.xml增加了配置项ha.zookeeper.quorum,hdfs-site.xml中把dfs.ha.automatic-failover.enabled.cluster1改为true 操作上格式化zk,执行命令bin/hdfs zkfc -formatZK,启动zkfc,执行命令sbin/hadoop-daemon.sh start zkfc}

我要回帖

更多关于 hadoop安装配置 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信