天天看點

大資料搬站step by stepIDC / ECS自建和雲資料庫之間的資料搬站

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.html

1.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

大資料搬站step by stepIDC / ECS自建和雲資料庫之間的資料搬站

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

EMR的Hadoop資料源連接配接

大資料搬站step by stepIDC / ECS自建和雲資料庫之間的資料搬站
大資料搬站step by stepIDC / ECS自建和雲資料庫之間的資料搬站

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"
        }
    }
}           

配置獨享資源組:

大資料搬站step by stepIDC / ECS自建和雲資料庫之間的資料搬站

2.16 腳本按需求配置并儲存,運作節點:

大資料搬站step by stepIDC / ECS自建和雲資料庫之間的資料搬站

檢視EMR叢集hdfs資料是否同步成功:hadoop fs -cat /emr_test/*

大資料搬站step by stepIDC / ECS自建和雲資料庫之間的資料搬站

1.2 IDC Kafka -> EMR Kafka

【Kafka讀取】:

https://help.aliyun.com/knowledge_detail/137745.html

【Kafka寫入】

https://help.aliyun.com/knowledge_detail/145510.html

1.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.html

1.31  環境準備

  • 大資料計算服務MaxCompute,詳細文檔請參見: MaxCompute
  • 購買獨享資料內建資源,使獨享資料資源可以通路您IDC的資料源,詳細文檔請參見:

1.32  資料采集

本文通過開通資料網關資源,使用DMS來管理IDC的MySQL。通過資料內建-資料源-新增資料源MySQL JDBC Url連接配接。

1.33 在MaxCompute中建立資料表存放同步過來的資料。本執行個體建表:idc_my。

1.34  資料同步

配置MySQL資料同步節點

大資料搬站step by stepIDC / ECS自建和雲資料庫之間的資料搬站

配置資料內建任務時,将預設資源組配置為需要的獨享資料內建資源。

通過向導模式配置任務時,在通道控制 > 任務資源組下拉框中,選擇相應的獨享資料內建資源。

大資料搬站step by stepIDC / ECS自建和雲資料庫之間的資料搬站
大資料搬站step by stepIDC / ECS自建和雲資料庫之間的資料搬站

确認目前節點的配置無誤後,單擊左上角的儲存。

關閉目前任務,傳回業務流程配置面闆。

1.35 運作業務流程

右鍵單擊rds_資料同步節點,選擇檢視日志。

當日志中出現如下字樣,表示同步節點運作成功,并成功同步資料。

大資料搬站step by stepIDC / ECS自建和雲資料庫之間的資料搬站

然後在資料開發頁面,單擊左側導航欄中的臨時查詢,進入臨時查詢面闆,再确認資料是否已經導入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資料源連接配接

大資料搬站step by stepIDC / ECS自建和雲資料庫之間的資料搬站

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

大資料搬站step by stepIDC / ECS自建和雲資料庫之間的資料搬站
大資料搬站step by stepIDC / ECS自建和雲資料庫之間的資料搬站
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"
        }
    }
}           
大資料搬站step by stepIDC / ECS自建和雲資料庫之間的資料搬站
大資料搬站step by stepIDC / ECS自建和雲資料庫之間的資料搬站
大資料搬站step by stepIDC / ECS自建和雲資料庫之間的資料搬站

2.2 ECS MySQL -> MaxCompute

2.21 環境準備

  • 購買獨享資料內建資源,使Dataworks可以通路您的雲資源,詳細文檔請參見: 本文以在華北2(北京)區域建立項目為例,同時啟動Dataworks的相關服務。經典網絡ECS上自建的資料源和DataWorks在同已區域為例。

2.22 資料采集

(1)以項目管理者身份登入DataWorks控制台,單擊相應工作空間後的進入資料內建。

(2)單擊左側導航欄中的資料源,即可跳轉至工作空間管理 > 資料源管理頁面。

(3)單擊資料源管理頁面右上角的新增資料源。

(4)在新增資料源對話框中,選擇資料源類型為MySQL。

(5)填寫MySQL資料源的各配置項。 

MySQL資料源類型需要用連接配接串模式。

大資料搬站step by stepIDC / ECS自建和雲資料庫之間的資料搬站

(6)單擊測試連通性。

(7)連通性測試通過後,單擊完成。

2.23 在MaxCompute中建立資料表,存放資料同步過來的資料。本次同步建表:test_tab。

2.24 建立資料同步任務

在DataWorks上建立資料同步節點,詳情請參見資料同步節點。

大資料搬站step by stepIDC / ECS自建和雲資料庫之間的資料搬站
大資料搬站step by stepIDC / ECS自建和雲資料庫之間的資料搬站
大資料搬站step by stepIDC / ECS自建和雲資料庫之間的資料搬站

完成上述配置後,單擊運作即可。運作成功日志示例如下所示。

大資料搬站step by stepIDC / ECS自建和雲資料庫之間的資料搬站

2.25  确認資料是否成功導入MaxCompute

大資料搬站step by stepIDC / ECS自建和雲資料庫之間的資料搬站

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.html

3.11  環境準備

  • 3.12 資料采集

新增MySQL資料源

(6) 以項目管理者身份登入DataWorks控制台,單擊相應工作空間後的進入資料內建。

(7) 單擊左側導航欄中的資料源,即可跳轉至工作空間管理 > 資料源管理頁面。

(8) 單擊資料源管理頁面右上角的新增資料源。

(9) 在新增資料源對話框中,選擇資料源類型為MySQL。

(10) 填寫MySQL資料源的各配置項。

MySQL資料源類型包括阿裡雲執行個體模式和連接配接串模式。

以新增MySQL > 阿裡雲執行個體模式類型的資料源為例。

大資料搬站step by stepIDC / ECS自建和雲資料庫之間的資料搬站
大資料搬站step by stepIDC / ECS自建和雲資料庫之間的資料搬站

(6)  單擊測試連通性。

(7)  連通性測試通過後,單擊完成。

新增MongoDB資料源

(1) 單擊左側導航欄中的資料源,即可跳轉至工作空間管理 > 資料源管理頁面。

(2) 單擊資料源管理頁面右上角的新增資料源。

(3) 在新增資料源對話框中,選擇資料源類型為MongoDB。

(4) 填寫MongoDB資料源的各配置項。

MongoDB資料源類型包括執行個體模式(阿裡雲資料源)和連接配接串模式。

執行個體模式(阿裡雲資料源):通常使用經典網絡類型,同地區的經典網絡可以連通,跨地區的經典網絡不保證可以連通。

連接配接串模式:通常使用公網類型,可能産生一定的費用。

以新增MongDB > 執行個體模式(阿裡雲資料源)類型的資料源,經典網絡為例。

大資料搬站step by stepIDC / ECS自建和雲資料庫之間的資料搬站
大資料搬站step by stepIDC / ECS自建和雲資料庫之間的資料搬站

(5) 單擊測試連通性。

(6)測試連通性通過後,單擊完成。

3.13 登入MongoDB的DMS控制台,本示例使用的資料庫為admin,集合為abc。

大資料搬站step by stepIDC / ECS自建和雲資料庫之間的資料搬站

3.14 建立表

(1)在資料開發頁面打開建立的業務流程,右鍵單擊MaxCompute,選擇建立 > 表。

(2)在建立表對話框中,輸入表名,單擊送出。

此處需要建立2張表(msl_maxc和mon_maxc),分别存儲同步過來的MySQL日志資料和MongoDB日志資料。

3.15 建立資料同步任務

大資料搬站step by stepIDC / ECS自建和雲資料庫之間的資料搬站
大資料搬站step by stepIDC / ECS自建和雲資料庫之間的資料搬站

配置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 完成上述配置後,單擊運作即可。運作成功日志示例如下所示。

大資料搬站step by stepIDC / ECS自建和雲資料庫之間的資料搬站

确認資料是否成功導入MaxCompute

大資料搬站step by stepIDC / ECS自建和雲資料庫之間的資料搬站

繼續閱讀