DataX实现HDFS与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=’\u0001’

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 ‘\u0001’ESCAPED BY ‘\\’ ”)

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

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

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

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

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

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

sql value=”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=”\u0001” ; 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\dbname\username\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”

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

时间: 2024-10-09 03:30:35

DataX实现HDFS与MySQL之间数据同步的相关文章

Goldengate完成Mysql到Mysql的数据同步

文档参考地址:http://blog.csdn.net/u010587433/article/details/49305019 需求: 使用Goldengate完成Mysql到Mysql的数据同步,源库的o2m-mc库同步到目标库的gmdc库,表名GMQDSJSP,换句话说,就是不同数据库之间表之间数据的同步 实验准备: 系统: CentOS 7.2 mysql版本 :  5.7-12 mysql-1 : 192.168.68.13     mysql-2:192.168.68.14 1.初始化

怎么通过 Mysql 实现数据同步呢?

怎么使 mysql 数据同步先假设有主机 A 和 B ( linux 系统),主机 A 的 IP 分别是 1.2.3.4 (当然,也可以是动态的),主机 B 的 IP 是 5.6.7.8 .两个主机都装上了php+Mysql ,现在操作的是主机 A 上的资料,如果另外一个主机 B 想跟 A 的资料进行同步,应该怎么做呢?  OK,我们现在就动手.  首先,如果要想两个主机间的资料同步,一种方法就是主机 A 往主机 B 送资料,另外一种主法就是主机 B 到主机 A 上拿资料,因为 A 的 IP 是

MySQL主从数据同步延时分析

一.MySQL数据库主从同步延迟                                                              要了解MySQL数据库主从同步延迟原理,我们先从MySQL的数据库主从复制原理说起: MySQL的主从复制都是单线程的操作,主库对所有DDL和DML产生的日志写进binlog,由于binlog是顺序写,所以效率很高. Slave的IO Thread线程从主库中bin log中读取取日志. Slave的SQL Thread线程将主库的DDL和D

使用tungsten将mysql的数据同步到hadoop

背景 线上有很多的数据库在运行,后台需要一个分析用户行为的数据仓库.目前比较流行的是mysql和hadoop平台. 现在的问题是,如何将线上的mysql数据实时的同步到hadoop中,以供分析.这篇文章就是利用tungsten-replicator来实现. 环境 由于tungsten-replicator依赖ruby和gem.需要安装 yum install ruby yum install rubygems gem install json 其中json模块可能因为gfw的原因,需要手动下载到

MySQL 主从数据同步配置

1:需要两台MySQL服务器,如:master:192.168.1.120slave:192.168.1.121确定MySQL的版本是相同的,可以登录到MySQL CLI界面,输入:select version();此实验MySQL版本是5.6的 2:主服务器要授权从服务器,登录到master的MySQL CLI,输入:grant all on *.* to "test"@"%" identified by '123456'; 3:配置主从服务器的bin-log日志

vuex 实现vue中多个组件之间数据同步以及数据共享。

前言 在一些项目中有很多数据状态之间要实现数据共享状态共享,例如购物车的数据.用户的登录状态等等.vue父元素是可以通过props向子元素传递参数,子元素也可以通用smit向父元素传递参数.但是像购物车这种在项目中多个位置的引用时就会变得很麻烦.例如项目中使用了三个购物车的组件,那么当其中一个组件的值发生改变时,就要通过自身告诉父组件我的值发生改变了,然后父组件在通知其他两个购物车组件值发生改变了,需要进行同步,这样就会变得很麻烦.而vue-v就可以帮助我们解决这个繁琐的问题.

使用 tungsten-replicator4 实现 mysql -- > monogo 数据同步

tungsten-replicator 技术交流群:376068310 一 规划主机: 192.168.67.128 #mysql主机 (事先安装好,安装步骤详见 前一篇博客 ) 192.168.67.129 #mongodb主机 (事先安装好,安装步骤详见 前一篇博客) 二 前置条件:(128和129) 1 创建tungsten用户 [[email protected] ~] useradd tungsten [[email protected] ~] passwd tungsten 2 将t

数据库中两张表之间的数据同步实现思路(增加、删除、更新)Mysql、sqlserver

分别创建增加.删除.更新的触发器(Trigger)来达到两张表之间数据同步的目的. 1:数据同步增加:如有两张表--A表和B表,创建触发器使当A表插入数据后B表也同步插入数据.其中B表插入数据的字段需要同A表中的字段相对应. CREATE TRIGGER 触发器名称 ON A表 AFTER INSERT AS BEGIN INSERT INTO B表(B表字段1,B表字段2,B表字段3) SELECT A表字段1,A表字段2,A表字段3 FROM INSERTED END 2.数据同步删除:如有

MYSQL数据库间同步数据

http://blog.csdn.net/swandy45/article/details/6982421 环境要求: Windows 操作系统 需要Mysql 3.23.15以后的版本. 假设数据库A为主机,数据库B为从机(A向B提供同步服务,即B中的数据来自A) A机器:IP=10.10.151.166 B机器:IP=10.10.151.156 下面看单向同步的配置步骤: 1         在机器A中建立一个新的数据库,sql语句: [sql] view plain copy CREATE