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

[经验分享] 搭建高可用的分布式hadoop2.5.2集群  HDFS HA

[复制链接]

尚未签到

发表于 2018-10-29 12:46:36 | 显示全部楼层 |阅读模式
  HA: High Available(高可用集群)
DSC0000.png

  本次安装的hadoop2.5.2是64bit的,如果需要请在我之前的博文中
  规划节点数:(仅考虑HDFS 的HA)
  HDFS的节点分配:
  两个NN 且分布在两台主机
  三个DN节点
  三个JN节点
  两个ZKFC节点(必须和NN放在一台主机上)
  三个Zookeeper
  Mapreduce的节点:
  一个ResourceManager(替代1.x时的JobTracker)
  三个DATAManager(替代1.x时的TaskTracker)和DN节点数相同
主机名NNDNZKZKFCJNRMDMNode01111Node1111111Node21111Node3111  具体步骤:
  一、# ln -sf /root/hadoop-2.5.2 /home/hadoop2.5.2
  二、修改配置文件(hadoop2.5.2/etc/hadoop)

  •   # vim hadoop-env.sh   //修改JAVA_HOME

  •   # vim slaves           //配置DN的主机
  node1  //DN1节点的主机
  node2  //DN2节点的主机
  node3  //DN3节点的主机
  注意:因为hadoop2.x没有了SecondNode了,因此不要配master文件

  •   # vim hdfs-site.xml
  
  
  
  dfs.nameservices
  mycluster
  
  
  
  dfs.ha.namenodes.mycluster
  nn1,nn2
  
  
  
  dfs.namenode.rpc-address.mycluster.nn1
  node0:8020
  
  
  dfs.namenode.rpc-address.mycluster.nn2
  node1:8020
  
  
  
  dfs.namenode.http-address.mycluster.nn1
  node0:50070
  
  
  dfs.namenode.http-address.mycluster.nn2
  node1:50070
  
  
  
  dfs.namenode.shared.edits.dir
  qjournal://node1:8485;node2:8485;node3:8485/mycluster
  
  
  
  dfs.client.failover.proxy.provider.mycluster
  org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider
  
  
  
  dfs.ha.fencing.methods
  sshfence
  
  
  dfs.ha.fencing.ssh.private-key-files
  /root/.ssh/id_dsa
  
  
  
  dfs.journalnode.edits.dir
  /opt/jn/data
  
  
  
  dfs.ha.automatic-failover.enabled
  true
  
  

  •   # vim core-site.xml
  
  
  
  fs.defaultFS
  hdfs://mycluster
  
  
  
  ha.zookeeper.quorum
  node0:2181,node1:2181,node2:2181
  
  
  
  hadoop.tmp.dir
  /opt/hadoop2/
  
  

  •   安装zookeeper  【zookeeper-3.4.6】
  #ln -sf /root/zookeeper-3.4.6   /home/zk
  以下操作均在/home/zk下:
  配置目录在,zk/conf/
  #cp   zoo_sample.cfg    zoo.cfg //先将配置文件复制一份,重命名
  # vim  zoo.cfg
  1.dataDir=/opt/zookeeper   //修改默认值,默认放在/tmp ,
  2.文件最后添加以下几行
server.1=node0:2888:3888   //zookeeper所在节点的主机名  
server.2=mode1:2888:3888
  
server.3=node2:2888:3888
  修改完成后,创建/opt/zookeeper目录,并创建,编辑文件名为myid的文件
  填充内容为server.1=node0:2888:3888 server后面的数字,不同节点对应不同数字,
  如第二个zookeeper即node1上的节点对应的数字即为2
  将/opt/zookeeper目录拷贝其他节点上
  [root@node0 bin]# scp -r zookeeperroot@node1:/opt/
  # scp -r zookeeper root@node2:/opt/
  在将zookeeper整个软件工作目录拷到其他节点上去
  [root@node0 ~]# scp -r zookeeper-3.4.6root@node1:~
  # scp -r zookeeper-3.4.6 root@node2:~
  别忘记做软连接
  # ln -sf /root/zookeeper-3.4.6  /home/zk
  配置Zookeeper的环境变量,写入/etc/profile,并将其他节点一并改写
  # scp /etc/profile root@node1:/etc/profile
  启动zookeeper
  先关闭系统防火墙:# systemctl stop firewalld.service
  或者# vim /etc/selinux/config  //重启
  每个节点都要启动:# zkServer.sh start
  检测:
  [root@node0 zookeeper-3.4.6]# jps
  5403 Jps
  5305 QuorumPeerMain
  以上完成zookeeper的安装部署
  下面要启动集群:
  启动之前,将其他节点安装Hadoop2.5.2,并将之前的配置文件覆盖到每个节点,保持每个节点的配置文件相同
  # scp  ./*   root@node1:/home/hadoop2.5.2/etc/hadoop
  # scp  ./*   root@node2:/home/hadoop2.5.2/etc/hadoop
  # scp  ./*   root@node3:/home/hadoop2.5.2/etc/hadoop
  目录切换到/home/hadoop2.5.2/sbin

  •   首先启动JN :(在JN的节点上启动,即node1,node2,node3)
  [root@node1 sbin]# ./hadoop-daemon.sh start journalnode
  [root@node2 sbin]# ./hadoop-daemon.sh start journalnode
  [root@node3 sbin]# ./hadoop-daemon.sh start journalnode
  2.在任意一个NN的节点主机上(node0或者node1),格式化HDFS,目录切换到/home/hadoop2.5.2/bin
  [root@node0 bin]# ./hdfs namenode –format
