CentOS7使用HBase-1.2.6單機版,無hadoop

libaineu2004發表於2018-04-27

一、環境搭建

使用CentOS7系統,先刪除自帶的JDK,自帶的不好用(例如jps終端命令不能用等)。下載官網完整的JDK,並設定環境變數JAVA_HOME。詳情見:

https://blog.csdn.net/libaineu2004/article/details/80060812


二、下載穩定版habse,1.2.6版本

http://mirror.bit.edu.cn/apache/hbase/stable/

解壓 tar -xzvf hbase-1.2.6-bin.tar.gz , 筆者的工作路徑是/root/Downloads/hbase-1.2.6/


三、配置

1、 在單機模式中,ZooKeeper程式與HBase程式執行在同一個JVM程式中。

Hbase依賴於zookeeper,所有的節點和客戶端都必須能夠訪問zookeeper。 HBase的安裝包裡面有自帶的ZooKeeper,conf/hbase-env.sh檔案有環境變數定義:

# export HBASE_MANAGES_ZK=true

它用來設定HBase是使用預設自帶的 Zookeeper還是使用獨立的ZooKeeper。 

HBASE_MANAGES_ZK為 false 時使用獨立的. 

HBASE_MANAGES_ZK為 true 時表示使用預設自帶的,即讓Hbase啟動的時候同時也啟動自帶的ZooKeeper。

如果使用自帶的zookeeper,去不去掉這行環境變數註釋效果都一樣,預設值就是true。

也就是說conf/hbase-env.sh檔案可以不需要修改。

但是我個人還是建議去掉註釋比較直觀,同時把JAVA_HOME也再次明確一下較好。(非必須)

export JAVA_HOME=/root/Downloads/jdk1.8.0_172

export HBASE_LOG_DIR=/usr/local/hbase/logs

export HBASE_MANAGES_ZK=true

2、在單機模式中,HBase並不使用 HDFS,僅使用本地檔案系統。conf/hbase-env.sh檔案不需要修改,僅僅修改conf/hbase-site.xml,指定資料檔案的存放路徑。

<configuration>
   <property>
      <name>hbase.tmp.dir</name>
      <value>/usr/local/hbase/hbaseData</value>
   </property>
    <property>
        <name>hbase.rootdir</name>
        <value>file:/usr/local/hbase</value>
    </property>
</configuration>

注意:

(1)HBase可以不依賴Hadoop的HDFS來部署,在單機模式下直接使用普通檔案系統來儲存資料。說明HBase是可以離開HDFS的。

(2)如果不修改conf/hbase-site.xml檔案,預設情況下Hbase是寫到/tmp的,在重啟的時候/tmp會被清空,資料就會丟失。


四、終端驗證,進入/root/Downloads/hbase-1.2.6/bin

[root@bogon bin]# echo $JAVA_HOME
/root/Downloads/jdk1.8.0_172
[root@bogon bin]# ./start-hbase.sh
starting master, logging to /root/Downloads/hbase-1.2.6/bin/../logs/hbase-root-master-bogon.out
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option PermSize=128m; support was removed in 8.0
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=128m; support was removed in 8.0
[root@bogon bin]# jps
98741 Jps
98382 HMaster
[root@bogon bin]# hbase shell
2018-04-27 09:34:39,017 WARN  [main] util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
HBase Shell; enter 'help<RETURN>' for list of supported commands.
Type "exit<RETURN>" to leave the HBase Shell
Version 1.2.6, rUnknown, Mon May 29 02:25:32 CDT 2017

hbase(main):001:0> list
TABLE                                                                                                  
0 row(s) in 0.2190 seconds

=> []
hbase(main):002:0> create 'user' ,'personalinfo'
0 row(s) in 1.3250 seconds

=> Hbase::Table - user
hbase(main):003:0> list
TABLE                                                                                                  
user                                                                                                   
1 row(s) in 0.0460 seconds

=> ["user"]

hbase(main):004:0> 

hbase(main):001:0> exit


五、因為ZooKeeper程式與HBase程式執行在同一個JVM程式中,通過jps命令只能看到HMaster,那怎麼知道zookeeper啟動了呢?

[root@bogon bin]# netstat -tunlp|egrep 2181
tcp6       0      0 :::2181                 :::*                    LISTEN      5804/java   


六、web監控,開啟瀏覽器

http://localhost:16010/master-status
或者
http://192.168.83.128:16010/master-status


參考文獻:https://blog.csdn.net/lisonglisonglisong/article/details/46917961


----

關於jps終端命令:

jps 是java提供的檢視java程式的工具,比如我用jps命令檢視,正常情況會列出如下資訊:
<程式號1111> …… <程式名A>
<程式號2222> …… <程式名B>
<程式號3333> …… <程式名C>
<程式號4444> …… <Jps>

這時用kill -9 <程式號> 是可以殺掉程式的。


相關文章