HBase集成Zookeeper集羣部署

  大數據集羣爲了保證故障轉移,通常經過zookeeper來總體協調管理,當節點數大於等於6個時推薦使用,接下來描述一下Hbase集羣部署在zookeeper上的過程:java

  安裝Hbase以前首先系統應該作通用的集羣環境準備工做,這些是必須的:node

  一、集羣中主機名必須正確配置,最好有實際意義;而且主機名都在hosts文件中對應主機IP,一一對應,不可缺乏shell

  這裏集羣有6臺服務器:bigdata1,bigdata2,bigdata3,bigdata4,bigdata5,bigdata6apache

  這裏是3臺主機,分別對應bootstrap

  二、JDK環境正確安裝vim

  三、集羣中每臺機器關閉防火牆,保證通訊暢通瀏覽器

  四、配置集羣間ssh免密登陸服務器

  五、集羣ntp服務開啓,保證時間同步(這一步很是重要,不然hbase啓動會失敗)ssh

  六、zookeeper正確安裝ide

  七、Hadoop HDFS服務開啓

  這裏預約zookeeper的地址爲:bigdata2,bigdata3,bigdata4,bigdata5,bigdata6 5個zookeeper節點

  hadoop namenode爲bigdata1(主),bigdata2(備用),其他4個爲datanode

  hbase Master爲bigdata1,其他爲存儲節點

  基於以上配置結合集羣高可用配置,構成一個性能比較好的集羣配置方式

  前面6步都配置好的基礎上,首先配置Hadoop集羣,在bigdata1上作配置操做

  首先解壓hadoop,並安裝至指定目錄:

tar -xvzf hadoop-2.6.0.tar.gz 
mkdir /bigdata/hadoop
mv hadoop-2.6.0 /bigdata/hadoop
cd /bigdata/hadoop/hadoop-2.6.0

  就是簡單的釋放,而後爲了方即可以將HADOOP_HOME添加至環境變量

  配置hadoop須要編輯如下幾個配置文件:

  hadoop-env.sh  core-site.xml  hdfs-site.xml   mapred-site.xml   yarn-site.xml  slaves

  一、編輯hadoop-env.sh

  修改export JAVA_HOME=${JAVA_HOME}爲本身的實際安裝位置

  這裏是export JAVA_HOME=/usr/local/java/jdk1.8.0_73

  

   二、編輯core-site.xml,在configuration標籤中間添加以下代碼,

 1     <property>
 2         <name>fs.defaultFS</name>
 3         <value>hdfs://hadoopha</value>
 4     </property>
 5     <property>
 6         <name>hadoop.tmp.dir</name>
 7         <value>/bigdata/hadoop/tmp</value>
 8     </property>
 9     <property>
10         <name>ha.zookeeper.quorum</name>
11         <value>bigdata2:2181,bigdata3:2181,bigdata4:2181,bigdata5:2181,bigdata6:2181</value>
12     </property>

  三、編輯hdfs-site.xml ,添加以下代碼:

 1     <property>
 2         <name>dfs.replication</name>
 3         <value>2</value>
 4     </property>
 5     <property>
 6         <name>dfs.nameservices</name>
 7         <!--這裏和core-site中配置保持一致-->
 8         <value>hadoopha</value>
 9     </property>
10 
11     <property>
12         <name>dfs.ha.namenodes.hadoopha</name>
13         <value>bigdata1,bigdata2</value>
14     </property>
15     <property>
16         <name>dfs.namenode.rpc-address.hadoopha.bigdata1</name>
17         <value>bigdata1:8020</value>
18     </property>
19     <property>
20         <name>dfs.namenode.http-address.hadoopha.bigdata1</name>
21         <value>bigdata1:50070</value>
22     </property>
23     <property>
24         <name>dfs.namenode.rpc-address.hadoopha.bigdata2</name>
25         <value>bigdata2:8020</value>
26     </property>
27     <property>
28         <name>dfs.namenode.http-address.hadoopha.bigdata2</name>
29         <value>bigdata2:50070</value>
30     </property>
31 
32     <property>
33         <name>dfs.namenode.name.dir</name>
34         <value>file:///bigdata/hadoop/hdfs/name</value>
35     </property>
36     <property>
37         <name>dfs.datanode.data.dir</name>
38         <value>file:///bigdata/hadoop/hdfs/data</value>
39     </property>
40     <!-- 這個地方是爲Hbase的專用配置,最小爲4096,表示同時處理文件的上限,不配置會報錯 -->
41     <property>
42         <name>dfs.datanode.max.xcievers</name>
43         <value>4096</value>
44     </property>
45 
46     <!--提供journal的服務器列表,通常爲奇數個,這裏爲3個-->
47     <property>
48         <name>dfs.namenode.shared.edits.dir</name>
49         <value>qjournal://bigdata3:8485;bigdata4:8485;bigdata5:8485/hadoopha</value>
50     </property>
51     <property>
52         <name>dfs.ha.automatic-failover.enabled</name>
53         <value>true</value>
54     </property>
55     
56     <property>
57         <name>dfs.client.failover.proxy.provider.hadoopha</name>
58         <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
59     </property>
60     <property>
61         <name>dfs.journalnode.edits.dir</name>
62         <value>/bigdata/hadoop/hdfs/journal</value>
63     </property>
64 
65     <property>
66         <name>dfs.ha.fencing.methods</name>
67         <value>sshfence</value>
68     </property>
69     <property>
70         <name>dfs.ha.fencing.ssh.connect-timeout</name>
71         <value>5000</value>
72     </property>
73     
74     <!--配置ssh密鑰存放位置-->
75     <property>
76         <name>dfs.ha.fencing.ssh.private-key-files</name>
77         <value>/root/.ssh/id_dsa</value>
78     </property>

 

      其中配置的註釋說明要注意一下

  四、編輯mapred-site.xml,這個不用配置

  五、編輯yarn-site.xml,這個也不用配置

  六、編輯slaves,添加datanode節點

