亚洲欧美日韩综合系列在线_91精品人妻一区二区_欧美大肥婆一级特大AA片_九色91视频免费观看_亚洲综合国产精品_av中文字幕在线不卡_久久精品色综合网_看黄色视频的软件_无卡无码高清中文字幕码2024_亚洲欧美日韩天堂网

Hadoop數(shù)據(jù)遷移MaxCompute最佳實踐

來源:付帥 發(fā)布時間:2018-09-18 15:59:35 閱讀量:927

本文向您詳細介紹如何通過使用DataWorks數(shù)據(jù)同步功能,將Hadoop數(shù)據(jù)遷移到阿里云MaxCompute大數(shù)據(jù)計算服務(wù)上。

1.  環(huán)境準備

1.1 Hadoop集群搭建

進行數(shù)據(jù)遷移前,您需要保證自己的Hadoop集群環(huán)境正常。本文使用阿里云EMR服務(wù)自動化搭建Hadoop集群,詳細過程請參見https://help.aliyun.com/document_detail/35223.html?spm=a2c4g.11186623.6.557.20e219306ZJC9i。

本文使用的EMR Hadoop版本信息如下:

EMR版本: EMR-3.11.0

集群類型: HADOOP

軟件信息: HDFS2.7.2 / YARN2.7.2 / Hive2.3.3 / Ganglia3.7.2 / Spark2.2.1 / HUE4.1.0 / Zeppelin0.7.3 / Tez0.9.1 / Sqoop1.4.6 / Pig0.14.0 / ApacheDS2.0.0 / Knox0.13.0

Hadoop集群使用經(jīng)典網(wǎng)絡(luò),區(qū)域為華東1(杭州),主實例組ECS計算資源配置公網(wǎng)及內(nèi)網(wǎng)IP,高可用選擇為否(非HA模式),具體配置如下所示。

1.2 MaxCompute

請參考https://help.aliyun.com/document_detail/58226.html?spm=a2c4g.11174283.6.570.64d4590eaIbcxH

開通MaxCompute服務(wù)并創(chuàng)建好項目,本文中在華東1(杭州)區(qū)域創(chuàng)建項目bigdata_DOC,同時啟動DataWorks相關(guān)服務(wù),如下所示。

2.  數(shù)據(jù)準備

2.1 Hadoop集群創(chuàng)建測試數(shù)據(jù)

進入EMR Hadoop集群控制臺界面,使用交互式工作臺,新建交互式任務(wù)doc。本例中HIVE建表語句:

CREATE TABLE IF NOT EXISTS hive_doc_good_sale(

   create_time timestamp,

   category STRING,

   brand STRING,

   buyer_id STRING,

   trans_num BIGINT,

   trans_amount DOUBLE,

   click_cnt BIGINT

   )

   PARTITIONED BY (pt string) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' lines terminated by '\n'

選擇運行,觀察到Query executed successfully提示則說明成功在EMR Hadoop集群上創(chuàng)建了測試用表格hive_doc_good_sale,如下圖所示。

插入測試數(shù)據(jù),您可以選擇從OSS或其他數(shù)據(jù)源導(dǎo)入測試數(shù)據(jù),也可以手動插入少量的測試數(shù)據(jù)。本文中手動插入數(shù)據(jù)如下:

insert into hive_doc_good_sale PARTITION(pt =1 ) values('2018-08-21','外套','品牌A','lilei',3,500.6,7),('2018-08-22','生鮮','品牌B','lilei',1,303,8),('2018-08-22','外套','品牌C','hanmeimei',2,510,2),(2018-08-22,'衛(wèi)浴','品牌A','hanmeimei',1,442.5,1),('2018-08-22','生鮮','品牌D','hanmeimei',2,234,3),('2018-08-23','外套','品牌B','jimmy',9,2000,7),('2018-08-23','生鮮','品牌A','jimmy',5,45.1,5),('2018-08-23','外套','品牌E','jimmy',5,100.2,4),('2018-08-24','生鮮','品牌G','peiqi',10,5560,7),('2018-08-24','衛(wèi)浴','品牌F','peiqi',1,445.6,2),('2018-08-24','外套','品牌A','ray',3,777,3),('2018-08-24','衛(wèi)浴','品牌G','ray',3,122,3),('2018-08-24','外套','品牌C','ray',1,62,7) ;

完成插入數(shù)據(jù)后,您可以使用select * from hive_doc_good_sale where pt =1;語句檢查Hadoop集群表中是否已存在數(shù)據(jù)可用于遷移。

2.2 利用DataWorks新建目標表

在管理控制臺,選擇對應(yīng)的MaxCompute項目,點擊進入數(shù)據(jù)開發(fā)頁面,點擊新建表,如下所示。

在彈框中輸入SQL建表語句,本例中使用的建表語句如下:

CREATE TABLE IF NOT EXISTS hive_doc_good_sale(

   create_time string,

   category STRING,

   brand STRING,

   buyer_id STRING,

   trans_num BIGINT,

   trans_amount DOUBLE,

   click_cnt BIGINT

   )

   PARTITIONED BY (pt string) ;

