Hbase全分佈式安裝( Adanced-Fully Distributed)--最接近生產環境

       即將構建的集羣節點情況說明,需要三臺server(centos01,centos02,centos03),分別代表節點1,2,3.HBase是在hadoop和zookeeper的前提下搭建的,所以必須提前在三臺server上裝好hadoop和zookeeper。

集羣包括:1primary Master ,1back Master (hbase設一個主Master與一個備Master)

                  3zookeeper節點

                  2RegionServer

        hbase實際上使用或繼承了hadoop的實現,所以不管是它的配置文件還是它的設計結構都會盡量遵循hadoop的模型。hadoop中有nodemanager和datanode(大哥和小弟),Hbase中同樣有Master(大哥) 和 RegionServer(小弟)。

Distributed Cluster Demo architecture(集羣節點的結構如下)

 

Node Name

Master

ZooKeeper

RegionServer

Centos01

yes

yes

no

Centos02

backup

yes

yes

Centos03

no

yes

yes

.預設環境:

1.分別在node1,2,3上安裝jdk(自行根據自己安裝的Hbase版本確定JDK版本)

HBase Version

JDK 7

JDK 8

2.0

Not Supported

yes

1.3

yes

yes

1.2

yes

yes

1.1

yes

能運行jdk8但是不穩定

 二、安裝過程:

1.hadoop:分別在node1,2,3上安裝Hadoop,安裝過程略,如果不會,自己網上百度下。

2.分別在node1,2,3上安裝zookeeper,以下是zookeeper的安裝方法:

                      1.安裝配置zooekeeper集羣(在hadoop01上)

1.1解壓

tar-zxvf zookeeper-3.4.5.tar.gz -C /home/hadoop/app/

1.2修改配置

cd/home/hadoop/app/zookeeper-3.4.5/conf/

cpzoo_sample.cfg zoo.cfg

vimzoo.cfg

修改:dataDir=/home/hadoop/app/zookeeper-3.4.5/tmp

在最後添加:

server.1=hadoop01:2888:3888

server.2=hadoop02:2888:3888

server.3=hadoop03:2888:3888

保存退出

然後創建一個tmp文件夾

mkdir/home/hadoop/app/zookeeper-3.4.5/tmp

echo1 > /home/hadoop/app/zookeeper-3.4.5/tmp/myid

1.3將配置好的zookeeper拷貝到其他節點(首先分別在hadoop02hadoop03根目錄下創建一個hadoop目錄:mkdir /hadoop)

scp-r /home/hadoop/app/zookeeper-3.4.5/ hadoop06:/home/hadoop/app/

scp-r /home/hadoop/app/zookeeper-3.4.5/ hadoop07:/home/hadoop/app/

 

注意:修改hadoop02hadoop03對應/hadoop/zookeeper-3.4.5/tmp/myid內容

Hadoop02

echo2 > /home/hadoop/app/zookeeper-3.4.5/tmp/myid

Hadoop03

echo3 > /home/hadoop/app/zookeeper-3.4.5/tmp/myid

  自己啓動測試下是否成功,同時向三臺機器執行zookeeper的啓動命令:

   zkServer.sh start

  然後三臺機器jps以下,看是否都存在名爲 HQuorumPeer的進程,有就表示成功了。然後kill -9 進程數,退出zookeeper

3.設置免密碼登陸:centos01對centos01,centos02,centos03的免密登陸和centos02對centos02,centos03的免密登陸

       

如果希望ssh公鑰生效需滿足至少下面兩個條件:

1) .ssh目錄的權限必須是700

2).ssh/authorized_keys文件權限必須是600

  在centos01上: ssh-keygen  

    ssh-copy-id -i    ~/.sh/id_rsa.pub  hadoop@centos01

    ssh-copy-id -i    ~/.sh/id_rsa.pub hadoop@centos01

    ssh-copy-id -i    ~/.sh/id_rsa.pub hadoop@centos01

在配置centos02的免密登陸,命令似上。

4.安裝hbase

先配置node1(centos01)

