1. 程式人生 > >Hadoop2.7.2 HBase2.0.0環境搭建

Hadoop2.7.2 HBase2.0.0環境搭建

叢集配置

HBase – Hadoop Database,是一個高可靠性、高效能、面向列、可伸縮的分散式儲存系統,利用HBase技術可在廉價PC Server上搭建起大規模結構化儲存叢集。


一、基礎環境

JDK    :1.8.0_65 (要求1.6+)

ZooKeeper:3.4.10

Hadoop:2.7.2

HBase:2.0.0-alpha4

主機數:3(要求3+,且必須是奇數,因為ZooKeeper的選舉演算法)

伺服器列表:
主機名 IP地址 JDK ZooKeeper myid
Master 10.116.33.109 1.8.0_65 server.1 1
Slave1 10.27.185.72 1.8.0_65 server.2 2
slave2 10.25.203.67 1.8.0_65 server.3 3

二、zk、hadoop安裝

zk 安裝參考 《
分散式ZooKeeper-3.4.10叢集安裝
 》 hadoop 安裝參考《 spark-2.2.0 叢集安裝部署以及hadoop叢集部署

三、HBase 安裝(HBase 自管理ZK)

下載解壓HBase檔案
cd /data/spark/
wget "http://archive.apache.org/dist/hbase/2.0.0-alpha4/hbase-2.0.0-alpha4-bin.tar.gz"
tar zxvf hbase-2.0.0-alpha4-bin.tar.gz

環境變數

vim ~/.bash_profile
export HBASE_HOME=/data/spark/hbase-2.0.0-alpha4 
export PATH=$HBASE_HOME/bin:$PATH  
export HBASE_CLASSPATH=/data/spark/hbase-2.0.0-alpha4/conf
執行  source ~/.bash_profile使環境變數生效

配置hbase-env.sh JAVA_HOME
export JAVA_HOME=/opt/jdk1.8.0_65 
export HBASE_MANAGES_ZK=true   使用自帶zookeeper

修改配置檔案hbase-site.xml

<configuration>  
    <property>  
        <name>hbase.rootdir</name>  
        <value>hdfs://Master:9000/hbase</value>  
    </property>  
    <property>  
        <name>hbase.cluster.distributed</name>  
        <value>true</value>  
    </property>  
    <property>  
        <name>hbase.zookeeper.quorum</name>  
        <value>Master,Slave1,Slave2</value>  
    </property>  
    <property>  
        <name>hbase.temp.dir</name>  
        <value>/data/spark/hbase-2.0.0-alpha4/tmp</value>  
    </property>  
    <property>  
        <name>hbase.zookeeper.property.dataDir</name>  
        <value>/data/spark/hbase-2.0.0-alpha4/tmp/zookeeper</value>  
    </property>  
    <property>  
        <name>hbase.master.info.port</name>  
        <value>60010</value>  
    </property>  
</configuration> 
hbase.zookeeper.quorum  配置必須用IP,使用hostname會報錯,與MapReduce 衝突。

各個主機之間複製HBase

 scp -r /data/spark/hbase-2.0.0-alpha4 Slave1:/data/spark
 scp -r /data/spark/hbase-2.0.0-alpha4 Slave2:/data/spark

啟動HBase

 啟動之前先啟動hadoop和zookeeper叢集
HBase只需在一個節點上執行啟動HBase命令,與Hadoop一樣
$HADOOP_HOME/sbin/start-all.sh
cd /data/spark/hbase-2.0.0-alpha4/bin
./start-hbase.sh

檢查hbase啟動情況

Slave 程序檢查
29541 NodeManager
30456 HQuorumPeer
29435 DataNode
30541 HRegionServer
30718 Jps

Master程序檢查
532 Jps
14278 NodeManager
18376 HMaster
18313 HQuorumPeer
14172 DataNode
18511 HRegionServer

HBase配置web介面
http://Maseter IP:60010/master-status
注意:HBase自管理ZK中,hosts檔案中有主機名對應的IP,否則會報錯。 zookeeper.ClientCnxn: Opening socket connection to server iZwz9evsidoafzcicmva9nZ/10.25.203.67:2181. Will not attempt to authenticate using SASL (unknown error)

匯入資料

hdsf dfs -put test_hbase.csv /lw6/test
hbase  org.apache.hadoop.hbase.mapreduce.ImportTsv  -Dimporttsv.separator="," -Dimporttsv.columns=HBASE_ROW_KEY,f1 t1 /lw6/test/test_hbase.csv -Dimporttsv.bulk.output=/lw6/test/output.txt
Import 工具主要是通過轉換為MapReduce 匯入HBase。 注意:匯入過程中出現任務無法Running,yarn日誌顯示無法找到主機,主要是因為主機名未修改,只是配置節點名稱導致。

Hbase基本命令

參考:https://www.cnblogs.com/xiaolei2017/p/7245299.html

與資料庫一樣有DML、DDL操作,命令操作不一樣。

名稱

命令表示式

建立表

create '表名稱', '列名稱1','列名稱2','列名稱N'

新增記錄      

put '表名稱', '行名稱', '列名稱:', '值'

檢視記錄

get '表名稱', '行名稱'

查看錶中的記錄總數

count  '表名稱'

刪除記錄

delete  '表名' ,'行名稱' , '列名稱'

刪除一張表

先要遮蔽該表,才能對該表進行刪除,第一步 disable '表名稱' 第二步  drop '表名稱'

檢視所有記錄

scan "表名稱"  

檢視某個表某個列中所有資料

scan "表名稱" , ['列名稱:']

更新記錄 

就是重寫一遍進行覆蓋