IDC / ECS自建和雲資料庫之間的資料搬站
1 IDC -> MaxCompute / EMR
【方案】:使用“獨享資料內建資源組”,綁定可以連通使用者IDC的使用者VPC,然後提工單,由阿裡雲資料內建開發人員在獨享資料內建資源組上配置路由,使獨享資料內建資源組可以通路IDC内資料源。
1.1 IDC Hadoop(HDFS / Hive)-> EMR
【HDFS讀取】:
https://help.aliyun.com/knowledge_detail/137721.html【HDFS寫入】
https://help.aliyun.com/knowledge_detail/137759.html1.12 前期準備
- 建立好EMR叢集,詳細文檔請參見: E-MapReduce叢集建立
- 現在自建Hadoop遷移到E-MapReduce可以通過OSS進行過度,或者使用阿裡雲高速通道産品建立線下IDC和線上E-MapReduce所在VPC網絡的連通。
- 配置DataWorks獨享資料內建資源組,詳細文檔請參見: 獨享資源模式
本文以在華北2(北京)區域建立項目為例,同時啟動Dataworks的相關服務。
2.12 資料準備
IDC叢集測試資料準備,本例中HIVE建表語句如下:
CREATE TABLE IF NOT EXISTS test(
id INT,
name STRING,
hobby STRING,
region STRING
)
PARTITIONED BY(pt string)
row format delimited
fields terminated by ','
lines terminated by '\n'
;
插入測試資料:
insert into
test PARTITION(pt =1) values(1,'xiaoming','book','beijing'),(2,'lilei','TV','nanjing'),(3,'lihua','music','hebei'),(4,'xiaoma','draw','henan'),(5,'laoli','piano','heinan');
2.13 IDC自建Hadoop資料源連接配接
Dataworks資料內建-資料源管理-新增資料源-HDFS

使用“獨享資料內建資源組”,綁定可以連通使用者IDC的使用者VPC,然後提工單,由阿裡雲資料內建開發人員在獨 享資料內建資源組上配置路由,使獨享資料內建資源組可以通路IDC内資料源。
EMR的Hadoop資料源連接配接