1.上傳hbase-1.2.6-bin.tar.gz/home/hadoop/apps/並解壓

 tar -zxvf  hbase-1.2.6-bin.tar.gz  

 ln -s    hbase-1.2.6-bin   hbase  #設置一個軟連接

2.配置conf

<1>編輯conf/regionservers 將原本的localhost移除,將節點23的主機名或者ip地址寫入

  vi   conf/regionservers

 centos02

 centos03

<2>配置HBasenode2作爲備master

    conf下建立一個新的vi文本backup-masters

    vi  backup-masters

    centos02

<3>配置zookeeper、主節點、hbase的文件存儲信息(基於hdfs

   vi /conf/hbase-site.xml

  

<configuration>

#zookeeper的分佈信息,這個配置可以告訴hbase去管理和啓動zookeeper

   <property>

     <name>hbase.zookeeper.quorum</name>

     <value>centos05,centos06,centos07</value>

   </property>

#告訴hbase zookeeper的配置文件信息的位置

<property>

     <name>hbase.zookeeper.property.dataDir</name>

     <value>/home/hadoop/apps/hbase/zookeeper</value>

   </property>

 

     #hbasemaster的主機和端口

    <property>

  <name>hbase.master</name>         

  <value>centos05:60000</value>

  </property>

   #時間同步允許的時間差

  <property>

 <name>hbase.master.maxclockskew</name>   

 <value>180000</value>

 </property>

 

#聲明設置hbase的分佈式

  <property>

 <name>hbase.cluster.distributed</name>

  <value>true</value>

</property>

#hbase的表格存儲位置

<property>

  <name>hbase.rootdir</name>

  <value>hdfs://centos01:8020/hbase</value>

</property>

</configuration>

 

 

<4>mkdir  /home/hadoop/apps/hbase/zookeeper

      cp -r  zookeeper/conf/zoo.cfg  /home/hadoop/apps/hbase/zookeeper  #zookeeper的配置文件zoo.cfg複製到先前我們配置的hbase.zookeeper.property.dataDir的目錄下,方便hbasezookeeper進行啓動和管理。

<5>node1上的hbase文件分發到node2node3

   scp -r /home/hadoop/apps/hbase centos02:/home/hadoop/apps/

   scp -r /home/hadoop/apps/hbase centos03:/home/hadoop/apps/

<5>開始並測試hbase集羣

啓動前一定確保沒有hbase進程在運行,在node1上輸入命令:start-hbase.sh

如果成功啓動,你的輸出日誌應該爲:

$ bin/start-hbase.sh
node-c.example.com: starting zookeeper, logging to/home/hbuser/hbase-0.98.3-hadoop2/bin/../logs/hbase-hbuser-zookeeper-node-c.example.com.out
node-a.example.com: starting zookeeper, logging to/home/hbuser/hbase-0.98.3-hadoop2/bin/../logs/hbase-hbuser-zookeeper-node-a.example.com.out
node-b.example.com: starting zookeeper, logging to/home/hbuser/hbase-0.98.3-hadoop2/bin/../logs/hbase-hbuser-zookeeper-node-b.example.com.out
starting master, logging to /home/hbuser/hbase-0.98.3-hadoop2/bin/../logs/hbase-hbuser-master-node-a.example.com.out
node-c.example.com: starting regionserver, logging to/home/hbuser/hbase-0.98.3-hadoop2/bin/../logs/hbase-hbuser-regionserver-node-c.example.com.out
node-b.example.com: starting regionserver, logging to/home/hbuser/hbase-0.98.3-hadoop2/bin/../logs/hbase-hbuser-regionserver-node-b.example.com.out

node-b.example.com: starting master, logging to/home/hbuser/hbase-0.98.3-hadoop2/bin/../logs/hbase-hbuser-master-nodeb.example.com.out

最後請注意:如果在hbase的配置文件中設置到要填localhost的,請用它的hostname替代。比如說在本例中,你一定想要在centos01(節點1)上也啓一個RegionServer,那麼在Regionservers 中,你不要填localhost,而用centos01.

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章