DSC0001.png

  3.检查各个节点是JN是否正常,jps或者去当前格式化NN节点的主机下的/home/hadoop2.5.2/logs  查看JN日志
  4.拷贝当前格式化NN节点的元数据文件(opt/hadoop2/dfs/name/current/*)
  官方有推荐命令:

  •   首先启动当前NN(格式化好的):bin]#./hadoop-daemon.sh start namenode
  •   检查:jps  ,检查/opt/hadoop2/dfs/name/current有没有生成元数据文件
  [root@node0current]# ll
  总用量 16
  -rw-r--r--.1 root root 351 6月   4 20:42fsimage_0000000000000000000
  -rw-r--r--.1 root root  62 6月   4 20:42 fsimage_0000000000000000000.md5
  -rw-r--r--.1 root root   2 6月   4 20:42 seen_txid
  -rw-r--r--. 1 root root 205 6月   4 20:42 VERSION
  5.官方文档推荐使用:在没有格式化的NN节点的主机上执行:bin]#./node –bootstrapStandby
  这个命令就是将NN(已经格式化)生成元数据内容拷贝到NN(未格式化)的主机上在没有格式化的NN主机上检查有没有拷贝成功opt/hadoop2/dfs/name/current/*
  然而,我自己编译的源码,没这玩意……
  不过别担心,手动移动是一样有效的,[root@node0 opt]# scp -r hadoop2 root@node1:/opt
DSC0002.png

  6.停止所有HDFS的节点的服务:zookeeper不要停      bin]#./stop-dfs.sh
  7.在其中一个NN节点,格式化zkfs   bin]# hdfs   zkfc   -formatZK
  8.一次性启动所有dfs节点:sbin]#./start-dfs.sh
  出现下图及说明安装无误:
DSC0003.png

  用浏览器访问node0节点和node1节点,至于谁做active谁做standby完全取决于谁先拿到竞争锁
  浏览器访问测试:(别忘更改自己的hosts文件,否则请用ip地址)
  node0:50070    //NN1
  node1:50070     // NN2
DSC0004.png

DSC0005.png

  上床文件测试一下:
  [root@node0 bin]# ./hdfs dfs -mkdir -p/usr/file     //HDFS创建目录
  [root@node0 bin]# ./hdfs   dfs   -put /root/zookeeper-3.4.6.tar.gz  /usr/file  //上传文件
  这里说明:Hadoop1.x  默认block大小是64M  Hadoop2.x默认block大小是128M
  ============================================================================
  下面配置MapReduce

  •   1.      vim mapred-site.xml
  
  
  mapreduce.framework.name
  yarn
  
  

  •   2.      vim yarn-size.xml
  
  
  
  yarn.resourcemanager.hostname
  node0
  
  
  yarn.nodemanager.aux-services
  mapreduce_shuffle
  
  
  yarn.nodemanager.aux-services.mapreduce.shuffle.class
  org.apache.hadoop.mapred.ShuffleHandler
  
  
  将这些配置文件一并拷贝到其他节点主机上
  [root@node0 etc]# scp -r hadooproot@node1:/home/hadoop2.5.2/etc
  [root@node0 etc]# scp -r hadooproot@node2:/home/hadoop2.5.2/etc
  [root@node0 etc]# scp -r hadooproot@node3:/home/hadoop2.5.2/etc
  重启 hadoop
  [root@node0 sbin]# ./start-all.sh
  浏览器访问 node0:8080
DSC0006.png




运维网声明 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-628020-1-1.html 上篇帖子: Hadoop家族学习路线图 下篇帖子: Hadoop基础入门以及Hadoop集群搭建
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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