2.14 在EMR的Hadoop上建立目錄來存放ECS叢集同步過來的資料
hadoop fs -mkdir /emr_test
2.15 在DataWorks中建立資料同步節點
配置資料同步節點并點選轉換為腳本模式,配置MaxCompute Reader 和 HDFS Writer 腳本可參考官方文檔:配置HDFS Reader 和 配置HDFS Writer
本文檔中配置如下:
{
"type": "job",
"steps": [
{
"stepType": "hdfs",
"parameter": {
"path": "/user/hive/warehouse/gitdatabase.db/test/",
"datasource": "IDC_EMR",
"column": [
"*"
],
"encoding": "UTF-8",
"fieldDelimiter": ",",
"fileType": "text"
},
"name": "Reader",
"category": "reader"
},
{
"stepType": "hdfs",
"parameter": {
"path": "/emr_test/",
"fileName": "emr_test",
"datasource": "IDC_EMR",
"column": [
{
"name": "id",
"type": "int"
},
{
"name": "name",
"type": "string"
},
{
"name": "hobby",
"type": "string"
},
{
"name": "region",
"type": "string"
},
{
"name": "col5",
"type": "date"
}
],
"writeMode": "append",
"encoding": "UTF-8",
"fieldDelimiter": ",",
"fileType": "text"
},
"name": "Writer",
"category": "writer"
}
],
"version": "2.0",
"order": {
"hops": [
{
"from": "Reader",
"to": "Writer"
}
]
},
"setting": {
"errorLimit": {
"record": ""
},
"speed": {
"concurrent": 2,
"throttle": true,
"mbps": "10"
}
}
}
配置獨享資源組:
2.16 腳本按需求配置并儲存,運作節點:
檢視EMR叢集hdfs資料是否同步成功:hadoop fs -cat /emr_test/*
1.2 IDC Kafka -> EMR Kafka
【Kafka讀取】:
https://help.aliyun.com/knowledge_detail/137745.html【Kafka寫入】
https://help.aliyun.com/knowledge_detail/145510.html1.21 環境準備
- 已完成阿裡雲EMR服務自動化搭建Kafka叢集,詳細文檔請參見: E-MapReduce
- 資料工場DataWorks,詳細文檔請參見: DataWorks
- 購買獨享資料內建資源,使獨享資源組可以通路您的雲資源,詳細文檔請參見: 獨享資源組模式 IDC自建需要與線上E-MapReduce所在網絡的連通。
為保證您可以順利登入EMR叢集Header主機,及DataWorks可以順利和EMR叢集Header主機通信,請您首 先配置EMR叢集Header主機安全組,放行TCP 22及TCP 9092端口。
本文中在華北2(北京)區域建立項目,同時啟動DataWorks相關服務。通過獨享內建資源組綁定到與Kafka對應的VPC,點選專有網絡綁定,選擇與Kafka對應的交換機進行連接配接。
1.22 準備IDC kafka測試資料
建立測試Topic
執行如下指令建立測試所使用的Topic testkafka。
[root@emr-header-1 ~]# kafka-topics.sh --zookeeper emr-header-1:2181/kafka-1.0.1 --partitions 10 --replication-factor 3 --topic testkafka --create
Created topic "testkafka".
執行如下指令檢視已建立的Topic。
[root@emr-header-1 ~]# kafka-topics.sh --list --zookeeper emr-header-1:2181/kafka-1.0.1
__consumer_offsets
_emr-client-metrics
_schemas
connect-configs
connect-offsets
connect-status
testkafka
寫入測試資料
您可以執行如下指令,模拟生産者向Topic testkafka中寫入資料。由于Kafka用于處理流式資料,您可以持續不斷的向其中寫入資料。為保證測試結果,建議您寫入10條以上的資料。
[root@emr-header-1 ~]# kafka-console-producer.sh --broker-list emr-header-1:9092 --topic testkafka
>123
>abc
>
為驗證寫入資料生效,您可以同時再打開一個SSH視窗,執行如下指令,模拟消費者驗證資料是否已成功寫入Kafka。當資料寫入成功時,您可以看到已寫入的資料。
[root@emr-header-1 ~]# kafka-console-consumer.sh --bootstrap-server emr-header-1:9092 --topic testkafka --from-beginning
123
abc
1.23 在EMR kafka建立topic來放同步過來的資料:
[root@emr-header-1 ~]# kafka-topics.sh --zookeeper emr-header-1:2181/kafka-1.0.1 --partitions 10 --replication-factor 3 --topic emrkafka --create
Created topic "testkafka".
1.24 資料同步
a. 在您的業務流程中右鍵單擊資料內建,選擇建立 > 資料內建 > 離線同步。
b. 建立資料同步節點後,您需要選擇資料來源的資料源為kafka,資料去向的資料源為kafka,完成上述配置後,請單擊下圖框中的按鈕,轉換為腳本模式。
c. 完成腳本配置後,請首先切換任務資源組為您建立的獨享資源組,然後單擊運作。
1.25 确認資料導入
a. 完成運作後,您可以在運作日志中檢視運作結果,如下為成功運作的日志。
b. 檢視EMR Kafka資料是否成功寫入。
1.3 IDC MySQL -> MaxCompute
【MySQL讀取】
https://help.aliyun.com/knowledge_detail/137725.html【MaxCompute寫入】
https://help.aliyun.com/knowledge_detail/137466.html1.31 環境準備
- 大資料計算服務MaxCompute,詳細文檔請參見: MaxCompute
- 購買獨享資料內建資源,使獨享資料資源可以通路您IDC的資料源,詳細文檔請參見:
1.32 資料采集
本文通過開通資料網關資源,使用DMS來管理IDC的MySQL。通過資料內建-資料源-新增資料源MySQL JDBC Url連接配接。
1.33 在MaxCompute中建立資料表存放同步過來的資料。本執行個體建表:idc_my。
1.34 資料同步
配置MySQL資料同步節點
配置資料內建任務時,将預設資源組配置為需要的獨享資料內建資源。
通過向導模式配置任務時,在通道控制 > 任務資源組下拉框中,選擇相應的獨享資料內建資源。
确認目前節點的配置無誤後,單擊左上角的儲存。
關閉目前任務,傳回業務流程配置面闆。
1.35 運作業務流程
右鍵單擊rds_資料同步節點,選擇檢視日志。
當日志中出現如下字樣,表示同步節點運作成功,并成功同步資料。
然後在資料開發頁面,單擊左側導航欄中的臨時查詢,進入臨時查詢面闆,再确認資料是否已經導入MaxCompute中。
2 雲上ECS自建 -> MaxCompute / EMR
【方案】:使用“獨享資料內建資源組”,綁定可以自建資料源所在使用者VPC,然後提工單,由阿裡雲資料內建開發人員在獨享資料內建資源組上配置路由,使獨享資料內建資源組可以通路ESC内資料源。
2.1 ECS Hadoop(HDFS / Hive)-> EMR
2.11 前提條件
- 建立好EMR叢集。
- 由于 VPC 實作使用者專有網絡之間的邏輯隔離,E-MapReduce 建議使用 VPC 網絡。
-
經典網絡與 VPC 網絡打通
如果 ECS 自建 Hadoop,需要通過 ECS 的
classiclink 的方式将經典網絡和 VPC 網絡打通,參見 建立 ClassicLink 連接配接 。 -
VPC 網絡之間連通
資料遷移一般需要較高的網絡帶寬連通,建議新舊叢集盡量處在同一個區域的同一個可用區内。
ECS叢集測試資料準備
本例中HIVE建表語句如下:
CREATE TABLE IF NOT EXISTS test(
id INT,
name STRING,
hobby STRING,
region STRING
)
PARTITIONED BY(pt string)
row format delimited
fields terminated by ','
lines terminated by '\n'
;
insert into
test PARTITION(pt =1) values(1,'xiaoming','book','beijing'),(2,'lilei','TV','nanjing'),(3,'lihua','music','hebei'),(4,'xiaoma','draw','henan'),(5,'laoli','piano','heinan');
2.13 ECS自建Hadoop資料源連接配接

使用“獨享資料內建資源組”,綁定可以自建資料源所在使用者VPC,然後提工單,由阿裡雲資料內建開發人員在獨享資料內建資源組上配置路由,使獨享資料內建資源組可以通路ESC内資料源。

hadoop fs -mkdir /emr_test
配置資料同步節點并點選轉換為腳本模式, 配置MaxCompute Reader 和 HDFS Writer 腳本可參考官方文檔:配置HDFS Reader 和 配置HDFS Writer
{
"type": "job",
"steps": [
{
"stepType": "hdfs",
"parameter": {
"path": "/user/hive/warehouse/gitdatabase.db/test/",
"datasource": "IDC_EMR",
"column": [
"*"
],
"encoding": "UTF-8",
"fieldDelimiter": ",",
"fileType": "text"
},
"name": "Reader",
"category": "reader"
},
{
"stepType": "hdfs",
"parameter": {
"path": "/emr_test/",
"fileName": "emr_test",
"datasource": "IDC_EMR",
"column": [
{
"name": "id",
"type": "int"
},
{
"name": "name",
"type": "string"
},
{
"name": "hobby",
"type": "string"
},
{
"name": "region",
"type": "string"
},
{
"name": "col5",
"type": "date"
}
],
"writeMode": "append",
"encoding": "UTF-8",
"fieldDelimiter": ",",
"fileType": "text"
},
"name": "Writer",
"category": "writer"
}
],
"version": "2.0",
"order": {
"hops": [
{
"from": "Reader",
"to": "Writer"
}
]
},
"setting": {
"errorLimit": {
"record": ""
},
"speed": {
"concurrent": 2,
"throttle": true,
"mbps": "10"
}
}
}
2.2 ECS MySQL -> MaxCompute
2.21 環境準備
- 購買獨享資料內建資源,使Dataworks可以通路您的雲資源,詳細文檔請參見: 本文以在華北2(北京)區域建立項目為例,同時啟動Dataworks的相關服務。經典網絡ECS上自建的資料源和DataWorks在同已區域為例。
2.22 資料采集
(1)以項目管理者身份登入DataWorks控制台,單擊相應工作空間後的進入資料內建。
(2)單擊左側導航欄中的資料源,即可跳轉至工作空間管理 > 資料源管理頁面。
(3)單擊資料源管理頁面右上角的新增資料源。
(4)在新增資料源對話框中,選擇資料源類型為MySQL。
(5)填寫MySQL資料源的各配置項。
MySQL資料源類型需要用連接配接串模式。
(6)單擊測試連通性。
(7)連通性測試通過後,單擊完成。
2.23 在MaxCompute中建立資料表,存放資料同步過來的資料。本次同步建表:test_tab。
2.24 建立資料同步任務
在DataWorks上建立資料同步節點,詳情請參見資料同步節點。
完成上述配置後,單擊運作即可。運作成功日志示例如下所示。
2.25 确認資料是否成功導入MaxCompute
3 雲上DB -> MaxCompute / EMR
【方案】直接建立雲上DB資料源,然後向導模式配置同步任務即可
3.1 RDS / Mongo -> MaxCompute
【建立RDS資料源】:
https://help.aliyun.com/knowledge_detail/137690.html【建立MongoDB資料源】:
https://help.aliyun.com/knowledge_detail/137675.html3.11 環境準備
新增MySQL資料源
(6) 以項目管理者身份登入DataWorks控制台,單擊相應工作空間後的進入資料內建。
(7) 單擊左側導航欄中的資料源,即可跳轉至工作空間管理 > 資料源管理頁面。
(8) 單擊資料源管理頁面右上角的新增資料源。
(9) 在新增資料源對話框中,選擇資料源類型為MySQL。
(10) 填寫MySQL資料源的各配置項。
MySQL資料源類型包括阿裡雲執行個體模式和連接配接串模式。
以新增MySQL > 阿裡雲執行個體模式類型的資料源為例。
(6) 單擊測試連通性。
(7) 連通性測試通過後,單擊完成。
新增MongoDB資料源
(1) 單擊左側導航欄中的資料源,即可跳轉至工作空間管理 > 資料源管理頁面。
(2) 單擊資料源管理頁面右上角的新增資料源。
(3) 在新增資料源對話框中,選擇資料源類型為MongoDB。
(4) 填寫MongoDB資料源的各配置項。
MongoDB資料源類型包括執行個體模式(阿裡雲資料源)和連接配接串模式。
執行個體模式(阿裡雲資料源):通常使用經典網絡類型,同地區的經典網絡可以連通,跨地區的經典網絡不保證可以連通。
連接配接串模式:通常使用公網類型,可能産生一定的費用。
以新增MongDB > 執行個體模式(阿裡雲資料源)類型的資料源,經典網絡為例。
(5) 單擊測試連通性。
(6)測試連通性通過後,單擊完成。
3.13 登入MongoDB的DMS控制台,本示例使用的資料庫為admin,集合為abc。
3.14 建立表
(1)在資料開發頁面打開建立的業務流程,右鍵單擊MaxCompute,選擇建立 > 表。
(2)在建立表對話框中,輸入表名,單擊送出。
此處需要建立2張表(msl_maxc和mon_maxc),分别存儲同步過來的MySQL日志資料和MongoDB日志資料。
3.15 建立資料同步任務
配置MongoDB的資料同步節點。(不支援向導模式,此例為腳本模式)
{
"type": "job",
"steps": [
{
"stepType": "mongodb",
"parameter": {
"datasource": "mon_maxc",
"column": [
{
"name": "store.bicycle.color",
"type": "document.string"
}
],
"collectionName": "abc"
},
"name": "Reader",
"category": "reader"
},
{
"stepType": "odps",
"parameter": {
"tableType": null,
"partition": "",
"truncate": true,
"datasource": "odps_first",
"column": [
"*"
],
"guid": null,
"emptyAsNull": false,
"table": "mon_maxc"
},
"name": "Writer",
"category": "writer"
}
],
"version": "2.0",
"order": {
"hops": [
{
"from": "Reader",
"to": "Writer"
}
]
},
"setting": {
"errorLimit": {
"record": ""
},
"speed": {
"concurrent": 2,
"throttle": false
}
}
}
3.15 完成上述配置後,單擊運作即可。運作成功日志示例如下所示。
确認資料是否成功導入MaxCompute