记录部署Datax、Datax-web 过程碰到的问题
我的第一篇博客
datax在网络上部署的文档有很多,这里不重复阐述,只描述过程中碰到的些许问题,记录下来。
1.
1 ERROR RetryUtil - Exception when calling callable, 异常Msg:DataX无法连接对应的数据库,可能原因是:1) 配置的ip/port/database/jdbc错误,无法连接。2) 配置的username/password错误,鉴权失败。请和DBA确认该数据库的连接信息是否正确。
2 2023-06-19 15:10:52 [AnalysisStatistics.analysisStatisticsLog-53] java.lang.Exception: DataX无法连接对应的数据库,可能原因是:1) 配置的ip/port/database/jdbc错误,无法连接。2) 配置的username/password错误,鉴权失败。请和DBA确认该数据库的连接信息是否正确。
解决方法:
cd /opt/datax/plugin/reader/mysqlreader/libs
这个目录下,删除掉低版本的mysql驱动版本,替换为:mysql-connector-java-8.0.*.jar
2. mysql 同步数据到hdfs上,会出现设置固定前缀的多个文件,实际文件内数据重复了,低版本的datax未解决重复问题,
问题的原因是 hdfswriter 的 writemode 只支持 append 和 nonConflict,可以下载源码找到对应的模块增加覆盖功能。
源码地址:alibaba/DataX: DataX是阿里云DataWorks数据集成的开源版本。 (github.com)
很荣幸在我碰到这个问题时,源码的 master版本解决了此问题,那么下载下来编译后安装,writeMode 增加了 truncate 功能,执行任务时若hdfs目录下存在设置的前缀文件,会先删除。
但是data-web 2.1.2 下拉选择时没有此选项,需要自行在josn文件中修改
"path": "/warehouse/jzg_ga_prod/ods/ods_t_message_template",
"fileName": "00000",
"writeMode": "truncate",
"fieldDelimiter": "\t",
3. hdfs 同步至 mysql 时的脏数据导致同步失败的问题
UnstructuredStorageReaderUtil - CsvReader使用默认值[{"captureRawRecord":true,"columnCount":0,"comment":"#","currentRecord":-1,"delimiter":"\t","escapeMode":1,"headerCount":0,"rawRecord":"","recordDelimiter":"\u0000","safetySwitch":false,"skipEmptyRecords":true,"textQualifier":"\"","trimWhitespace":true,"useComments":false,"useTextQualifier":true,"values":[]}],csvReaderConfig值为[null]
2023-06-19 15:53:30 [AnalysisStatistics.analysisStatisticsLog-53] 2023-06-19 15:53:30.209 [0-0-0-reader] ERROR StdoutPluginCollector - 脏数据:
2023-06-19 15:53:30 [AnalysisStatistics.analysisStatisticsLog-53] {"record":[{"byteSize":1,"index":0,"rawData":1,"type":3},{"byteSize":7,"index":1,"rawData":"注册账号验证码","type":5},{"byteSize":1,"index":2,"rawData":1,"type":3},{"byteSize":28,"index":3,"rawData":"您的验证码为:${code},如非本人操作,请忽略本短信","type":5},{"byteSize":1,"index":4,"rawData":"2","type":5},{"byteSize":1,"index":5,"rawData":"2","type":5},{"byteSize":1,"index":6,"rawData":0,"type":3},{"byteSize":1,"index":7,"rawData":"3","type":5},{"byteSize":0,"index":8,"rawData":"","type":5},{"byteSize":0,"index":9,"rawData":"","type":5}],"type":"reader","message":"No enum constant com.alibaba.datax.plugin.unstructuredstorage.reader.UnstructuredStorageReaderUtil.Type.BIGINT"}
2023-06-19 15:53:30 [AnalysisStatistics.analysisStatisticsLog-53] 2023-06-19 15:53:30.209 [0-0-0-reader] ERROR StdoutPluginCollector - 脏数据:
原因:是datax 数据类型的问题 参考网上给出的类型对照(来源:https://www.jianshu.com/p/02e78ff57437)

解决方法:将 bigint、 int 改为 long 即可

记录部署Datax、Datax-web 过程碰到的问题的更多相关文章
- Django部署到Apache Web Server
Windows环境下,将Django部署到Apache Web Server 在Windows上部署Django(用mod_wsgi)会出现各种奇怪的问题,现简单记录下配置过程及遇到的错误及解决方法. ...
- Windows Azure入门教学系列 (二):部署第一个Web Role程序
本文是Windows Azure入门教学的第二篇文章. 在第一篇教学中,我们已经创建了第一个Web Role程序.在这篇教学中,我们将学习如何把该Web Role程序部署到云端. 注意:您需要购买Wi ...
- 如何使用Docker部署一个Go Web应用程序
熟悉Docker如何提升你在构建.测试并部署Go Web应用程序的方式,并且理解如何使用Semaphore来持续部署. 简介 大多数情况下Go应用程序被编译成单个二进制文件,web应用程序则会包括模版 ...
- Nginx 部署多个 web 项目(虚拟主机)
1,创建 www 目录 2,在 www 目录下创建 test1 和 test2 目录,表示两个项目 3,test1 下创建 test1.html 4,test2 下创建 test2.html 5,配置 ...
- 部署 Windows PowerShell Web 访问
部署 Windows PowerShell Web 访问 适用对象:Windows Server 2012, Windows Server 2012 R2 Windows PowerShell® We ...
- 在裸机centos7系统中部署django项目的过程
概要 本文用一台安装了centos7.5系统的裸奔Linux机器(当然是虚拟机)详细讲解从无到有部署django项目的过程. 安装必要的工具 配置yum源 至于什么是yum源大家请自行百度,本人用的是 ...
- 框架5--nginx安装部署 下(web服务)
目录 1.提纲 2.Nginx虚拟主机 3.Nginx日志 4.Nginx访问控制模块 5.Nginx状态监控模块 6.访问连接控制模块 框架5--nginx安装部署 下(web服务) 1.提纲 1. ...
- 安装部署完office web apps 后,无法浏览Word
安装部署完office web apps 后,在sharepoint 2010浏览器中浏览Word提示:“由于出现意外错误,Word Web App 无法打开此 文档 进行查看. 要查看此 文档,请在 ...
- 记录sqoop同步失败问题解决过程,过程真的是很崎岖。(1月6日解决)
记录sqoop同步失败问题解决过程,过程真的是很崎岖.事发原因:最近突然出现sqoop export to mysql时频繁出错.看了下日志是卡在某条数据过不去了,看异常.看sqoop生成的mr并未发 ...
- ASP.NET MVC3 系列教程 - 部署你的WEB应用到IIS 6.0
I:ASP.NET MVC3 部署的前期工作 1.确认部署的服务器操作系统环境 首先我们确认服务器的操作系统版本 可以从系统命令行工具里输入: systeminfo 获取相关操作系统信息例如 然后再确 ...
随机推荐
- rocketmq-spring : 实战与源码解析一网打尽
RocketMQ 是大家耳熟能详的消息队列,开源项目 rocketmq-spring 可以帮助开发者在 Spring Boot 项目中快速整合 RocketMQ. 这篇文章会介绍 Spring Boo ...
- python入门教程之十二Open及file操作
读和写文件 open() 将会返回一个 file 对象,基本语法格式如下: open(filename, mode) filename:包含了你要访问的文件名称的字符串值. mode:决定了打开文件的 ...
- USART串口_第三课
串口发送与接收 1.阻塞式发送 1.1.练习receive() 和Transmit() 测试1:测试接收发送函数 receive() 和 Transmit() 在main()中写入测试代码:将stm3 ...
- day110:MoFang:重新构造用户关系状态&添加好友&处理好友申请&获取申请好友历史记录&好友列表显示
目录: 1.用户关系状态:重新构造 2.添加好友 3.处理好友申请 4.获取申请好友历史记录 5.好友列表 day109+day110所学内容流程图 1.用户关系状态:重新构造 在day109博客的前 ...
- socket 到底是个啥
哈喽大家好,我是咸鱼 我相信大家在面试过程中或多或少都会被问到这样一个问题:你能解释一下什么是 socket 吗 我记得我当初的回答很是浅显:socket 也叫套接字,用来负责不同主机程序之间的网络通 ...
- 《爆肝整理》保姆级系列教程-玩转Charles抓包神器教程(14)-Charles过滤网络请求
1.简介 在日常工作测试中,经常要抓包看请求的request,response是不是传的对,返回的字段值对不对,众多的请求中看得眼花缭乱,如何找到自己想要的请求,那么我们就需要过滤请求.Charles ...
- CSS实现单行或者多行文本溢出隐藏并且显示省略号
一.单行超出显示省略号如果文字超出父元素指定宽度,文字会自动换行,而连续不间断数字和英文字母(没有其他字符)不会自动换行: 详细步骤: 第一步(不换行):white-space:nowrop;(对于连 ...
- js-函数记忆
函数记忆: 指将上次的(计算结果)缓存起来,当下次调用时,如果遇到相同的(参数),就直接返回(缓存中的数据). 实现原理:将参数和对应的结果保存在对象中,再次调用时,判断对象 key 是否存在,存在返 ...
- Llinux系统(Centos/Ubuntu/Debian)弹性云系统盘扩容方法
警告: 1.调整过分区管理方式的,例如lvm管理方式,请忽略此教程. 2.ubuntu18系统暂不支持脚本扩容,请手动扩容,参看下面ubuntu18部分,用parted操作 脚本自动处理(推荐) SS ...
- vue中让嵌入的iframe完美自适应宽度、高度
涉及到系统集成的时候,前端我们经常会用到iframe嵌入,但是嵌入的时候经常有不适应的情况,太长或太宽.滚动条... 下面的方法可以做到使嵌入的iframe自适应宽度.高度, 1.嵌入iframe,加 ...