首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

在 IBM CAMP 服务器上实现开源 Hadoop HDFS 的高可用性-4

在 IBM CAMP 服务器上实现开源 Hadoop HDFS 的高可用性-4

安装配置 Hadoop2.2.0,实现自动方式 NameNode HA 的切换
下面进行自动切换配置。
在 hdfs-site.xml 里添加:
<!-- "ha.zookeeper.quorum" 打开自动切换 NameNode 的功能。-->
1
2
3
4
<property>
        <name>dfs.ha.automatic-failover.enabled</name>
        <value>true</value>
</property>




在 core-site.xml 里添加:
<!-- "ha.zookeeper.quorum" 指定用于 HA 的 ZooKeeper 集群机器列表,并且列表数目一定是奇数。-->
1
2
3
4
<property>
        <name>ha.zookeeper.quorum</name>
        <value>plinux09:2181,plinux10:2181,plinux11:2181</value>
</property>




配置完上面两个文件,分别在 plinux09、plinux10、plinux11 上启动 ZooKeeper Server。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
[hadoop@plinux09 hadoop]$ zkServer.sh start
JMX enabled by default
Using config: /bigdata/zookeeper/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED

[hadoop@plinux10 ~]$ zkServer.sh start
JMX enabled by default
Using config: /bigdata/zookeeper/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED

[hadoop@plinux11 ~]$ zkServer.sh start
JMX enabled by default
Using config: /bigdata/zookeeper/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED




然后格式化 ZKFC
1
2
3
4
5
6
7
8
9
10
11
12
13
14
[hadoop@plinux09 hadoop]$  hdfs zkfc -formatZK
===============================================
The configured parent znode /hadoop-ha/mycluster already exists.
Are you sure you want to clear all failover information from
ZooKeeper?
WARNING: Before proceeding, ensure that all HDFS services and
failover controllers are stopped!
===============================================
Proceed formatting /hadoop-ha/mycluster? (Y or N) Y
14/01/13 02:19:24 INFO ha.ActiveStandbyElector: Recursively deleting /hadoop-ha/mycluster from ZK...
14/01/13 02:19:24 INFO ha.ActiveStandbyElector: Successfully deleted /hadoop-ha/mycluster from ZK.
14/01/13 02:19:24 INFO ha.ActiveStandbyElector: Successfully created /hadoop-ha/mycluster in ZK.
14/01/13 02:19:24 INFO zookeeper.ZooKeeper: Session: 0x2438a6d6f0a0000 closed
14/01/13 02:19:24 INFO zookeeper.ClientCnxn: EventThread shut down




* 注意:格式化 ZooKeeper 之前必须先关闭 HDFS Services。运行用 dfs-stop.sh 命令来关闭。
格式化完毕后启动 NameNode,DataNode, journalnode 和 zkfc。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
[hadoop@plinux09 hadoop]$ start-dfs.sh
Starting namenodes on [plinux09 plinux10]
plinux10: starting namenode, logging to /bigdata/hadoop/logs/hadoop-hadoop-namenode-plinux10.out
plinux09: starting namenode, logging to /bigdata/hadoop/logs/hadoop-hadoop-namenode-plinux09.out
plinux11: starting datanode, logging to /bigdata/hadoop/logs/hadoop-hadoop-datanode-plinux11.out
plinux09: starting datanode, logging to /bigdata/hadoop/logs/hadoop-hadoop-datanode-plinux09.out
plinux10: starting datanode, logging to /bigdata/hadoop/logs/hadoop-hadoop-datanode-plinux10.out
Starting journal nodes [plinux09 plinux10 plinux11]
plinux11: starting journalnode, logging to /bigdata/hadoop/logs/hadoop-hadoop-journalnode-plinux11.out
plinux10: starting journalnode, logging to /bigdata/hadoop/logs/hadoop-hadoop-journalnode-plinux10.out
plinux09: starting journalnode, logging to /bigdata/hadoop/logs/hadoop-hadoop-journalnode-plinux09.out
Starting ZK Failover Controllers on NN hosts [plinux09 plinux10]
plinux10: starting zkfc, logging to /bigdata/hadoop/logs/hadoop-hadoop-zkfc-plinux10.out
plinux09: starting zkfc, logging to /bigdata/hadoop/logs/hadoop-hadoop-zkfc-plinux09.out




启动好后,其中一台 NameNode 会自动被激活成 active,另一台是 standby 状态。
1
2
3
4
[hadoop@plinux09 hadoop]$ hdfs haadmin -getServiceState nn1
Standby
[hadoop@plinux09 hadoop]$ hdfs haadmin -getServiceState nn2
Active




通过 Kill NameNode 的进程来进行 NameNode HA 的自动切换测试。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
[hadoop@plinux10 ~]$ ps -ef|grep -i namenode
hadoop    9378     1  1 02:23 ?        00:00:18 /bigdata/ibm-java-ppc64-70/bin/java –
***
org.apache.hadoop.hdfs.server.namenode.NameNode

[hadoop@plinux10 ~]$ kill -9 9378

[hadoop@plinux09 conf]$ hdfs haadmin -getServiceState nn1
Active

[hadoop@plinux09 conf]$ hdfs haadmin -getServiceState nn2
14/01/13 02:56:09 INFO ipc.Client: Retrying connect to server: plinux10/9.110.75.105:8020.
Already tried 0 time(s); retry policy is RetryUpToMaximumCountWithFixedSleep(
       maxRetries=1, sleepTime=1 SECONDS)
Operation failed: Call From plinux09/9.110.75.104 to plinux10:8020 failed on connection exception:
java.net.ConnectException: Connection refused; For more details see:
   http://wiki.apache.org/hadoop/ConnectionRefused




当 kill plinux10 上 active NameNode 的进程后,在短时间内 NameNode 自动切换到 plinux09 上。
基于 HDFS HA 来配置 Hbase
基于 HDFS HA 来配置 Hbase 的方法如下:
配置 hbase-site.xml 文件,添加如下内容
1
[hadoop@plinux09 bigdata]$ vim /bigdata/hbase/conf/hbase-site.xml




<!-- "hbase.rootdir"用于 HA 节点的 NameService 来配置 HBase。-->
1
2
3
4
5
6
7
8
        <property>
                <name>hbase.rootdir</name>
                <value>hdfs://mycluster/hbase</value>
        </property>
<property>
                <name>hbase.master</name>
                <value>hdfs://mycluster:60000</value>
        </property>




配置好后启动 Hbase 服务。
1
2
3
4
5
6
[hadoop@plinux10 ~]$ start-hbase.sh
starting master, logging to /bigdata/hbase/logs/hbase-hadoop-master-plinux10.out
plinux12: starting regionserver, logging to /bigdata/hbase/logs/hbase-hadoop-regionserver-plinux12.out
plinux11: starting regionserver, logging to /bigdata/hbase/logs/hbase-hadoop-regionserver-plinux11.out
plinux09: starting regionserver, logging to /bigdata/hbase/logs/hbase-hadoop-regionserver-plinux09.out
plinux10: starting regionserver, logging to /bigdata/hbase/logs/hbase-hadoop-regionserver-plinux10.out




图 7.登录 plinux10 的 Web 查看 HBase 的状态通过以上配置,Hbase 可以在 HDFS HA 的环境中正常工作。这样一套基本的 Hadoop HDFS 的 HA 解决方案配置完成。
总结随着 Hadoop 日渐成熟,越来越多的企业使用它来分析处理日常大量的数据。随之而来的安全性,可靠性和性能问题被提出。本文使用开源的软件结合 IBM CAMP 服务器的强大性能实现高可用性来满足客户的需求。
返回列表