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

[经验分享] linux上部署hadoop集群 HA-QJM篇

[复制链接]

尚未签到

发表于 2018-10-30 11:40:17 | 显示全部楼层 |阅读模式
  环境
  基础篇需要4台机器(一台namenode,三台datanode);
  HA篇需要8台机器:两台namenode(一台作active nn,另一台作standby nn),三台datanode,三台zookeeper(也可以省去这三台,把zookeeper daemon部署在其他机器上)。实际上还需要3台journalnode,但因为它比较轻量级,所以这里就把它部署在datanode上了。
  三台zookeeper机器上配置以下信息:
  1 创建hadoop用户
  2 做好ssh免密码登陆
  3 修改主机名
  4 安装JDK
  5 下载zookeeper安装包
  下载地址:http://mirror.nus.edu.sg/apache/zookeeper
  下载zookeeper-3.4.6到/opt/目录下,解压
  6 修改/etc/profile
  export ZOO_HOME=/opt/zookeeper-3.4.6
  export ZOO_LOG_DIR=/opt/zookeeper-3.4.6/logs
  使之生效:
  source /etc/profile
  7 建立zookeeper数据存放目录:
  mkdir /opt/zookeeper-3.4.6/data
  8 在$ZOO_HOME/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=/opt/zookeeper-3.4.6/data
  # the port at which the clients will connect
  clientPort=2181
  server.1=10.9.214.167:31316:31317
  server.2=10.9.214.18:31316:31317
  server.3=10.9.214.211:31316:31317
  9 在/opt/zookeeper-3.4.6/data/目录下创建文件myid,并写入内容,zookeeper1写1,zookeeper2写2,zookeeper3写3 ,如:
  echo 1 >/opt/zookeeper-3.4.6/data/myid
  10 启动zookeeper 服务:
  cd $ZOO_HOME
  ./bin/zkServer.sh start
  11 验证
  测试zookeeper集群是否建立成功,在$ZOO_HOME目录下执行以下命令即可,如无报错表示集群创建成功:
  ./bin/zkCli.sh -server localhost:31315
  hadoop配置文件只需要修改core-site.xml和hdfs-site.xml
  配置core-site.xml
  
  hadoop.tmp.dir
  /opt/hadoop-2.6.0/tmp
  
  
  fs.default.name
  hdfs://10.9.214.151:9000
  
  
  hadoop.proxyuser.root.hosts
  10.9.214.151
  
  
  hadoop.proxyuser.root.groups
  *
  
  
  fs.defaultFS
  hdfs://cluster_haohzhang
  
  
  ha.zookeeper.quorum
  10.9.214.167:2181,10.9.214.18:2181,10.9.214.211:2181
  
  配置hdfs-site.xml
  
  dfs.namenode.name.dir
  file:/opt/hadoop-2.6.0/hdfs/name
  
  
  dfs.dataname.data.dir
  file:/opt/hadoop-2.6.0/hdfs/data
  
  
  dfs.replication
  3
  
  
  dfs.nameservices
  cluster_haohzhang
  
  
  dfs.ha.namenodes.cluster_haohzhang
  nn1,nn2
  
  
  dfs.namenode.rpc-address.cluster_haohzhang.nn1
  10.9.214.151:8020
  
  
  dfs.namenode.rpc-address.cluster_haohzhang.nn2
  10.9.214.15:8020
  
  
  dfs.namenode.http-address.cluster_haohzhang.nn1
  10.9.214.151:50070
  
  
  dfs.namenode.http-address.cluster_haohzhang.nn2
  10.9.214.15:50070
  
  
  
  dfs.namenode.shared.edits.dir
  qjournal://10.9.214.158:8485;10.9.214.160:8485;10.9.214.149:8485/cluster_haohzhang
  
  
  dfs.client.failover.proxy.provider.cluster_haohzhang
  org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider
  
  
  dfs.ha.fencing.methods
  sshfence
  
  
  dfs.ha.fencing.methods
  sshfence
  
  
  dfs.ha.fencing.ssh.private-key-files
  /home/hadoop/.ssh/id_rsa
  
  
  dfs.journalnode.edits.dir
  /opt/hadoop-2.6.0/journalnode
  
  
  dfs.ha.automatic-failover.enabled
  true
  
  操作细节
  1 先删除所有namenode和datanode,journalnode上的metadata
  2 启动三个journalnode进程
hadoop-daemon.sh start journalnode  3 格式化namenode
  在一台namenode上执行:
hdfs namenode -format  这个步骤会连接journalnode,然后会把journalnode也格式化掉
  4 启动刚刚格式化的namenode上的hdfs:
cd $HADOOP_HOME/sbin; ./start-dfs.sh  5 在另一台namenode上执行:
hdfs namenode -bootstrapStandby  6 验证手动fail over
  在任意一个namenode上执行:
hdfs haadmin -help   可以查看命令用法,这里我们用
hdfs haadmin -getServiceState nn1  
hdfs haadmin -getServiceState nn2
  获取两个namenode的状态,有两种状态:standby , active
  手动切换状态:
hdfs haadmin -failover nn1 nn2  成功的化,nn2就成了active状态了
  7 用zookeeper自动切换
  7.1 在其中一个namenode上初始化zkfc
hdfs zkfc -formatZK  这步会尝试连接zookeeper上的2181端口,并在zookeeper里面创建一个znode
  7.2 在namenode上启动hdfs
cd $HADOOP_HOME; ./start-dfs.sh  7.3 验证进程是否都启动成功
  [hadoop@hadoopmaster-standby sbin]$ jps
  12277 NameNode
  12871 Jps
  12391 DFSZKFailoverController
  [hadoop@hadoopslave1 hadoop-2.6.0]$ jps
  7698 DataNode
  7787 JournalNode
  7933 Jps
  7.4 验证failover自动切换
  杀掉active namenode上的所有hadoop进程:
kill -9   然后查看另外一个namenode是否已经从standby 变为active状态,
  注意:配置文件中默认每5妙钟检测一次健康状态



运维网声明 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-628446-1-1.html 上篇帖子: 《Hadoop基础教程》之初识Hadoop-hanjh8 下篇帖子: Hadoop-2.5.2集群安装配置详解
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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