阿里雲AnalyticDB數據導出到E-MapReduce實踐

阿里雲的分析型數據庫(AnalyticDB)和E-MapReduce(簡稱EMR)在大數據場景下很是有用,本文將介紹如未嘗試打通兩個產品,將經過EMR中自帶的開源工具Sqoop來完成這個任務。html

AnalyticDB數據準備

DMS For Analytic DB控制檯能夠新建數據庫和表。數據庫和表名分別是:mysql

  • 數據庫:test_emr_0
  • 數據表:test1(注意新建表的時候選擇更新方式爲「實時更新」,這樣就能夠在DMS裏增長數據)
CREATE TABLE test_emr_0.test1 (
a varchar NOT NULL , 
b int NOT NULL , 
primary key (a)
) 
PARTITION BY HASH KEY(a) PARTITION NUM 100
TABLEGROUP test_group
OPTIONS(UPDATETYPE='realtime');

插入數據sql

insert into test1 (a, b) values ('ads', 1);
insert into test1 (a, b) values ('bds', 2);
insert into test1 (a, b) values ('emr', 3);
insert into test1 (a, b) values ('oss', 4);
insert into test1 (a, b) values ('hadoop', 5);

注意:由於Sqoop工具訪問AnalyticDB時使用更加通用的SQL格式,因此默認的LM計算引擎並不適合。須要你提工單將分析型數據庫的默認引擎修改爲MPP數據庫

網絡環境準備

AnalyticDB 默承認以用公網訪問,好比剛纔新建的數據庫可用以下地址訪問到:test-emr-0-6e2c83b1.cn-hangzhou-1.ads.aliyuncs.com。可是EMR環境只有Master節點能夠訪問公網,爲了使用Sqoop工具(Sqoop做業運行在Worker節點上),須要使用AnalyticDB VPC網絡功能,打通EMR VPC網絡和AnalyticDB的網絡環境。網絡

臨時方案也能夠爲每臺EMR worker節點綁定彈性VIP,這樣全部的節點都有了公網訪問能力(不推薦)。工具

從AnalyticDB導入數據到Hive

你能夠登陸EMR Master節點,也可使用EMR執行計劃做業啓動Sqoop程序。oop

下面的命令將AnalyticDB中的test1表導入到EMR Hive中同名表:大數據

sqoop import 
  --connect jdbc:mysql://test-emr-0-6e2c83b1.cn-hangzhou-1.ads.aliyuncs.com:10152/test_emr_0 
  --username <access-key-id> --password <access-key-secret> 
  --table test1 --fields-terminated-by '\001' 
  --hive-import --target-dir /user/hive/warehouse/test1 
  --hive-table test1 --columns a,b --split-by a

看一下Hive表的導入結果:阿里雲

$ hive -e "select * from test1"
Logging initialized using configuration in file:/etc/ecm/hive-conf-2.3.2-1.0.1/hive-log4j2.properties Async: true
OK
ads     1
bds     2
hadoop  5
emr     3
oss     4
Time taken: 3.602 seconds, Fetched: 5 row(s)

總結

本文介紹了AnalyticDB導出數據到EMR Hive表的過程,但願對你有幫助。spa

閱讀原文http://click.aliyun.com/m/40830/

相關文章
相關標籤/搜索