閱讀293 返回首頁    go 阿裏雲 go 技術社區[雲棲]


step-by-step通過數據集成同步數據到HBase

數據集成是阿裏集團對外提供的穩定高效、彈性伸縮的數據同步平台。本文將介紹如何使用數據集成將數據同步到HBase。我們以如下場景為例:線上有兩個雲HBase集群,想把其中一個集群的數據同步到另一個集群中。
HBase列表.png
源表.png

第一步 創建數據集成項目

在使用數據集成同步數據之前,我們需要先在MaxCompute產品首頁購買資源並創建一個項目。後續的數據同步任務就是放在這個項目下麵執行的。具體步驟參見購買並創建項目
購買的資源不必和HBase在同一地區。如果已經創建過項目,可以忽略這一步。

第二步 準備調度資源

出於安全方麵的考慮,目前HBase導入數據隻支持本地模式,所以需要用戶先申請ECS並將ESC添加到數據同步的資源組用於執行同步任務。

2.1 申請ECS

在HBase所在Region的任意Zone購買一台ECS,然後設置HBase的白名單。
注意:
(1)ECS要能夠訪問到HBase,在我們的例子中,兩個HBase集群都是經典網絡,所以我們購買一台經典網絡的ECS,然後設置HBase的白名單即可。如果HBase是vpc網絡,可參考HBase訪問準備
(2)如果HBase和ECS是專有網絡的話,ECS需要綁定公網IP,因為公網 IP 對於數據集成的匯報心跳非常重要。在創建時可以選擇分配公網IP,也可以創建後綁定彈性公網 IP

2.2 新增調度資源

1、項目管理員進入進入 大數據開發套件-調度資源列表,點擊 新增調度資源,填寫新增的調度資源名稱,如下圖所示:
新增調度資源.png
2、添加調度資源後,在彈窗界麵內點擊新建調度資源操作欄中的 服務器管理,進入服務器添加頁麵,將購買的 ECS 雲服務器添加到資源組,如下圖所示:
管理服務器1.png
3、點擊增加服務器;
管理服務器.png
網絡類型:選擇經典網絡;
服務器名稱:獲取方式:登錄 ECS,執行 hostname 命令,取返回值;
機器 IP:輸入專有網絡 IP。
4、在調度資源管理頁麵,點擊“服務器初始化”,然後按照彈出的提示在ECS上進行操作。
初始化服務器.png
執行完安裝命令後,可以看到服務器狀態已顯示為“正常”。

第三步 創建數據同步任務

HBase目前不支持向導模式,所以需要創建腳本模式任務並修改腳本中的插件配置。

3.1 創建腳本模式任務

1、以開發者身份進入 阿裏雲數加平台>大數據開發套件>管理控製台,點擊“項目列表”下對應項目操作欄中的 進入工作區 ;
2、點擊頂部菜單欄中的 數據集成 中左側導航欄的 同步任務 ;
3、點擊界麵中的 “腳本模式”;
腳本模式.png
4、在彈出的“導入模板”中選擇自己需要的“來源類型”和“目標類型”,如下圖所示:
導入模版.png
雲HBase的版本是1.1,所以目標類型選擇“HBase11x”,我們的例子中,源也是雲HBase,所以源類型也選擇“HBase11x”。
5、點確定後,會按照模版生成默認的配置,先保存。
默認配置.png

3.2 修改插件配置

reader需要改如下幾個地方:
(1)column和table按照我們實際情況修改。
(2)我們同步全量數據,所以把range和maxversion刪掉。
(3)hbaseconfig中,hbase.rootdir是不需要的,可以刪掉。hbase.zookeeper.quorum可以在HBase實例的管理控製台查看。
zk地址.png
writer需要修改如下幾個地方:
(1)rowkeyColumn。在我們的例子中,源表的rowkey導入過來直接做rowkey,所以把rowkeyColumn裏麵默認生成的:

          {
            "index": -1,
            "type": "string",
            "value": "_"
         }

刪掉。
(2)column和table按照實際情況修改。注意在運行同步任務前要確保已經建好目標表和列族。
(3)versionColumn在我們的例子裏不需要,刪掉。
(4)hbaseConfig和源插件類似,把hbase.rootdir刪掉,hbase.zookeeper.quorum改成目標HBase的zk地址。
其他選項也可以根據實際情況修改。例如,可以修改speed裏麵的選項增加並行度。具體可參考HbaseReader 配置HbaseWriter 配置以及腳本模式的配置

我們的例子中,最終的插件配置如下:

{
  "configuration": {
    "reader": {
      "plugin": "hbase11x",
      "parameter": {
        "mode": "normal",
        "scanCacheSize": "256",
        "scanBatchSize": "100",
        "column": [
          {
            "name": "rowkey",
            "type": "string"
          },
          {
            "name": "cf:a",
            "type": "string"
          }
        ],
        "encoding": "UTF-8",
        "table": "test",
        "hbaseConfig": {
          "hbase.zookeeper.quorum": "hb-2ze5mewh34cfy7960-001.hbase.rds.aliyuncs.com:2181,hb-2ze5mewh34cfy7960-002.hbase.rds.aliyuncs.com:2181,hb-2ze5mewh34cfy7960-004.hbase.rds.aliyuncs.com:2181",
          "hbase.cluster.distributed": "true"
        }
      }
    },
    "writer": {
      "plugin": "hbase11x",
      "parameter": {
        "mode": "normal",
        "walFlag": "false",
        "rowkeyColumn": [
          {
            "index": 0,
            "type": "string"
          }
        ],
        "nullMode": "skip",
        "column": [
          {
            "name": "cf:a",
            "index": 1,
            "type": "string"
          }
        ],
        "encoding": "UTF-8",
        "table": "test",
        "hbaseConfig": {
          "hbase.zookeeper.quorum": "hb-2zel37texpqo9umcw-001.hbase.rds.aliyuncs.com:2181,hb-2zel37texpqo9umcw-002.hbase.rds.aliyuncs.com:2181,hb-2zel37texpqo9umcw-004.hbase.rds.aliyuncs.com:2181",
          "hbase.cluster.distributed": "true"
        }
      }
    },
    "setting": {
      "errorLimit": {
        "record": "0"
      },
      "speed": {
        "concurrent": "1",
        "mbps": "1"
      }
    }
  },
  "type": "job",
  "version": "1.0"
}

修改完成後,保存。點擊“提交”。
提交任務.png
提交任務頁麵“一次性調度”選不了,如果我們不希望任務周期性運行的話,可以把時間改成當天。

第四步 運行任務

4.1 修改調度資源組

1、進入 大數據開發套件-運維中心-任務管理 頁麵,點擊 列表;
任務列表.png
2、選擇同步任務,點擊 修改資源組;
修改資源組.png
3、選擇我們在第二步創建的資源組,點擊 確認。

4.2 運行任務

在任務管理頁麵,點擊 操作-補數據。然後等待任務完成。
任務成功.png
任務執行成功,我們在目標HBase裏麵已經看到有數據了。

最後更新:2017-08-13 22:23:50

  上一篇:go  使用數據集成同步phoenix數據
  下一篇:go  RDS for MySQL CPU 性能問題淺析