在建表過程中,需要考慮到HIVE數(shù)據(jù)類型與MaxCompute數(shù)據(jù)類型的映射,當(dāng)前數(shù)據(jù)映射關(guān)系可參見 https://help.aliyun.com/document_detail/54081.html?spm=a2c4e.11153940.blogcont630231.16.587919b0KIgCfQ 

由于本文使用DataWorks進行數(shù)據(jù)遷移,而DataWorks數(shù)據(jù)同步功能當(dāng)前暫不支持timestamp類型數(shù)據(jù),因此在DataWorks建表語句中,將create_time設(shè)置為string類型。

上述步驟同樣可通過odpscmd命令行工具完成,命令行工具安裝和配置請參考https://help.aliyun.com/document_detail/27804.html?spm=a2c4g.11186623.6.572.e66b5a41WP2nyj ,執(zhí)行過程如下所示。

注意:考慮到部分HIVE與MaxCompute數(shù)據(jù)類型的兼容問題,建議在odpscmd客戶端上執(zhí)行以下命令。

set odps.sql.type.system.odps2=true;set odps.sql.hive.compatible=true;

完成建表后,可在DataWorks數(shù)據(jù)開發(fā)>表查詢一欄查看到當(dāng)前創(chuàng)建的MaxCompute上的表,如下所示。

3.  數(shù)據(jù)同步

3.1 新建自定義資源組

由于MaxCompute項目所處的網(wǎng)絡(luò)環(huán)境與Hadoop集群中的數(shù)據(jù)節(jié)點(data node)網(wǎng)絡(luò)通常不可達,我們可通過自定義資源組的方式,將DataWorks的同步任務(wù)運行在Hadoop集群的Master節(jié)點上(Hadoop集群內(nèi)Master節(jié)點和數(shù)據(jù)節(jié)點通??蛇_)。

3.1.1 查看Hadoop集群datanode

在EMR控制臺上首頁/集群管理/集群/主機列表頁查看,如下圖所示,通常非HA模式的EMR上Hadoop集群的master節(jié)點主機名為 emr-header-1,datanode主機名為emr-worker-X。

您也可以通過點擊上圖中Master節(jié)點的ECS ID,進入ECS實例詳情頁,通過點擊遠程連接進入ECS,通過 hadoop dfsadmin –report命令查看datenode,如下圖所示。

由上圖可以看到,在本例中,datanode只具有內(nèi)網(wǎng)地址,很難與DataWorks默認資源組互通,所以我們需要設(shè)置自定義資源組,將master node設(shè)置為執(zhí)行DataWorks數(shù)據(jù)同步任務(wù)的節(jié)點。

3.1.2 新建自定義資源組

進入DataWorks數(shù)據(jù)集成頁面,選擇資源組,點擊新增資源組,如下圖所示。關(guān)于新增調(diào)度資源組的詳細信息,請參考新增調(diào)度資源

在添加服務(wù)器步驟中,需要輸入ECS UUID和機器IP等信息(對于經(jīng)典網(wǎng)絡(luò)類型,需輸入服務(wù)器名稱,對于專有網(wǎng)絡(luò)類型,需輸入服務(wù)器UUID。目前僅DataWorks V2.0 華東2區(qū)支持經(jīng)典網(wǎng)絡(luò)類型的調(diào)度資源添加,對于其他區(qū)域,無論您使用的是經(jīng)典網(wǎng)絡(luò)還是專有網(wǎng)絡(luò)類型,在添加調(diào)度資源組時都請選擇專有網(wǎng)絡(luò)類型),機器IP需填寫master node公網(wǎng)IP(內(nèi)網(wǎng)IP可能不可達)。ECS的UUID需要進入master node管理終端,通過命令dmidecode | grep UUID獲?。ㄈ绻膆adoop集群并非搭建在EMR環(huán)境上,也可以通過該命令獲?。?,如下所示。

完成添加服務(wù)器后,需保證master node與DataWorks網(wǎng)絡(luò)可達,如果您使用的是ECS服務(wù)器,需設(shè)置服務(wù)器安全組。如果您使用的內(nèi)網(wǎng)IP互通,可參考https://help.aliyun.com/document_detail/72978.html?spm=a2c4g.11186623.6.580.6a294f79DmqM6f設(shè)置。如果您使用的是公網(wǎng)IP,可直接設(shè)置安全組公網(wǎng)出入方向規(guī)則,本文中設(shè)置公網(wǎng)入方向放通所有端口(實際應(yīng)用場景中,為了您的數(shù)據(jù)安全,強烈建議設(shè)置詳細的放通規(guī)則),如下圖所示。

完成上述步驟后,按照提示安裝自定義資源組agent,觀察到當(dāng)前狀態(tài)為可用,說明新增自定義資源組成功。

如果狀態(tài)為不可用,您可以登錄master node,使用tail –f/home/admin/alisatasknode/logs/heartbeat.log命令查看DataWorks與master node之間心跳報文是否超時,如下圖所示。

3.2 新建數(shù)據(jù)源

