【组件安装】DataX3.0源码安装——GitHub最新matser及JVM内存实践
DataX安装及JVM内存调优
一、前言
【写在最前】内容更新范围,欢迎交流进步!
最早参照下面两篇博客的DataX包的下载地址安装:https://blog.csdn.net/a924382407/article/details/120952339、https://blog.csdn.net/qq_43523503/article/details/114424420
但是安装完之后,集成MongoDB数据,出现Hive数据错位现象——MongoDB缺失值的字段,被下个字段值补充。查看源码,处理了这种情况,怀疑安装包问题,所以编译源码安装,写这篇文章供大家交流!
写完文章发现github下载地址修改为:https://datax-opensource.oss-cn-hangzhou.aliyuncs.com/202210/datax.tar.gz(经测,以上bug不存在),不管怎样,这篇文章我水定了。
二、编译安装
2.1 克隆
hadoop@testmaster:~/app$ git clone https://github.com/alibaba/DataX.git
2.2 编译
hadoop@testmaster:~/app$ cd DataX/
hadoop@testmaster:~/app/DataX$ mvn -U clean package assembly:assembly -Dmaven.test.skip=true
出现下列信息,编译成功,如遇编译报错,百度安装对应依赖即可。
2.3 部署
hadoop@testmaster:~/app/DataX/target$ scp datax.tar.gz testslave01:/home/hadoop/app/
hadoop@testmaster:~/app/DataX/target$ scp datax.tar.gz testslave02:/home/hadoop/app/
hadoop@testmaster:~/app/DataX/target$ scp datax.tar.gz testslave03:/home/hadoop/app/
# 切换机器,解压安装
hadoop@testslave01:~/app$ tar -xzvf datax.tar.gz -C ../software/
hadoop@testslave02:~/app$ tar -xzvf datax.tar.gz -C ../software/
hadoop@testslave03:~/app$ tar -xzvf datax.tar.gz -C ../software/
2.4 测试
hadoop@testslave03:~/app$ cd ../software/datax
hadoop@testslave03:~/software/datax$ pwd
/home/hadoop/software/datax
hadoop@testslave03:~/software/datax$ ./bin/datax.py ./job/job.json
安装成功,出现如上报错,可以按https://blog.csdn.net/chrisy521/article/details/122033748修改对应值,作者不建议修改,不影响DolphinScheduler调度任务使用,json脚本内设置bps限速参数即可。
三、JVM内存实践
hadoop@testslave03:~/software/datax$ vim ./bin/datax.py
# 按如下规则修改内存,分发到其他节点
hadoop@testslave03:~/software/datax$ scp ./bin/datax.py testslave02:/home/hadoop/software/datax/bin/
hadoop@testslave03:~/software/datax$ scp ./bin/datax.py testslave01:/home/hadoop/software/datax/bin/
默认最大堆内存是1g,实践经验:最大堆内存跟channel强相关,但也跟抽取数据库源端CPU、内存相关,最优的channel个数与CPU核数相同,一个channel对应512M内存,依据最大channel数,设置最大堆内存大小=channelNum * 512M。(抛开带宽等其他条件来说)
四、预告
下篇文章讲解修改mongodbreader的源码,新增两个数据类型,以支持字段document类型转json及array< document >类型转array< json >,从而支持Hive的get_json_object函数对数据的解析。
目前DataX支持转换的MongoDB数据类型:
DataX 内部类型 | MongoDB 数据类型 |
---|---|
Long | int, Long |
Double | double |
String | string, array |
Date | date |
Boolean | boolean |
Bytes | bytes |
更多推荐
所有评论(0)