设为首页 收藏本站
查看: 458|回复: 0

[经验分享] hadoop高可用性部署

[复制链接]
发表于 2015-7-13 11:00:26 | 显示全部楼层 |阅读模式
高可用hdfs部署
  当你使用hadop进入一段时间后,你可能会碰到更高的要求。系统稳定吗?uptime时间能达到100%?为了能够安抚这类担忧情绪你需要做更多的工作.在集群里hadoop的NameNode是SPOF模式,加上backup namenode保证namenode数据在硬盘正确完整的存储,但一旦进程或者服务器挂掉,以及不得不进行的硬件更换升级导致停机,集群一样会处于不可用状态,这也是运行中的hadoop生态系统最麻烦的事情。这时候你就只能重启,或者在另外一个服务器上启动一个namenode.
  为保证高可用性,我们必须有1台StandbyNamenode角色的服务器,它能够随时保持与namenode服务器的状态同步,随时能够接替namenode的工作。最简单的办法是StandbyNamenode与namenode都使用NFS远程挂载一个一模一样的地址来做存储。这样当namenode的edits更改时StandbyNamenode能够随时知道。nfs的方案可能不够健壮,但是足够说服其它人安心了。
  准备一台服务器作为nfs服务端。硬盘网卡需要最好质量的。预算足够的话建议购买专业的存储主机。
  下面是配置过程:
  为保证始终只有一个namenode是处于激活状态的。也就是始终只有一个namenode可以写edits,必须有一个方法用来阻止非激活状态的namenode去写这个文件。称为fencing方法,在配置
dfs.ha.fencing.methods里边指定。
  为保证主备namenode的快速切换,所有DataNode都会同时配置这2个namenode的地址,同时向这2个namenode发送信息和心跳。 这2个namenode谁先启动谁就处于初始激活状态。
  客户端的datanode
hdfs-site.xml 配置如下:
  
  fs.defaultFS
  hdfs://clusternamenode


  
  dfs.nameservices
  clusternamenode



  dfs.ha.namenodes.clusternamenode
  namenode1,namenode2

  namenode1,namenode2是你准备用于作为主备namenode的服务器。最多就2台!!
  因为有2个namenode所以很多配置都要分别设置

  dfs.namenode.rpc-address.clusternamenode.namenode1
  namenode1:8020


  dfs.namenode.rpc-address.clusternamenode.namenode2
  namenode2:8020

  指定每个NameNode监听的rpc通信端口
the fully-qualified RPC address for each NameNode to listen on
  这些配置也要作相应修改只是不同端口
dfs.namenode.servicerpc-address.clusternamenode.namenode1
dfs.namenode.servicerpc-address.clusternamenode.namenode2
dfs.namenode.http-address.clusternamenode.namenode1
dfs.namenode.http-address.clusternamenode.namenode2
dfs.namenode.shared.edits.dir file:///mnt//namenode-shared 指定nfs挂载的路径
  
HDFS客户端检查目前激活的namenode是哪个的驱动

  dfs.client.failover.proxy.provider.clusternamenode
  org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider

  fencing方法
  
  dfs.ha.fencing.methods
  sshfence

  
  dfs.ha.fencing.ssh.private-key-files
  /home/${yourname}/.ssh/id_rsa

  
  dfs.ha.fencing.ssh.connect-timeout
  30000

sshfence使用ssh连接的方式来拦截杀死服务进程,以防止它修改edits文件
dfs.ha.fencing.ssh.private-key-files 是ssh的登录验证文件路径。你必须在2台namenode上互相设置免密码登录。
如果没有这个文件 /home/${yourname}/.ssh/id_rsa 。你可以用命令ssh-keygen重新生成。
dfs.ha.fencing.ssh.connect-timeout 是sshfence的超时失效时间,到这个时间就认为失败了。
  上面的设置我们已经实现了 向2台namenode发送信息跟保持心跳,同时防止2台namenode同是处于激活状态。但是激活的namenodey一旦挂掉,
还是需要手动运行命令 bin/hdfs haadmin -failover来切换,zookeeper能帮我们自动运行这个命令.
需要一个zookeeper的监控团。在生常环境中至少需要3个节点的zookeeper来组成这个监控团。zookeeper的节点只能是单数。
同时hdfs内置了一个zookeeper的客户端ZKFailoverController,这个组件的作用是管理跟监控namenode的状态,同时向zookeeper争取一个称为znode锁。
这个锁处于激活状态,该namenode处于激活状态
  zookeeper与ZKFailoverController的配置如下:(注意在生产环境中我们至少需要3台zookeeper)
  
  ha.zookeeper.quorum
  192.168.2.20

  重启集群后在namenode上运行:
bin/hdfs zkfc -formatZK //启动zookeeper的监控客户端。
到此高可用性的hdfs就上线了,接下来配置一套高可用hbase。
  
高可用hbase部署
  先停止hbase集群
  配置conf/hbase-site.xml
  
  hbase.rootdir
  hdfs://clusternamenode/hbase

  //clusternamenode 就是上面配置的hadoop namenode.
  你可能需要删除zookeeper上面的 /hbase目录/splitlogs 这个文件。
  hbase.zookeeper.property.quorum  192.168.2.20,192.168.2.21,192.168.2.22 zookeeper监管列表
运行是环境变量配置conf/hbase-env.sh :
HBASE_MANAGES_ZK false  不使用内置的zookeeper服务
  启动hbase
bin/start-hbase.sh

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-86249-1-1.html 上篇帖子: Hadoop:The Definitive Guid 总结 Chapter 9 构建MapReduce集群 下篇帖子: hadoop疑难杂症解析
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表