hbase 概念 + 搭建分佈式HA應用

HBase - Hadoop Database

hbase的設計思想來自於google的bigtable

主鍵:Row Key
主鍵是用來檢索記錄的主鍵,訪問Hbase table 中的行,只有三種方式
  1. 通過單個Row Key 訪問
  2. 通過Row Key 的range
  3. 全表掃描

列族:Column Family
列族在創建表的時候聲明,一個列族可以包含多個列,列中的數據都是以二進制形式存在,沒有數據類型

時間戳:Timestamp
Hbase中通過row和columns確定的爲一個存儲單元稱爲cell,每個cell都保存着同一份數據的多個版本。版本通過時間戳來索引  

查詢記錄時,不指定版本默認查詢最新版本。


搭建distributed clusted & HA 步驟:

    目前集羣情況:
            7臺機器:hadoop-server01 ~ hadoop-server07
            NameNode:1,2有,  對外提供hdfs://ns1抽象路徑,通過Zookeeper來控制Active以及standby節點
            DFSZKFailoverController(zkfc):用作監控NameNode節點,定時向Zookeeper彙報健康情況,所以只有1,2有
            DataNode:7臺都有
            NodeManager:7臺都有
            ResourceManager:3,4有
            QuorumPeerMain:Zookpeeper進程,5,6,7有
            JournalNode:共享NameNode的edits數據,也是5,6,7有
            
    待會hbase要實現的目標:
            1做HMaster(active),2和3做爲HMaster(Backup),同時7臺機器上都跑HRegionServer,實現HMaster(active)節點宕機後,自動通過Zookeeper實現切換
            

    export JAVA_HOME=/usr/java/jdk1.7.0_55
//告訴hbase使用外部的zk 
export HBASE_MANAGES_ZK=false
vim hbase-site.xml
<configuration>
<!-- 指定hbase在HDFS上存儲的路徑 -->
        <property>
                <name>hbase.rootdir</name>
                <value>hdfs://ns1/hbase</value>
        </property>
<!-- 指定hbase是分佈式的 -->
        <property>
                <name>hbase.cluster.distributed</name>
                <value>true</value>
        </property>
<!-- 指定zk的地址,多個用“,”分割 -->
        <property>
                <name>hbase.zookeeper.quorum</name>
                <value>hadoop-server05:2181,hadoop-server06:2181,hadoop-server07:2181</value>
        </property>
</configuration>
vim regionservers
  hadoop-server01
  hadoop-server02
  hadoop-server03
  hadoop-server04
  hadoop-server05
  hadoop-server06
  hadoop-server07

cd ~/app
scp_hadoop_many hbase/ $PWD

如果沒有批量自動化腳本,也可以分別使用scp拷貝。

    分別在5,6,7機器上啓動Zookeeper
        zkServer.sh start 

    啓動hdfs集羣
        start-dfs.sh        
    
    啓動Hbase集羣 (在1機器上啓動)
        start-hbase.sh
     
     爲了HA,我在2,3也啓動了hbase Master
        hbase-daemon.sh start master
   現在就可以訪問機器的60010查看hbase狀態了。

    可以看到7個節點,並且有2個backup master 


    訪問:60010/zk.jsp 可以查看Zookeeper Dump




附註:
    1.腳本 scp_hadoop_many
    #!/bin/bash

if [ $# -ne 2 ]
then
        echo "usage:<sourceFile> <targetFile>"
        exit 1
fi

ips=(hadoop-server02 hadoop-server03 hadoop-server04 hadoop-server05 hadoop-server06 hadoop-server07)

for ip in ${ips[*]}
do
        scp -r $1 hadoop@$ip:$2

done

附註:
    1.腳本 scp_hadoop_many
    #!/bin/bash

if [ $# -ne 2 ]
then
        echo "usage:<sourceFile> <targetFile>"
        exit 1
fi

ips=(hadoop-server02 hadoop-server03 hadoop-server04 hadoop-server05 hadoop-server06 hadoop-server07)

for ip in ${ips[*]}
do
        scp -r $1 hadoop@$ip:$2

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