bigdata3
bigdata4
bigdata5
bigdata6

  這些都保存完畢,將/bigdata/下的hadoop目錄總體發送至集羣中其餘主機,其餘主機應該事先創建好bigdata目錄

scp -r /bigdata/hadoop bigdata2:/bigdata
scp -r /bigdata/hadoop bigdata3:/bigdata
scp -r /bigdata/hadoop bigdata4:/bigdata
scp -r /bigdata/hadoop bigdata5:/bigdata
scp -r /bigdata/hadoop bigdata6:/bigdata

  而後在配置jouralnode的服務器上啓動jouralnode服務,這裏是bigdata3,4,5

sbin/hadoop-daemon.sh start journalnode

  而後在bigdata1上格式化zookeeper節點:

bin/hdfs zkfc -formatZK

  在其中一臺namenode上格式化文件系統並啓動namenode,這裏是bigdata1:

bin/hdfs namenode -format
sbin/hadoop-daemon.sh start namenode

  在另一臺namenode,bigdata2上同步元數據:

bin/hdfs namenode -bootstrapStandby
sbin/hadoop-daemon.sh start namenode

  而後啓動hdfs服務:

sbin/start-dfs.sh

  啓動完成以後,執行 jps 命令,在主節點能夠看到NameNode和DFSZKFailoverController進程;其餘節點能夠看到DataNode進程

  如今經過瀏覽器能夠打開相應的管理界面,以bigdata1的IP訪問:

  http://192.168.0.187:50070

  

  

  到這裏hadoop hdfs就部署完成了,而後開始部署HBase,這裏使用的版本爲:hbase-0.98.18-hadoop2-bin.tar.gz

  和釋放hadoop包同樣將hbase釋放到對應的目錄並進入,這裏是:/bigdata/hbase/hbase-0.98.18-hadoop2

  首先編輯配置文件: vim conf/hbase-env.sh 

  去掉JAVA_HOME前面的註釋,改成本身實際的JDK安裝路徑,和配置hadoop相似

  

  而後,去掉export HBASE_MANAGES_ZK=true前面的註釋並改成export HBASE_MANAGES_ZK=false,配置不讓HBase管理Zookeeper

  

  配置完這兩項以後,保存退出

  編輯文件 vim conf/hbase-site.xml 在configuration標籤之間加入以下配置:

    <!-- 指定HBase在HDFS上面建立的目錄名hbase -->
    <property>
        <name>hbase.rootdir</name>
        <value>hdfs://hadoopha/hbase</value>
    </property>
    <property>
        <name>hbase.master</name>
        <value>60000</value> 
    </property>
    <!-- 開啓集羣運行方式 -->
    <property>
        <name>hbase.cluster.distributed</name>
        <value>true</value>
    </property>
    <property>
        <name>hbase.tmp.dir</name>
        <value>/bigdata/hbase/tmp</value>
    </property>
    <property>
        <name>hbase.zookeeper.quorum</name>
        <value>bigdata2,bigdata3,bigdata4,bigdata5,bigdata6</value>
    </property>

  分別將hadoop配置下的core-site.xml和hdfs-site.xml複製或者作軟連接到hbase配置目錄下:

cp /bigdata/hadoop/hadoop-2.6.0/etc/hadoop/core-site.xml conf/
cp /bigdata/hadoop/hadoop-2.6.0/etc/hadoop/hdfs-site.xml conf/

  執行 vim conf/regionservers 編輯運行regionserver存儲服務的Hbase節點,就至關於hadoop slaves中的DataNode節點

  這裏是bigdata2~bigdata5

  保存以後,配置完畢,將hbase發送至其餘數據節點:

scp -r /bigdata/hbase/ bigdata2:/bigdata/
scp -r /bigdata/hbase/ bigdata3:/bigdata/
scp -r /bigdata/hbase/ bigdata4:/bigdata/
scp -r /bigdata/hbase/ bigdata5:/bigdata/
scp -r /bigdata/hbase/ bigdata6:/bigdata/

  而後在bigdata1啓動Hbase Master

bin/hbase-daemon.sh start master

  啓動成功,在bigdata1會增長進程:HMaster

  而後在bigdata2啓動regionserver進程,其他4臺集羣會跟隨啓動

bin/hbase-daemons.sh start regionserver

  這裏注意跟隨啓動時,bigdata2到全部機器ssh確保直接進入,若是配置好的免密也最好提早都進一遍,避免須要輸入yes而致使錯誤

  同時集羣的時間必定同步,不然hbase會啓動失敗出現NoNode Error的異常

  在bigdata2到bigdata6會增長進程:HRegionServer

  到這裏HBase就部署完畢,而且包含zookeeper集羣高可用配置

  執行命令: /bigdata/hadoop/hadoop-2.6.0/bin/hdfs dfs -ls / 能夠查看hbase是否在HDFS文件系統建立成功

  

  看到/hbase節點表示建立成功

  而後執行: bin/hbase shell 能夠進入Hbase管理界面

  

  輸入 status 查看狀態

  

  返回狀態,表示HBase能夠正常使用

  輸入 quit 能夠退出管理,回到命令行

  訪問瀏覽器http://ip:60010能夠打開Hbase管理界面

相關文章
相關標籤/搜索