datax从mysql数据同步到hdfs,DataX实现HDFS与MySQL之间数据同步

bc3f9276acf88283a0569b9b9ef9ee92.png

在线QQ客服:1922638

专业的SQL Server、MySQL数据库同步软件

本案例仅适用于HDFS与MySQL之间的数据同步实现。

1、 在编译安装之前注意将release下面的setSharePath方法中的路径改为你自己的安装路径,笔者的为/home/woody/datax/libs.

2、 rpm打包之前,要修改*.spec文件中的路径,dataxpath,此外可能还需要注解掉部分赋值文件的代码,如cp –r ${OLDPWD}****.properties ****.conf,在engine.spec中的jar包复制语句也要注解掉。

3、 注意将hdfsreader/writer(这两个文件的路径也是需要改的)中复制hadoop-core.Jar包的语句中的该jar包改为你自己的hadoop版本的hadoop-core.jar包。

4、 Mysqlreader/writer只需要修改路径就可以。

5、 接下来主要涉及到field\line by一致性的问题:

我们按正常顺序来搞一下:

首先将mysql数据同步到hdfs,需要用到mysqlreader 和hdfswriter

Mysqlreader文件不需要修改

Hdfswriter文件中的field_spilt=’’

Line_spilt=’\n’,别的地方不需要确认,只需要确认这两个地方。

然后将hdfs数据同步到mysql,需要用到hdfsreader和mysqlwriter

Hdfsreader文件中field_spilt=’\t’,该项确认即可

Mysqlwriter文件中sep=’\001’(注意该项保持不变即可)

String sql=”LOAD DATA LOCAL INFILE ‘hdfs://localhost:9000/test_in/part’ “

Sql+=String.format(“DIELDS TERMINATED BY ‘’ESCAPED BY ‘\\’ “)

Sql+=String.format(“LINES TERMINATED BY ‘\n’”)

此外还要注意,mysqlwriterinputstreamadapter.java文件中的sep=’’

BREAK=‘\n’行分隔符,NULL=’\\N’ (NULL字面字符)这两项也值得注意。

以上东西确认完成之后就可以打包编译安装了。

接下来可以开始从mysql同步数据到hdfs了,要配置jobs下面mysqlreader_to_hdfswriter.xml文件:

ip\port\dbnameame\password\table这些都自己配置,where value=”1=1″;

sqlvalue=”select * from test_datax” ;columns value=”*”这三项确认下即可,

hadoop.job.ugivalue=”woody,supergroup” ; hadoop_conf的值写你自己的hadoop core-site.xml文件路径即可,dir value=”hdfs://localhost:9000/test_in” ;field_spilt value=”” ; line_spilt value=”\n” ; nullchar value=”\N” 这些项目确认即可。

然后就可以执行数据同步命令了。

接下来可以开始从hdfs同步数据到mysql了,要配置jobs下面hdfsreader_to_mysqlwriter.xml文件:

Hadoop.job.ugi\hadoop_conf\dir\field_spilt与以上相同即可,nullstring value=”\N” ;

col_filter一项注释掉。

ip\port\dbnameame\password\table这些与以上相同即可,pre value=”select * from test_datax” ; post value=”select * fromtest_datax” ; colorder value=”user_id,user_name” ;

set value=”user_id=user_id,user_name=user_name”

然后就可以执行数据同步命令了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值