step-by-step通過數據集成同步數據到HBase
數據集成是阿裏集團對外提供的穩定高效、彈性伸縮的數據同步平台。本文將介紹如何使用數據集成將數據同步到HBase。我們以如下場景為例:線上有兩個雲HBase集群,想把其中一個集群的數據同步到另一個集群中。
第一步 創建數據集成項目
在使用數據集成同步數據之前,我們需要先在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、項目管理員進入進入 大數據開發套件-調度資源列表,點擊 新增調度資源,填寫新增的調度資源名稱,如下圖所示:
2、添加調度資源後,在彈窗界麵內點擊新建調度資源操作欄中的 服務器管理,進入服務器添加頁麵,將購買的 ECS 雲服務器添加到資源組,如下圖所示:
3、點擊增加服務器;
網絡類型:選擇經典網絡;
服務器名稱:獲取方式:登錄 ECS,執行 hostname 命令,取返回值;
機器 IP:輸入專有網絡 IP。
4、在調度資源管理頁麵,點擊“服務器初始化”,然後按照彈出的提示在ECS上進行操作。
執行完安裝命令後,可以看到服務器狀態已顯示為“正常”。
第三步 創建數據同步任務
HBase目前不支持向導模式,所以需要創建腳本模式任務並修改腳本中的插件配置。
3.1 創建腳本模式任務
1、以開發者身份進入 阿裏雲數加平台>大數據開發套件>管理控製台,點擊“項目列表”下對應項目操作欄中的 進入工作區 ;
2、點擊頂部菜單欄中的 數據集成 中左側導航欄的 同步任務 ;
3、點擊界麵中的 “腳本模式”;
4、在彈出的“導入模板”中選擇自己需要的“來源類型”和“目標類型”,如下圖所示:
雲HBase的版本是1.1,所以目標類型選擇“HBase11x”,我們的例子中,源也是雲HBase,所以源類型也選擇“HBase11x”。
5、點確定後,會按照模版生成默認的配置,先保存。
3.2 修改插件配置
reader需要改如下幾個地方:
(1)column和table按照我們實際情況修改。
(2)我們同步全量數據,所以把range和maxversion刪掉。
(3)hbaseconfig中,hbase.rootdir是不需要的,可以刪掉。hbase.zookeeper.quorum可以在HBase實例的管理控製台查看。
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"
}
修改完成後,保存。點擊“提交”。
提交任務頁麵“一次性調度”選不了,如果我們不希望任務周期性運行的話,可以把時間改成當天。
第四步 運行任務
4.1 修改調度資源組
1、進入 大數據開發套件-運維中心-任務管理 頁麵,點擊 列表;
2、選擇同步任務,點擊 修改資源組;
3、選擇我們在第二步創建的資源組,點擊 確認。
4.2 運行任務
在任務管理頁麵,點擊 操作-補數據。然後等待任務完成。
任務執行成功,我們在目標HBase裏麵已經看到有數據了。
最後更新:2017-08-13 22:23:50