datax工具在TBDS上同步数据方法

2020-12-07 21:11:38 浏览数 (1)

因为datax工具本身无法传入认证参数,所以若想在TBDS上使用datax同步数据则需要关闭相应的服务认证。

此文以mysql同步至hive举例

1.首先关闭hdfs认证,在8088界面修改HDFS配置

hadoop.security.authentication tbds 改成simple

2.关闭hive认证,在8088界面修改Hive配置

Enable Ranger for HIVE  去掉勾或者ranger-hive-plugin-enabled Yes改成No

3.停止HDFS服务,再启动HDFS服务(注意不要直接重启)

4.停止HIVE服务,再启动HIVE服务

5.对于HDFS和HIVE的配置更改后,有些服务也是需要重启的,对关联的服务进行重启

6.服务重启后,使用hadoop命令测试是否不需要认证即可访问

7.下载datax工具,并解压到TBDS任意一台服务器上,建议是portal节点

http://datax-opensource.oss-cn-hangzhou.aliyuncs.com/datax.tar.gz

8.创建datax数据同步配置文件mysql2hive.json

cat datax/job/mysql2hive.json

{ "job": { "content": [ { "reader": { "name": "mysqlreader", "parameter": { "column": ["id","username"], "connection": [ { "jdbcUrl": ["jdbc:mysql://tbds-x-x-x-x:3306/easytest"], "table": ["target_user"] } ], "password": "xxxx", "username": "root", "where": "" } }, "writer": { "name": "hdfswriter", "parameter": { "column": [ {"name":"id","type":"string"} {"name":"username","type":"string"} ], "compress": "",##为空则不压缩 "defaultFS": "hdfs://tbds-x-x-x-x:8020", "fieldDelimiter": "t", ###此处的分隔符一定要和建hive表时设置的分隔符一致,否则会导致数据为空 "fileName": "target_user", "fileType": "text",###根据存储的格式有text和orc "path": "/apps/hive/warehouse/easy.db/mysql2hive",###此路径需要提前建好,即需要提前建好hive表 "writeMode": "append" } } } ], "setting": { "speed": { "channel": "1" } } } }

9.建hive表

beeline -u jdbc:hive2://tbds-x-x-x-x:10000 -nadmin -pxxx

create table mysql3hive ( id int, username string ) ROW FORMAT DELIMITED FIELDS TERMINATED BY 't'

10.运行datax同步数据

因为将认证关闭了,所以使用hdfs用户运行工具

su hdfs

python datax.py ../job/mysql2hive.json

11.查看数据及数据文件

0 人点赞