云原生数据仓库AnalyticDB MySQL版支持通过DLA导入Hadoop数据。本文介绍相关操作步骤。
前提条件
- 1.配置网络环境
- DLA服务可购买在您的Hadoop或AnalyticDB MySQL的任意VPC内,故配置他们之间连通性首先需要将Hadoop和AnalyticDB MySQL的VPC网络打通,使Hadoop和AnalyticDB MySQL之间能够互相访问。
说明 验证是否打通可用一端ECS访问另一端ECS,如telnet命令等。无论是否互通,都需要将Hadoop交换机IP添加到AnalyticDB MySQL白名单中。
- 打通Hadoop和AnalyticDB MySQL的VPC网络。
详情请参见建立VPC到VPC的连接。
- 查看Hadoop集群交换机和安全组信息。
登录E-MapReduce控制台,查看集群基础信息。在网络信息中查看Hadoop集群的交换机和安全组信息。
- 打通Hadoop和AnalyticDB MySQL的VPC网络。
- 2.生成YAML配置文件
- 传输映射关系配置在YAML文件中,下面说明哪些信息需要写入YAML文件及如何获取这些信息。目前支持单个Hadoop Parquet文件到AnalyticDB MySQL单张表的数据传输服务。
YAML文件配置文件模版如下:
marmaray: adb: column_mapping: username: password: port: host: database: tablename: Hadoop: yarn_queue: fs.defaultFS: hive: data_path: job_name:
参数说明:
- 目的端AnalyticDB MySQL信息
- column_mapping:列名映射。
parquet文件schema对应字段和目标ADB数据库表字段名映射关系,映射关系用
示例:|
表示,映射对之间用,
隔开。Parquet文件schema有三个字段,分别为a、b、c,对应ADB表中a1、b1、c1三个字段。列名映射如下:
a|a1,b|b1,c|c1
- username:数据库用户名。
- password:用户名对应密码。
- port:数据库端口号。
- host:数据库主机地址。
- database:数据库名称。
- tablename:表名称。
- column_mapping:列名映射。
- 源端Hadoop集群信息
- yarn_queue:Hadoop集群yarn队列名。
- fs.defaultFS:HDOOP_CONF_DIR。DLA无法自动获取用户Hadoop集群上HDOOP_CONF_DIR中的配置,所以需要您自行配置读取Hadoop相关的参数。分两种情况:
- 非高可用节点:提供绝对路径名hdfs://<master_ip>:9000/path/to/file
master_ip
获取方式:- 登录E-MapReduce控制台,单击导航栏中的主机列表。
- 找到Master角色对应的IP信息。
- 高可用节点:需要获取HDOOP_CONF_DIR等配置,详情请参见Hadoop。
- 非高可用节点:提供绝对路径名hdfs://<master_ip>:9000/path/to/file
- data_path:Parquet文件在Hadoop中的路径。
- job_name:作业名称。
YAML配置文件样例:
marmaray: adb: column_mapping: a|b,c|d,e|f username: xiaoer password: password port: 3306 host: am-xxxx.aliyuncs.com database: test_db tablename: test_table Hadoop: yarn_queue: default fs.defaultFS: hdfs://172.123.XX.XX:9000 hive: data_path: /tmp/parquet job_name: testParquetToADB
- 目的端AnalyticDB MySQL信息
- 3.上传YAML配置文件
- 生成好YAML配置文件后,请上传到OSS云存储空间中。
操作步骤
传输服务运行在DLA上,需拉取Marmaray JAR包并加载用户传输映射配置。用户只需要将传输映射配置和Marmaray jar运行模版放在OSS目录下,并将OSS地址填写在DLA运行参数中即可。