阿里雲的分析型數據庫(AnalyticDB)和E-MapReduce(簡稱EMR)在大數據場景下很是有用,本文將介紹如未嘗試打通兩個產品,將經過EMR中自帶的開源工具Sqoop來完成這個任務。html
在DMS For Analytic DB控制檯能夠新建數據庫和表。數據庫和表名分別是:mysql
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,這樣全部的節點都有了公網訪問能力(不推薦)。工具
你能夠登陸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