hadoop之文件系统HA搭建的部署细节

1.      首先配置zk为完全分布式

a.      分发zk的安装包到各个节点

b.      配置环境变量

c.      修改zoo.cfg(每个zk服务器的该文件配置均相同(myid文件不同))

server.1=v100:2888:3888
server.2=v200:2888:3888
server.3=v300:2888:3888

d.      配置每个zk server的myid文件

echo 1 >>/hadoop/zookeeper/myid

echo 2 >>/hadoop/zookeeper/myid

echo 3 >>/hadoop/zookeeper/myid

f.       测试zk服务器集群

1.      在每个主机上启动zkserver

zkServer.sh start

2.      使用client的shell来进行连接

zkCli.sh -server这个命令可以连接到其它服务器的zk上,如果不加就是连接到本机

zkCli.sh -server v200:2181

3.      zkServer.sh status这个命令来查看我们的zk是leader还是follower

2.      配置namenode的HA的配置文件

这一步骤参考上一篇博客文章hadoop之文件系统HA搭建的配置细节

3.     启动journalnode,将edit文件同步到jns下

1.      在jn节点上启动jn进程

$>hadoop-daemon.sh start journalnode

2.      启动完成JN后,需要在disk上完成俩个nn的元数据同步工作

a.      如果正在构建新的hdfs集群,需要首先只在一台新的namenode上进行format工作

b.      若已经格式化文件系统或者在non-ha的集群上启用ha功能,需要复制现有nn的目录(~/hadoop/dfs/name)复制到另一台的nn的相同的目录下,然后在未格式化的nn上执行以下的命令hdfs namenode -bootstrapStandby,该命令保证jn有足够多的edit来启动俩个nn

注意:这里应该先启动我们的以前的namenode用以下的命令,要不会连接拒接

hdoop-daemon.sh start namenode

c.      如果正在将非HA 转换为HA的话,你需要执行hdfs namenode -initializeSharedEdits命令会从local的namenode编辑日志的目录数据初始化到jns的目录下(这个命令在我们以前的namenode上执行)

在执行这个命令的时候会出现错误:说这个目录已经被锁定了

来到这个文件夹下边发现有个in_use.lock 这个是一个锁定文件,表示这个进程正在使用,如果停掉这个文件的话,我们的in_use.lock文件就会消失,用以下命令

hadoop-daemon.sh stop namenode

这时在我们的本机再执行hdfs namenode -initializeSharedEdits这个命令就好了

d.      启动俩个nn,和平时启动namenode一样

e.      通过webui查看每个nn的状态

4.    配置hadoop的namenode的ha的自动failover

1.      自动容灾需要引入俩个组件

zk的Quorum进程

zk的ZKFC(ZookeeperFailoverController)进程

2.      组件

Failure detection:故障检测:每个namenode都和zk连接,如果机器故障,这个会话session就会过期,通知其它的namenode节点要触发容灾了

Active NameNode election:active namenode推选,作为active节点,ZKFC是zk的新组件,监控并管理nn的状态,每一个nn节点都运行了zkfc进程,zkfc进程负责如下问题:

a.      Health monitoring:周期性ping处理,如果遇到异常情况,健康监视器标记为不健康的状态

b.      ZooKeeper session management

c.      ZooKeeper-based election

3.      部署zk

a.      有zk的进程是轻量级的,可以将zk配置到nn节点上,

b.      停止整个集群

c.      添加俩个新的参数

【hdfs-site.xml】

<property>

     <name>dfs.ha.automatic-failover.enabled</name>

      <value>true</value>

</property>

这个配置的意思是启用自动容灾

【core-site.xml】

    <property>

     <name>ha.zookeeper.quorum</name>

     <value>v100:2181,v200:2181,v300:2181</value>

    </property>

     这个配置的意思是指定ha在zookeeper 的集群

4.      初始化HA的状态到zk中去在一个namenode节点上去运行

hdfs zkfc -formatZK               //格式化zk

运行完这个命令后,本质是在我们的zk集群中创建、hadoop-ha/rxcd的层级目录结构

在zk上创建znode存放自动容灾的数据

5.      启动集群

start-dfs.sh

//可以手动启动zkfc

hdfs --daemon start zkfc

6.      验证自动容灾



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值