閱讀628 返回首頁    go 阿裏雲


HBase 開發手冊__開發人員指南_E-MapReduce-阿裏雲

為了更好地使用 HBase,在創建集群過程中,推薦您使用如下配置:

  • 公網狀態選擇打開。

  • 可用區選擇為訪問 HBase 的應用服務器所在的可用區,請勿選擇隨機分配。

  • 硬件節點數請選擇 4 個及以上,其包含了 Master 和 Slave 節點,E-MapReduce 會在這些節點上創建 namenode、datanode、journalnode、hmaster、regionserver 和 zookeeper 角色。

  • 服務器配置推薦選擇 4 核 16G / 8 核 32G 這兩款機型,過低的配置可能導致 HBase 集群無法穩定運行。

  • 數據盤類型建議選擇 SSD 雲盤,會有更好的成本性價比。對於訪問少,存儲量大的業務,可以選擇普通雲盤。

  • 數據容量請按實際需求配置。

  • HBase 集群支持擴容。

HBase 配置

創建 HBase 集群的時候,在創建頁麵可以利用軟件配置功能,結合使用場景,對 HBase 的默認參數配置做一些優化修改,如下所示:

  1. {
  2. "configurations": [
  3. {
  4. "classification": "hbase-site",
  5. "properties": {
  6. "hbase.hregion.memstore.flush.size": "268435456",
  7. "hbase.regionserver.global.memstore.size": "0.5",
  8. "hbase.regionserver.global.memstore.lowerLimit": "0.6"
  9. }
  10. }
  11. ]
  12. }

HBase 集群一些默認的配置如下所示:

key value
zookeeper.session.timeout 180000
hbase.regionserver.global.memstore.size 0.35
hbase.regionserver.global.memstore.lowerLimit 0.3
hbase.hregion.memstore.flush.size 128MB

訪問 HBase

注意:

  • 由於網絡性能的考慮,通過 E-MapReduce 創建的 HBase 集群,我們隻建議從同個可用區的 ECS 上發起訪問。

  • 訪問 HBase 集群的 ECS 必須和 HBase 集群處於同一個安全組內,否則無法訪問,所以在 EMR 中創建 Hadoop/Spark/Hive 集群時,如果它們需要訪問 HBase,則在創建集群的時候一定要選擇和 HBase 集群相同的安全組。

通過 E-MapReduce 控製台創建完 HBase 集群以後,用戶可以開始使用 HBase 存儲服務。其操作步驟如下:

  1. 獲取 Master IP 和集群 ZK 地址。通過 E-MapReduce 控製台集群詳情頁麵,用戶可以查看集群的 Master 節點 IP 和 ZK 訪問地址(內網IP),如下圖所示:

    對於開通了公網 IP 的 Master 節點,用戶可以參考如何登錄 master 節點,瀏覽 HMaster 的 WEB UI(localhost:16010)。

  2. SSH 連接到集群主節點,使用 HBase Shell。用戶可以直接通過 SSH 連接到集群的 Master 節點,切換到 HDFS 用戶,通過 HBase Shell 訪問集群(關於 HBase Shell 的更多介紹,請參考Apache HBase 官網)。

    1. [root@emr-header-1 ~]# su hdfs
    2. [hadoop@emr-header-1 root]$ hbase shell
    3. HBase Shell; enter 'help<RETURN>' for list of supported commands.
    4. Type "exit<RETURN>" to leave the HBase Shell
    5. Version 1.1.1, r374488, Fri Aug 21 09:18:22 CST 2015
    6. hbase(main):001:0>
  3. 從其他 ECS 節點(同一個安全組內),使用 HBase Shell 訪問集群。從 Apache HBase 的官網下載 HBase-1.x 版本的資源包(下載鏈接),解壓後,修改 conf/hbase-site.xml,添加集群的 ZK 地址,如下所示:

    1. <configuration>
    2. <property>
    3. <name>hbase.zookeeper.quorum</name>
    4. <value>$ZK_IP1,$ZK_IP2,$ZK_IP3</value>
    5. </property>
    6. </configuration>

    然後就可以通過命令 bin/hbase shell 訪問集群了。

    若 ECS 是通過 EMR 創建的,則隻需修改 /etc/emr/hbase-conf/hbase-site.xml,無需下載 HBase-1.x 版本的資源包。

  4. 通過 API 訪問 HBase 集群,引入 Maven 依賴。

    1. <groupId>org.apache.hbase</groupId>
    2. <artifactId>hbase-client</artifactId>
    3. <version>1.1.1</version>

    配置正確的 ZK 地址,連接集群。

    1. Configuration config = HBaseConfiguration.create();
    2. config.set(HConstants.ZOOKEEPER_QUORUM,"$ZK_IP1,$ZK_IP2,$ZK_IP3");
    3. Connection connection = ConnectionFactory.createConnection(config);
    4. try {
    5. Table table = connection.getTable(TableName.valueOf("myLittleHBaseTable"));
    6. try {
    7. //Do table operation
    8. }finally {
    9. if (table != null) table.close();
    10. }
    11. } finally {
    12. connection.close();
    13. }

更多開發介紹,請參考 Apache HBase 官網

示例

前提條件

訪問 Hbase 集群的 ECS 必須和 HBase 集群處於同一個安全組內。

Spark 訪問 Hbase

請參照 spark-hbase-connector

Hadoop 訪問 Hbase

請參照 HBase MapReduce Examples

Hive 訪問 Hbase

EMR 1.2.0 及以上主版本的集群中的 Hive 才能訪問 Hbase 集群。其步驟如下:

  1. 登錄 Hive 集群,修改 hosts,增加如下一行:

    1. $zk_ip emr-cluster //$zk_i p為 Hbase 集群的 zk 節點 IP
  2. 具體 Hive 操作請參照 Hive HBase Integration

最後更新:2016-11-23 16:03:59

  上一篇:go Hadoop Streaming__Hadoop_開發人員指南_E-MapReduce-阿裏雲
  下一篇:go Sqoop__數據傳輸軟件_開發人員指南_E-MapReduce-阿裏雲