關(guān)于DataWorks新建數(shù)據(jù)源詳細步驟,請參見https://help.aliyun.com/knowledge_list/72788.html?spm=a2c4g.11186623.6.573.7d882b59eqdXhi

DataWorks新建項目后,默認設(shè)置自己為數(shù)據(jù)源odps_first。因此我們只需添加Hadoop集群數(shù)據(jù)源:在DataWorks數(shù)據(jù)集成頁面,點擊數(shù)據(jù)源>新增數(shù)據(jù)源,在彈框中選擇HDFS類型的數(shù)據(jù)源。

在彈出窗口中填寫數(shù)據(jù)源名稱及defaultFS。對于EMR Hadoop集群而言,如果Hadoop集群為HA集群,則此處地址為hdfs://emr-header-1的IP:8020,如果Hadoop集群為非HA集群,則此處地址為hdfs://emr-header-1的IP:9000。在本文中,emr-header-1與DataWorks通過公網(wǎng)連接,因此此處填寫公網(wǎng)IP并放通安全組。

完成配置后,點擊測試連通性,如果提示“測試連通性成功”,則說明數(shù)據(jù)源添加正常。

注意:如果EMR Hadoop集群設(shè)置網(wǎng)絡(luò)類型為專有網(wǎng)絡(luò),則不支持連通性測試。

3.3 配置數(shù)據(jù)同步任務(wù)

在DataWorks數(shù)據(jù)集成頁面點擊同步任務(wù),選擇新建>腳本模式,在導(dǎo)入模板彈窗選擇數(shù)據(jù)源類型如下:

完成導(dǎo)入模板后,同步任務(wù)會轉(zhuǎn)入腳本模式,本文中配置腳本如下,相關(guān)解釋請參見https://help.aliyun.com/document_detail/74304.html?spm=a2c4g.11186631.6.576.2c506aaczJB2i7

在配置數(shù)據(jù)同步任務(wù)腳本時,需注意DataWorks同步任務(wù)和HIVE表中數(shù)據(jù)類型的轉(zhuǎn)換如下:

在Hive表中的數(shù)據(jù)類型

DataX/DataWorks 內(nèi)部類型

TINYINT,SMALLINT,INT,BIGINT

Long

FLOAT,DOUBLE,DECIMAL

Double

String,CHAR,VARCHAR

String

BOOLEAN

Boolean

Date,TIMESTAMP

Date

Binary

Binary

詳細代碼如下:

{

  "configuration": {

    "reader": {

      "plugin": "hdfs",

      "parameter": {

        "path": "/user/hive/warehouse/hive_doc_good_sale/",

        "datasource": "HDFS1",

        "column": [

          {

            "index": 0,

            "type": "string"

          },

          {

            "index": 1,

            "type": "string"

          },

          {

            "index": 2,

            "type": "string"

          },

          {

            "index": 3,

            "type": "string"

          },

          {

            "index": 4,

            "type": "long"

          },

          {

            "index": 5,

            "type": "double"

          },

          {

            "index": 6,

            "type": "long"

          }

        ],

        "defaultFS": "hdfs://121.199.11.138:9000",

        "fieldDelimiter": ",",

        "encoding": "UTF-8",

        "fileType": "text"

      }

    },

    "writer": {

      "plugin": "odps",

      "parameter": {

        "partition": "pt=1",

        "truncate": false,

        "datasource": "odps_first",

        "column": [

          "create_time",

          "category",

          "brand",

          "buyer_id",

          "trans_num",

          "trans_amount",

          "click_cnt"

        ],

        "table": "hive_doc_good_sale"

      }

    },

    "setting": {

      "errorLimit": {

        "record": "1000"

      },

      "speed": {

        "throttle": false,

        "concurrent": 1,

        "mbps": "1",

        "dmu": 1

      }

    }

  },

  "type": "job",

  "version": "1.0"

}

其中,path參數(shù)為數(shù)據(jù)在Hadoop集群中存放的位置,您可以在登錄master node后,使用hdfs dfs –ls /user/hive/warehouse/hive_doc_good_sale命令確認。對于分區(qū)表,您可以不指定分區(qū),DataWorks數(shù)據(jù)同步會自動遞歸到分區(qū)路徑,如下圖所示。

完成配置后,點擊運行。如果提示任務(wù)運行成功,則說明同步任務(wù)已完成。如果運行失敗,可通過復(fù)制日志進行進一步排查。

4.  驗證結(jié)果

在DataWorks數(shù)據(jù)開發(fā)/表查詢頁面,選擇表hive_doc_good_sale后,點擊數(shù)據(jù)預(yù)覽可查看HIVE數(shù)據(jù)是否已同步到MaxCompute。您也可以通過新建一個table查詢?nèi)蝿?wù),在任務(wù)中輸入腳本select * FROM   hive_doc_good_sale where pt =1;后,點擊運行來查看表結(jié)果,如下圖所示。

當(dāng)然,您也可以通過在odpscmd命令行工具中輸入select * FROM   hive_doc_good_sale where pt =1;查詢表結(jié)果。


分享:
評論:
你還沒有登錄,請先