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

[经验分享] 2018-07-16期 Hadoop HA安装配置(一)

[复制链接]

尚未签到

发表于 2018-10-28 11:56:35 | 显示全部楼层 |阅读模式
  部署说明:
  Hadoop HA和Hadoop集群不是一回事,Hadoop集群是由HDFS集群和Yarn(MapReduce)集群组成,是一个分布式存储HDFS和分布式计算框架集群构成,集群中Datanode和Nodemanager节点可以无限扩展。但是Hadoop集群必须依赖元数据节点Namenode和Yarn资源调度Resourcemanager节点,目前默认情况下这两类节点为单机运行,一旦元数据节点Namenode出现故障,将导致HDFS集群不可用,Resourcemanager节点出现故障,将导致MapReduce任务无法提交,导致分布式计算无法完成。
  因此,基于上述原因,可以通过搭建Hadoop Namenode节点和Resourcemanager节点的备用节点来保障Hadoop集群的高可用,一旦Active的Namenode节点故障,Standby Namenode会快速无缝接管Namenode,同样如果Active的Resourcemanager节点出现故障,Standby的resourcemanager也可以快速接管Resourcemanager提供计算服务的资源调度。这就是我们本实验中涉及到的Hadoop HA,而非Hadoop集群。
  一、安装规划
  IP地址
  安装软件
  运行进程
  说明
  192.168.1.31
  JDK、Hadoop
  Namenode
  HDSF NameNode (Active)
  192.168.1.32
  JDK、Hadoop
  Namenode
  HDSF NameNode (Standby)
  192.168.1.41
  JDK、Hadoop
  ResourceManager(yarn)
  Yarn(Active)
  192.168.1.42
  JDK、Hadoop
  ResourceManager(yarn)
  Yarn(Standby)
  192.168.1.51
  JDK、Hadoop
  Datanode、Nodemanager(yarn)
  HDSF DataNode
  192.168.1.52
  JDK、Hadoop
  Datanode、Nodemanager(yarn)
  HDSF DataNode
  192.168.1.53
  JDK、Hadoop
  Datanode、Nodemanager(yarn)
  HDSF DataNode
  192.168.1.61
  Zookeeper
  JournalNode、QuorumPeerMain
  存放edit的日志管理系统
  192.168.1.62
  Zookeeper
  JournalNode、QuorumPeerMain
  存放edit的日志管理系统
  192.168.1.63
  Zookeeper
  JournalNode、QuorumPeerMain
  存放edit的日志管理系统
  192.168.1.71
  JDK、Hadoop
  DFSZKFailoverController(zkfc)
  Namenode状态监测控制器
  192.168.1.72
  JDK、Hadoop
  DFSZKFailoverController(zkfc)
  Namenode状态监测控制器
  二、操作系统安装
  操作系统版本:CentOS 6.4 X86_64
  安装过程:略
  三、JDK安装配置
  安装版本:jdk1.7.0_65 32位
  安装过程:
  [root@hadoop-server01 bin]# mkdir -p /usr/local/apps
  [root@hadoop-server01 bin]# ll /usr/local/apps/
  total 4
  drwxr-xr-x. 8 uucp 143 4096 Apr 10  2015 jdk1.7.0_80
  [root@hadoop-server01 bin]# pwd
  /usr/local/apps/jdk1.7.0_80/bin
  [root@hadoop-server01 bin]#vi /etc/profile
  export JAVA_HOME=/usr/local/apps/jdk1.7.0_80
  export PATH=$PATH:$JAVA_HOME/bin
  [root@hadoop-server01 bin]# source /etc/profile
  四、基础环境配置
  1、修改所有主机的/etc/hosts文件
  192.168.1.31    hadoop-namenode01
  192.168.1.32    hadoop-namenode02
  192.168.1.41    hadoop-resourcemanager01
  192.168.1.42    hadoop-resourcemanager02
  192.168.1.51    hadoop-datanode01
  192.168.1.52    hadoop-datanode02
  192.168.1.53    hadoop-datanode03
  192.168.1.61    hadoop-zknode01
  192.168.1.62    hadoop-zknode02
  192.168.1.63    hadoop-zknode03
  192.168.1.71    hadoop-zkfcnode01
  192.168.1.72    hadoop-zkfcnode02
  2、关闭防火墙
  service iptabels stop
  chkconfig iptablels off
  五、配置免密登录
  1、要求所有的namenode及yarnnode能免密登录到所有服务器
  2、配置示例
  [root@hadoop-namenode02 apps]# ssh-keygen
  [root@hadoop-namenode01 apps]# ssh-copy-id hadoop-namenode02
  [root@hadoop-namenode01 apps]# ssh hadoop-namenode02
  六、集群安装部署
  1、部署zookeeper集群
  (1)部署节点
  192.168.1.61
  192.168.1.62
  192.168.1.63
  (2)解压安装包并修改配置文件
  [root@hadoop-zknode01 ~]# tar -xvf zookeeper-3.4.5.tar.gz -C /usr/local/apps/
  [root@hadoop-zknode01 conf]# cd /usr/local/apps/zookeeper-3.4.5/conf
  [root@hadoop-zknode01 conf]# mv zoo_sample.cfg zoo.cfg
  [root@hadoop-zknode01 conf]# vi zoo.cfg
  # The number of milliseconds of each tick
  tickTime=2000
  # The number of ticks that the initial
  # synchronization phase can take
  initLimit=10
  # The number of ticks that can pass between
  # sending a request and getting an acknowledgement
  syncLimit=5
  # the directory where the snapshot is stored.
  # do not use /tmp for storage, /tmp here is just
  # example sakes.
  dataDir=/usr/local/apps/zookeeper-3.4.5/data
  # the port at which the clients will connect
  clientPort=2181
  #
  # Be sure to read the maintenance section of the
  # administrator guide before turning on autopurge.
  #
  # http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
  #
  # The number of snapshots to retain in dataDir
  #autopurge.snapRetainCount=3
  # Purge task interval in hours
  # Set to "0" to disable auto purge feature
  #autopurge.purgeInterval=1
  server.1=hadoop-zknode01:2888:3888
  server.2=hadoop-zknode02:2888:3888
  server.3=hadoop-zknode03:2888:3888
  (3)创建myid文件
  [root@hadoop-zknode01 data]# cd /usr/local/apps/zookeeper-3.4.5/data
  [root@hadoop-zknode01 data]# echo 1 > myid
  (4)拷贝zk到其它节点并修改myid
  [root@hadoop-zknode01 apps]# scp -r zookeeper-3.4.5/ hadoop-zknode02:/usr/local/apps/zookeeper-3.4.5/
  [root@hadoop-zknode02 data]# echo 2 > myid
  [root@hadoop-zknode01 apps]# scp -r zookeeper-3.4.5/ hadoop-zknode03:/usr/local/apps/zookeeper-3.4.5/
  [root@hadoop-zknode03 data]# echo 3 > myid
  (5)启动zk
  [root@hadoop-zknode01 apps]# cd zookeeper-3.4.5/bin/
  [root@hadoop-zknode01 bin]# ./zkServer.sh  start
  JMX enabled by default
  Using config: /usr/local/apps/zookeeper-3.4.5/bin/../conf/zoo.cfg
  Starting zookeeper ... STARTED
  另外两个节点也启动zk
  2、部署Hadoop集群
  (1)安装节点
  192.168.1.31
  192.168.1.32
  192.168.1.41
  192.168.1.42
  192.168.1.51
  192.168.1.52
  192.168.1.53
  (2)解压安装包
  [root@hadoop-namenode01 hadoop]# tar -xvf hadoop-2.4.1.tar.gz -C /usr/local/apps/
  (3)修改hadoop-env.sh
  cd /usr/local/apps/hadoop-2.4.1/etc/hadoop
  # The java implementation to use.
  export JAVA_HOME=/usr/local/apps/jdk1.7.0_65
  # The jsvc implementation to use. Jsvc is required to run secure datanodes.
  #export JSVC_HOME=${JSVC_HOME}
  (4)修改core-site.xml
  cd /usr/local/apps/hadoop-2.4.1/etc/hadoop
  
  
  
  fs.defaultFS
  hdfs://ns1/
  
  
  
  hadoop.tmp.dir
  /usr/local/apps/hadoop-2.4.1/tmp
  
  
  
  ha.zookeeper.quorum
  hadoop-zknode01:2181,hadoop-zknode02:2181,hadoop-zknode03:2181
  
  
  (5)修改hdfs-site.xml
  
  
  
  dfs.nameservices
  ns1
  
  
  
  dfs.ha.namenodes.ns1
  nn1,nn2
  
  
  
  dfs.namenode.rpc-address.ns1.nn1
  hadoop-namenode01:9000
  
  
  
  dfs.namenode.http-address.ns1.nn1
  hadoop-namenode01:50070
  
  
  
  dfs.namenode.rpc-address.ns1.nn2
  hadoop-namenode02:9000
  
  
  
  dfs.namenode.http-address.ns1.nn2
  hadoop-namenode02:50070
  
  
  
  dfs.namenode.shared.edits.dir
  qjournal://hadoop-zknode01:8485;hadoop-zknode02:8485;hadoop-zknode03:8485/ns1
  
  
  
  dfs.journalnode.edits.dir
  /home/hadoop/app/hadoop-2.4.1/journaldata
  
  
  
  dfs.ha.automatic-failover.enabled
  true
  
  
  
  dfs.client.failover.proxy.provider.ns1
  org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider
  
  
  
  dfs.ha.fencing.methods
  
  sshfence
  shell(/bin/true)
  
  
  
  
  dfs.ha.fencing.ssh.private-key-files
  /root/.ssh/id_rsa
  
  
  
  dfs.ha.fencing.ssh.connect-timeout
  30000
  
  
  (6)修改mapred-site.xml
  [root@hadoop-namenode01 hadoop]# mv mapred-site.xml.template mapred-site.xml
  
  
  
  mapreduce.framework.name
  yarn
  
  
  (7)修改yarn-site.xml
  
  
  
  yarn.resourcemanager.ha.enabled
  true
  

  
  
  yarn.resourcemanager.ha.rm-ids
  rm1,rm2
  
  
  
  yarn.resourcemanager.hostname.rm1
  hadoop-resourcemanager01
  
  
  yarn.resourcemanager.hostname.rm2
  hadoop-resourcemanager02
  
  
  
  yarn.resourcemanager.zk-address
  hadoop-zknode01:2181,hadoop-zknode02:2181,hadoop-zknode03:2181
  
  
  yarn.resourcemanager.aux-services
  mapreduce_shuffle
  
  
  (8)修改slaves文件【namenode和yarn节点都要改,datanode和nodemanager都在相同服务器】
  [root@hadoop-namenode01 hadoop]# vi slaves
  hadoop-datanode01
  hadoop-datanode02
  hadoop-datanode03
  (9)namenode01上hadoop分发到所有服务器
  hadoop-namenode02
  hadoop-resourcemanager01
  hadoop-resourcemanager02
  hadoop-datanode01
  hadoop-datanode02
  hadoop-datanode03
  hadoop-zknode01
  hadoop-zknode02
  hadoop-zknode03
  scp -r hadoop-2.4.1/ hadoop-resourcemanager01:/usr/local/apps/
  .......
  其它节点类似
  (10)格式化HDFS
  步骤1:启动zk【hadoop-zknode01,hadoop-zknode02,hadoop-zknode03】
  确保zk已经启动,这里略
  步骤2:启动journalnode【hadoop-zknode01,hadoop-zknode02,hadoop-zknode03】
  [root@hadoop-zknode01 sbin]# cd /usr/local/apps/hadoop-2.4.1/sbin
  [root@hadoop-zknode01 sbin]# ./hadoop-daemon.sh start journalnode
  [root@hadoop-zknode02 sbin]# ./hadoop-daemon.sh start journalnode
  [root@hadoop-zknode03 sbin]# ./hadoop-daemon.sh start journalnode
  [root@hadoop-zknode03 sbin]# jps
  4209 JournalNode
  2997 QuorumPeerMain
  步骤3:格式化HDFS
  --在hadoop-namenode01上格式化
  [root@hadoop-namenode01 bin]# cd /usr/local/apps/hadoop-2.4.1/bin
  [root@hadoop-namenode01 bin]# ./hdfs namenode -format
  --将hadoop-namenode01上的格式化数据拷贝到第二个namenode节点
  [root@hadoop-namenode01 hadoop-2.4.1]# scp -r tmp/ hadoop-namenode02:/usr/local/apps/hadoop-2.4.1/
  [root@hadoop-namenode01 current]# pwd
  /usr/local/apps/hadoop-2.4.1/tmp/dfs/name/current
  [root@hadoop-namenode01 current]# ll
  total 16
  -rw-r--r--. 1 root root 351 Jul  4 06:01 fsimage_0000000000000000000
  -rw-r--r--. 1 root root  62 Jul  4 06:01 fsimage_0000000000000000000.md5
  -rw-r--r--. 1 root root   2 Jul  4 06:01 seen_txid
  -rw-r--r--. 1 root root 204 Jul  4 06:01 VERSION
  步骤4:格式化ZKFC【只需要在任何一台naenode执行即可】
  [root@hadoop-namenode01 bin]# pwd
  /usr/local/apps/hadoop-2.4.1/bin
  [root@hadoop-namenode01 bin]# ./hdfs zkfc -formatZK
  18/07/04 06:12:16 INFO ha.ActiveStandbyElector: Session connected.
  18/07/04 06:12:16 INFO ha.ActiveStandbyElector: Successfully created /hadoop-ha/ns1 in ZK.
  --代表成功在zk里面创建了目录
  18/07/04 06:12:16 INFO zookeeper.ZooKeeper: Session: 0x364639c799c0000 closed
  18/07/04 06:12:16 INFO zookeeper.ClientCnxn: EventThread shut down
  未完待续.....


运维网声明 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-627474-1-1.html 上篇帖子: Hadoop从安装Linux到搭建集群环境 下篇帖子: Hadoop笔记整理(一):Hadoop概述
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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