DATAX 数据同步 My SQL->Hive
安装
DATAX官方地址:https://github.com/alibaba/DataX
DATAX-WEB官方地址:https://github.com/WeiYe-Jing/datax-web
注:官方已经给了很详细的安装文档。这里不过多解释。
遇到的问题
# 在跑job的时候遇到如下问题
/usr/bin/python: can't find '__main__' module in
# 解决办法
vim {datax-web}/modules/datax-executor/bin/datax-executor.sh
# 找到对应的
JAVA_OPTS=${JAVA_OPTS}" -Dserver.port="${SERVER_PORT}" -Ddata.path="${DATA_PATH}" -Dexecutor.port="${EXECUTOR_PORT}" -Djson.path="${JSON_PATH}" -Dpython.path="${PYTHON_PATH}" -Ddatax.admin.port="${DATAX_ADMIN_PORT}
# 修改如下
JAVA_OPTS=${JAVA_OPTS}" -Dserver.port="${SERVER_PORT}" -Ddata.path="${DATA_PATH}" -Dexecutor.port="${EXECUTOR_PORT}" -Djson.path="${JSON_PATH}" -Dpython.path="{datax}/bin/datax.py" -Ddatax.admin.port="${DATAX_ADMIN_PORT}
# 最后重启datax-web
{datax-web}/bin/stop-all.sh
{datax-web}/bin/start-all.sh
问题二
# DataX报错解决办法 - 在有总bps限速条件下,单个channel的bps值不能为空,也不能为非正数
# 修改datax/conf/core.json
# 修改core -> transport -> channel -> speed -> "byte": 2000000
"core": {
"dataXServer": {
"address": "http://localhost:7001/api",
"timeout": 10000,
"reportDataxLog": false,
"reportPerfLog": false
},
"transport": {
"channel": {
"class": "com.alibaba.datax.core.transport.channel.memory.MemoryChannel",
"speed": {
"byte": 2000000,
"record": -1
},
"flowControlInterval": 20,
"capacity": 512,
"byteCapacity": 67108864
},
"exchanger": {
"class": "com.alibaba.datax.core.plugin.BufferedRecordExchanger",
"bufferSize": 32
}
},
}
mysqlToHiveDemo
- 先新建一个项目
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CWuYJXIV-1679469085149)(./pic/1.jpg)]](/https://i-blog.csdnimg.cn/blog_migrate/46842545d047185cd5b9807e507804f7.png)
- 增加数据源
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9gr66ods-1679469085150)(./pic/2.jpg)]](/https://i-blog.csdnimg.cn/blog_migrate/e15486e7d3079b149624f1f0b8955740.png)
- 新构建任务
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-R5vEHYGV-1679469085150)(./pic/3.jpg)]](/https://i-blog.csdnimg.cn/blog_migrate/a5ca1b12dd8193a8246ee2f8bd4df6ff.png)
- 执行任务
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rDNvq7NU-1679469085151)(./pic/4.jpg)]](/https://i-blog.csdnimg.cn/blog_migrate/15c1c785979dcdbf4dcd02e2cbf4eefd.png)
-
查看日志
图略。
注:这里说明一下分区表如何操作(这里演示静态分区)。
- 静态分区
create table student2(
commentId int,
newsId int,
content String,
userIP string,
commentDate date
)
partitioned by (day string)
row format delimited fields terminated by '\t';
alter table student2 add partition (day=20230322);
执行脚本的时候修改如下
# 相关配置文件
"path": "/user/hive/warehouse/test.db/student2/day=20230322"
结果如下所示
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-U7e0cuqu-1679469085151)(./pic/5.jpg)]](/https://i-blog.csdnimg.cn/blog_migrate/bcf5d63ca1dcbda238433411b5e91b92.png)
文章讲述了在使用DATAX进行数据同步从MySQL到Hive时遇到的两个主要问题及其解决方案。第一个问题是Python路径配置不正确,通过修改datax-executor.sh脚本得以解决。第二个问题是DataX报错,通过调整core.json中channel的bps设置来修复。此外,还演示了如何创建和操作Hive的静态分区表。

2506

被折叠的 条评论
为什么被折叠?



