Ubuntu: GlusterFS+HBase安裝教程

山水佳音發表於2014-10-19

    HBase通常安裝在Hadoop HDFS上,但也可以安裝在其他實現了Hadoop檔案介面的分散式檔案系統上,如KFS。glusterfs是一個叢集檔案系統可擴充套件到幾peta-bytes。它集合了各種儲存在infiniband rdma或互連成一個大型並行網路檔案系統。儲存可以由任何商品等硬體x86_64伺服器和sata-ii和infiniband HBA。GlusterFS比Hadoop HDFS可以提供更高的效能,HBase也因此可以獲得更高的效能。將HBase安裝在GlusterFS上,是可行的。該方案經實際驗證通過,以此文以記之。


        GlusterFS是Scale-Out儲存解決方案Gluster的核心,它是一個開源的分散式檔案系統,具有強大的橫向擴充套件能力,通過擴充套件能夠支援數PB儲存容量和處理數千客戶端。GlusterFS藉助TCP/IP或InfiniBand RDMA網路將物理分佈的儲存資源聚集在一起,使用單一全域性名稱空間來管理資料。GlusterFS基於可堆疊的使用者空間設計,可為各種不同的資料負載提供優異的效能。


一、前提條件

        安裝環境為Virtual BOX虛擬機器,作業系統為Ubuntu Server 64 14.04。安裝使用者為bigdata.

1、伺服器列表

       192.168.8.108 bigdata1

       192.168.8.110 bigdata2

2、修改Hosts

      sudo vi /etc/hosts

      192.168.8.108 bigdata1      

      192.168.8.110 bigdata2

3、SSH配置

      sudo su - root

      passwd

      輸入 admin


      允許root使用SSH口令登入:

      sudo vi /etc/ssh/sshd_config

# Authentication:

LoginGraceTime 120

#PermitRootLogin without-password    #找到這裡,把它註釋

PermitRootLogin yes                  #改為yes  然後重啟ssh
StrictModes yes



      #service ssh restart
      #Tips:這裡注意/etc/init.d/ssh restart 用這個方式重啟是不成功的。

    

     SSH配置:

     bigdata1:
     #ssh-keygen -t rsa -P ""
     #cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
     #chmod 600 ~/.ssh/authorized_keys

     #scp ~/.ssh/authorized_keys root@bigdata2:~/.ssh/

4、Java安裝配置

      下載最新版 jdk64-bit版 (jdk-7u45-linux-x64.tar.gz)

      下載 http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html

      tar -zxvf jdk-7u51-linux-x64.tar.gz

      sudo mv jdk1.7.0_51 /usr/share

      設定環境變數

      sudo vi /etc/profile

      在檔案的最後面增加:

      export JAVA_HOME=/usr/share/jdk1.7.0_51

      export JRE_HOME=/usr/share/jdk1.7.0_51/jre

      export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH

      export CLASSPATH=$CLASSPATH:.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib

      儲存,source /etc/profile

5、防火牆解除安裝

      sudoapt-get remove iptables

二、GlusterFS安裝

1、安裝GlusterFS

      sudo apt-get install glusterfs-server

      sudo  glusterfsd –version

2、建立目錄

      sudo mkdir -p /data/gluster

3、建立卷

      sudo gluster volume create gluster_vol replica 2 transport tcp bigdata1:/data/gluster bigdata2:/data/gluster

      注:

      刪除卷:sudo gluster volume delete gluster_vol

      強制建立:加 force

4、停止/啟動卷

      sudo gluster volume stop gluster_vol

      sudo gluster volume start gluster_vol

5、檢視卷資訊

      gluster volume info 

6、掛載卷

      sudo mount.glusterfs bigdata1:/gluster_vol /mnt/hbase

      mount.glusterfs bigdata1:/gluster_vol /mnt/hbase

6、測試卷

      df -h 

      bigdata1:

      echo test > test1.txt

      bigdata2:

      cat test1.txt      

     

      至此,GlusterFS在Ubuntu Server上安裝成功。下面開始安裝配置HBase。

三、HBase安裝

       通過測試時證明:在分散式模式下GlusterFs可以代替hadoop的HDFS,作為Hbase的底層資料儲存。
       配置過程如下:
               首先,介紹下搭建的叢集模型:
       共2臺伺服器,hostname分別為:bigdata1 bigdata2(各個伺服器之間可以ssh 無密碼登陸)
       Hmaseter為:bigdata1
       Hregionserver為:bigdata1
       zookeeper為:bigdata1(Hbase內建zookeeper)
               在bigdata1、bigdata2 伺服器的/mnt目錄下建立hbase資料夾作為GlusterFs的mount點(即GlusterFs 的客戶端),就是每臺伺服器都有一個/mnt/hbae/目錄作為

     GLusterFs的client,然後讓Hbase把資料寫到這個目錄下面。
              然後修改Hbase的配置檔案:hbase-env.sh    hbase- site.xml    regionservers,這3個配置檔案都在/usr/local/hbase/conf/目錄下

1、下載/安裝

      wget http://apache.fayea.com/apache-mirror/hbase/stable/hbase-0.98.7-hadoop2-bin.tar.gz

      tar xvzf hbase-0.98.7-hadoop2-bin.tar.gz 

      sudo mv hbase-0.98.7-hadoop2 /usr/local 

      sudo ln -s hbase-0.98.7-hadoop2 hbase

2、配置

      配置檔案:hbase-env.sh(bigdata1、bigdata2配置檔案相同)

      export JAVA_HOME=/usr/share/jdk1.7.0_51    //JDK路徑

      export HBASE_MANAGES_ZK=true  //zookeeper是用內建的還是自己搭建zookeeper(true為使用內建的)


      配置檔案: hbase-site.xml   
     <configuration>
     <property>
    <name>hbase.rootdir</name>
     <value>file:///mnt/hbase/</value> //和GlusterFs客戶端的路徑相對應
     </property>
     <property>
     <name>hbase.cluster.distributed</name>//true為分散式模式,false為單機模式
     <value>true</value>
     </property>
     <property>
      <name>hbase.master</name>
      <value>bigdata1:60000</value>
      </property>
      <property>
      <name>hbase.zookeeper.quorum</name>//zookeeper為221
     <value>bigdata1</value>
     </property>
   </configuration>

     

      配置檔案 regionservers                                            //HregionServer伺服器
      bigdata1     

3、執行

      #cd /usr/local/hbase/bin

      #./start-hbase.sh  //開啟hbase叢集
      #./hbase shell//開啟Hbase指令
      #hbase(main):001:0> status
     2 servers, 0 dead, 0.7500 average load
      配置成功!


四、測試

       #cd /usr/local/hbase/bin

       hbase shell

       create "test" "cf"

       在bigdata2上讀取所有表中的資料,如果能讀到所有表中的資料,就說明底層的GlusterFs是否共享資料,GlusterFs可以代替HDFS。

五、結論

      至此,本方案測試成功!GlusterFS可以代替HDFS,以獲得更高的效能。當然還需要在生產環境中進一步驗證。



相關文章