Apache HBase 是一個開放原始碼、分佈式、 列存儲 (Wide column store) 的 NoSQL 資料庫。 它參考了谷歌的 BigTable 論文,實現的程式語言為 Java,建構於 Apache Hadoop HDFS 之上, 其核心架構採用 Master-Slave 模式,主要包含協調服務 ZooKeeper、 管理節點 HMaster、處理資料讀寫的 RegionServers,以及負責儲存資料的 HDFS。 Apache HBase 安裝與 Apache Hadoop 一樣分為三種模式:Standalone, Pseudo-Distributed 與Fully-Distributed。 Fully-Distributed 只能運行在Apache Hadoop 上面。
將下載的 HBase 檔案放到 /home/danilo/Programs/hbase,並且設定好環境變數:
export HBASE_HOME=/home/danilo/Programs/hbase
export PATH=$PATH:$HBASE_HOME/bin
使用 Pseudo-Distributed 與 local file system 安裝模式,修改 hbase-site.xml
<configuration>
<property>
<name>hbase.rootdir</name>
<value>file:///home/danilo/Programs/hbase</value>
</property>
<property>
<name>hbase.tmp.dir</name>
<value>./tmp</value>
</property>
<property>
<name>hbase.unsafe.stream.capability.enforce</name>
<value>false</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/var/lib/zookeeper</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>localhost</value>
</property>
<property>
<name>hbase.zookeeper.property.clientPort</name>
<value>2181</value>
</property>
</configuration>
修改 hbase-env.sh
# Tell HBase whether it should manage it's own instance of ZooKeeper or not.
export HBASE_MANAGES_ZK=false
(HBase 可以設定是否自行管理自己的 ZooKeeper 叢集,這裡選擇使用外部的 ZooKeeper service。)
首先需要啟動 ZooKeeper service。
再來啟動 HBase:
bin/start-hbase.sh
停止 HBase:
bin/stop-hbase.sh
如果要執行 HBase shell:
bin/hbase shell
REST interface
啟動 HBase REST server(前景,使用 -port 指定 port):
bin/hbase rest start -p 8090
啟動 HBase REST server(背景,使用 -port 指定 port):
bin/hbase-daemon.sh start rest -p 8090
停止 HBaseHBase REST server(背景):
bin/hbase-daemon.sh stop rest
SSL/TLS
使用 keytool 建立 keystroe:
keytool -genkeypair -alias server \
-dname "CN=localhost, OU=IT Department, O=Orange Inc. ,L=Taipei, S=Taiwan,C=TW" \
-ext SAN=DNS:localhost,IP:127.0.0.1 \
-keyalg RSA -keysize 2048 -sigalg SHA256withRSA -storetype PKCS12 \
-validity 3650 \
-keypass password -keystore ./trusted.keystore -storepass password
修改 hbase-site.xml
<configuration>
<property>
<name>hbase.rootdir</name>
<value>file:///home/danilo/Programs/hbase</value>
</property>
<property>
<name>hbase.tmp.dir</name>
<value>./tmp</value>
</property>
<property>
<name>hbase.unsafe.stream.capability.enforce</name>
<value>false</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/var/lib/zookeeper</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>localhost</value>
</property>
<property>
<name>hbase.zookeeper.property.clientPort</name>
<value>2181</value>
</property>
<property>
<name>hbase.rest.ssl.enabled</name>
<value>true</value>
</property>
<property>
<name>hbase.rest.ssl.keystore.store</name>
<value>/home/danilo/Programs/hbase/conf/trusted.keystore</value>
</property>
<property>
<name>hbase.rest.ssl.keystore.password</name>
<value>password</value>
</property>
<property>
<name>hbase.rest.ssl.keystore.type</name>
<value>pkcs12</value>
</property>
<property>
<name>hbase.rest.ssl.truststore.store</name>
<value>/home/danilo/Programs/hbase/conf/trusted.keystore</value>
</property>
<property>
<name>hbase.rest.ssl.truststore.password</name>
<value>password</value>
</property>
<property>
<name>hbase.rest.ssl.truststore.type</name>
<value>pkcs12</value>
</property>
</configuration>
再來重新啟動 HBase server 與 HBase REST server 即可。
沒有留言:
張貼留言
注意:只有此網誌的成員可以留言。