centos 系统
------------------------------------------------------------------
首先必须安装 rpmbuild
yum install rpm-build
----------------------------
接着运行编译命令,到datax源码的rpm目录下面
rpmbuild --ba t_dp_datax_engine.spec
------------报错提示缺少 dos2unix--------------
yum install dos2unix
------------接着继续执行编译命令出现一下错误-------------------------------------------------------------
Processing files: t_dp_datax_engine-1.0.0-1.noarch
error: File not found: /root/rpmbuild/BUILDROOT/t_dp_datax_engine-1.0.0-1.i386/home/taobao/datax/bin
error: File not found: /root/rpmbuild/BUILDROOT/t_dp_datax_engine-1.0.0-1.i386/home/taobao/datax/conf
error: File not found: /root/rpmbuild/BUILDROOT/t_dp_datax_engine-1.0.0-1.i386/home/taobao/datax/engine
error: File not found: /root/rpmbuild/BUILDROOT/t_dp_datax_engine-1.0.0-1.i386/home/taobao/datax/common
error: File not found: /root/rpmbuild/BUILDROOT/t_dp_datax_engine-1.0.0-1.i386/home/taobao/datax/libs
error: File not found: /root/rpmbuild/BUILDROOT/t_dp_datax_engine-1.0.0-1.i386/home/taobao/datax/logs
error: File not found: /root/rpmbuild/BUILDROOT/t_dp_datax_engine-1.0.0-1.i386/home/taobao/datax/jobs
RPM build errors:
File not found: /root/rpmbuild/BUILDROOT/t_dp_datax_engine-1.0.0-1.i386/home/taobao/datax/bin
File not found: /root/rpmbuild/BUILDROOT/t_dp_datax_engine-1.0.0-1.i386/home/taobao/datax/conf
File not found: /root/rpmbuild/BUILDROOT/t_dp_datax_engine-1.0.0-1.i386/home/taobao/datax/engine
File not found: /root/rpmbuild/BUILDROOT/t_dp_datax_engine-1.0.0-1.i386/home/taobao/datax/common
File not found: /root/rpmbuild/BUILDROOT/t_dp_datax_engine-1.0.0-1.i386/home/taobao/datax/libs
File not found: /root/rpmbuild/BUILDROOT/t_dp_datax_engine-1.0.0-1.i386/home/taobao/datax/logs
File not found: /root/rpmbuild/BUILDROOT/t_dp_datax_engine-1.0.0-1.i386/home/taobao/datax/jobs
-----------------------------------
这个问题 网上已经有人提出了解决方案:
http://yangyoupeng-cn-fujitsu-com.iteye.com/blog/1832143
请直接点击跳转即可
------------------------------------------------------------------------------------------
-----------------接下来继续执行 出现如下错误----------------
Checking for unpackaged file(s): /usr/lib/rpm/check-files /root/rpmbuild/BUILDROOT/t_dp_datax_engine-1.0.0-1.x86_64
error: Installed (but unpackaged) file(s) found:
/home/taobao/datax/jobs/HdfsReader_to_OracleWriter.xml
/home/taobao/datax/jobs/MysqlReader_to_HdfsWriter.xml
/home/taobao/datax/jobs/OracleReader_to_HdfsWriter.xml
/home/taobao/datax/jobs/OracleReader_to_MysqlWriter.xml
/home/taobao/datax/jobs/sample.xml
RPM build errors:
Installed (but unpackaged) file(s) found:
/home/taobao/datax/jobs/HdfsReader_to_OracleWriter.xml
/home/taobao/datax/jobs/MysqlReader_to_HdfsWriter.xml
/home/taobao/datax/jobs/OracleReader_to_HdfsWriter.xml
/home/taobao/datax/jobs/OracleReader_to_MysqlWriter.xml
/home/taobao/datax/jobs/sample.xml
------------------------
该问题的方案是:
进入 cd /usr/lib/rpm
vi macros
------------------------ ----------------------------------
#==============================================================================
# ---- Build configuration macros.
#
# Script gets packaged file list on input and buildroot as first parameter.
# Returns list of unpackaged files, i.e. files in $RPM_BUILD_ROOT not packaged.
#
# Note: Disable (by commenting out) for legacy compatibility.
%__check_files %{_rpmconfigdir}/check-files %{buildroot}
#
# Should unpackaged files in a build root terminate a build?
#
# Note: The default value should be 0 for legacy compatibility.
%_unpackaged_files_terminate_build 1
------------------------------把红色的这一行注释掉即可----------------------------------------
再运行编译打包命令
------------------------------------------------------------
+ /usr/lib/rpm/brp-compress
+ /usr/lib/rpm/brp-strip
+ /usr/lib/rpm/brp-strip-static-archive
+ /usr/lib/rpm/brp-strip-comment-note
Processing files: t_dp_datax_engine-1.0.0-1.noarch
Wrote: /root/rpmbuild/SRPMS/t_dp_datax_engine-1.0.0-1.src.rpm
Wrote: /root/rpmbuild/RPMS/noarch/t_dp_datax_engine-1.0.0-1.noarch.rpm
Executing(%clean): /bin/sh -e /var/tmp/rpm-tmp.OYRna1
+ umask 022
+ cd /root/rpmbuild/BUILD
+ /bin/rm -rf /root/rpmbuild/BUILDROOT/t_dp_datax_engine-1.0.0-1.x86_64
+ exit 0
-----------------------------------------------------------------------------------------------------------
成功生成 rpm包。
-----------------------------------------------------------------------------------------------------------
安装生成的rpm包,执行以下命令
rpm -ivh t_dp_datax_engine-1.0.0-1.noarch.rpm
-----------------------出现一下日志表示已经成功安装-------------------------------------------------------
Preparing... ########################################### [100%]
1:t_dp_datax_engine-1.0.0-1.noarch ########################################### [100%]
-------------------------------------------------------------------------------------------------------------------------
进入 cd /home/taobao/datax/bin 目录
运行命令 : ./datax.py -e true
----------------------------------------------出现空指针错误---------------------------------------------------------
[root@hadoop3 bin]# ./datax.py -e true
Taobao DataX V1.0
Exception in thread "main" java.lang.NullPointerException
at java.util.Arrays$ArrayList.<init>(Arrays.java:2842)
at java.util.Arrays.asList(Arrays.java:2828)
at com.taobao.datax.engine.tools.JobConfGenDriver.getPluginDirAsList(JobConfGenDriver.java:36)
at com.taobao.datax.engine.tools.JobConfGenDriver.filterPluginType(JobConfGenDriver.java:43)
at com.taobao.datax.engine.tools.JobConfGenDriver.produceXmlConf(JobConfGenDriver.java:166)
at com.taobao.datax.engine.schedule.Engine.main(Engine.java:389)
-----------------------------------------------------------------------------------------------------------------------------
出现该问题的原因是因为 datax安装好以后,还没有安装各种读写插件(mysql,oracle等)
所以我们现在需要安装读写插件
首先安装 mysqlreader插件,还是和本文开头遇见的第一个错误一样,需要修改 t_dp_datax_mysqlreader.spec 文件
-------------------------------------------红色字体就是修改后的--------------------------------------------------------
[root@hadoop3 rpm]# vi t_dp_datax_mysqlreader.spec
summary: DataX mysqlreader can read data from mysql
Name: t_dp_datax_mysqlreader
Version: 1.0.0
Release: 1
Group: System
License: GPL
AutoReqProv: no
BuildArch: noarch
Requires: t_dp_datax_engine
%define dataxpath %{buildroot}/home/taobao/datax
%define vdataxpath /home/taobao/datax (添加这一行)
%description
DataX mysqlreader can read data from mysql
%prep
cd ${OLDPWD}/../
export LANG=zh_CN.UTF-8
ant dist
%build
%install
mkdir -p %{dataxpath}/plugins/reader/mysqlreader
cp ${OLDPWD}/../src/com/taobao/datax/plugins/reader/mysqlreader/ParamKey.java %{dataxpath}/plugins/reader/mysqlreader
cp ${OLDPWD}/../build/plugins/mysqlreader-1.0.0.jar %{dataxpath}/plugins/reader/mysqlreader
cp ${OLDPWD}/../build/plugins/plugins-common-1.0.0.jar %{dataxpath}/plugins/reader/mysqlreader
cp -r ${OLDPWD}/../libs/mysql-connector-java-5.1.18-bin.jar %{dataxpath}/plugins/reader/mysqlreader
cp -r ${OLDPWD}/../libs/commons-dbcp-1.4.jar %{dataxpath}/plugins/reader/mysqlreader
cp -r ${OLDPWD}/../libs/commons-pool-1.5.4.jar %{dataxpath}/plugins/reader/mysqlreader
cp -r ${OLDPWD}/../libs/commons-logging-1.1.1.jar %{dataxpath}/plugins/reader/mysqlreader
%files
%defattr(0755,root,root)
%{vdataxpath}/plugins/reader/mysqlreader (替换后的)
%changelog
* Fri Aug 20 2010 meining
- Version 1.0.0
-------------------------------------------------------------------------------------------------------------------
接着再运行
rpmbuild --ba t_dp_datax_mysqlreader.spec
-----------------------------------------------------------------
Processing files: t_dp_datax_mysqlreader-1.0.0-1.noarch
Wrote: /root/rpmbuild/SRPMS/t_dp_datax_mysqlreader-1.0.0-1.src.rpm
Wrote: /root/rpmbuild/RPMS/noarch/t_dp_datax_mysqlreader-1.0.0-1.noarch.rpm
Executing(%clean): /bin/sh -e /var/tmp/rpm-tmp.EhHiFf
+ umask 022
+ cd /root/rpmbuild/BUILD
+ /bin/rm -rf /root/rpmbuild/BUILDROOT/t_dp_datax_mysqlreader-1.0.0-1.x86_64
+ exit 0
-------------------------------成功生成rpm包---------------------------------------------
安装该插件
------------------------------------
[root@hadoop3 sa]# rpm -ivh t_dp_datax_mysqlreader-1.0.0-1.noarch.rpm
Preparing... ########################################### [100%]
1:t_dp_datax_mysqlreader ########################################### [100%]
------------------------------------------------------------------------------------------------------------------------
接着mysqlwriter也是按照同样的方法进行安装即可。
datax必须同时存在 一个reader插件和一个writer插件 才能正常运行 bin/datax.py -e true 命令,不然都会报错空指针的异常。
----------------------------------------------------------------------------------------------------------
[root@hadoop3 datax]# bin/datax.py -e true
Taobao DataX V1.0
Data Source List :
0 mysql
Please choose [0-0]: 0
Data Destination List :
0 mysql
Please choose [0-0]: 0
Generate /home/taobao/datax/jobs/mysqlreader_to_mysqlwriter_1426588439516.xml successfully .
------------------------------------------------成功生成job的xml配置文件----------------------------------------------------
相关推荐
这个“datax安装包+命令使用说明”压缩包应该包含了DataX的安装文件和详细的使用指南,帮助用户进行安装和操作。 首先,我们来了解一下DataX的基本概念。DataX作为一个数据同步框架,它的核心思想是通过插件化设计...
DataX是阿里巴巴开源的一款高效、稳定、扩展性强的数据同步工具,用于在各种数据存储之间进行批量数据迁移。在这个“DataX_python3补丁,DataX安装(Windows版)”的主题中,我们主要关注的是如何在Python 3环境下,...
在实际使用过程中,用户可能会遇到各种各样的问题,本文将针对DataX 在进行MongoDB与Hive之间数据同步时遇到的几个常见问题及其解决方案进行详细介绍。 #### 二、问题概述 1. **MongoDB 默认时区与 Hive 时区不匹配...
Datax的源码编译,编译以后支持访问mysql8.0数据库,以及支持连接Clickhouse,从clickhouse读取数据,以及写入数据到clickhouse,当前编译版本已经在正式集群上采用,没有任何问题
这样,DataX 在运行时就能自动识别并使用这些插件。安装完成后,你需要编写相应的 DataX 任务配置文件,明确指出数据源、表名、字段映射以及执行策略等信息。 在实际操作中,`clickhousereader` 可能会涉及以下关键...
- **OracleWriter**:如果使用OracleWriter,需要安装Oracle客户端,并确保能够正常使用`sqlplus`命令连接数据库。 - **HdfsWriter和HdfsReader**:如果使用这些组件,需要确保已经安装好HDFS客户端,并且可以正常...
DataX Web是一款基于DataX的数据集成工具,它提供了一个可视化的操作界面,便于用户进行数据的导入导出工作,使得数据源的配置、任务的调度、任务的监控更加直观易用。DataX本身是由阿里巴巴开源的一款数据同步工具...
Java 使用 DataX 进行增量同步是大数据领域中常见的数据迁移任务,DataX 是阿里开源的一个强大、高效的数据同步工具,它可以实现不同数据存储之间的数据迁移。本篇将详细讲解如何在 Java 项目中利用 DataX 实现增量...
7. **异常处理**:在数据迁移过程中,DataX具备完善的异常处理机制,能够捕获并记录错误信息,方便后期排查问题。 8. **日志系统**:DataX的日志系统可以帮助开发者跟踪任务执行状态,记录迁移过程中的关键信息,...
用户可以从 GitHub 下载 DataX 的源码,然后使用 Maven 进行编译。编译成功后,DataX 包将位于 target/datax/datax/ 目录下。 启动 DataX 启动 DataX 需要进入 DataX 目录,使用 Python 命令启动 datax.py,第一个...
在这个场景中,“datax使用python3的替换bin文件”指的是将DataX中的默认执行脚本(bin文件)替换为Python3版本的脚本,以适应Python环境下的数据处理逻辑。 首先,了解DataX的基本架构和工作原理是必要的。DataX...
1. 下载DataX安装包:可以从GitHub下载DataX的源码,使用Maven命令进行编译和打包。 2. 解压缩安装包:将下载的压缩包上传到Linux服务器,然后解压缩ZIP包,得到DataX安装目录。 3. 配置DataX:进入DataX安装目录,...
DataX ClickHouse读写插件是DataX框架中的一个重要组成部分,它使得DataX能够与ClickHouse数据库无缝对接,实现数据的双向同步。这包括从其他数据库(如MySQL、SQLServer)读取数据并写入ClickHouse,或者从...
本文将详细介绍如何将DataX移植到Python3环境,并解决可能遇到的问题,以及如何替换bin目录下的Python脚本。 首先,我们需要理解Python2到Python3的主要语法差异。Python3引入了许多改进,包括字符串处理、异常处理...
对于InfluxDB,DataX提供了名为`influxdbreader`的读取插件,用于从InfluxDB中读取数据并导入到其他数据存储中。 接下来,我们详细解析`influxdbreader`组件的使用。该组件主要涉及以下几个关键配置: 1. **连接...
datax v202210版本安装包,因安装包超过1g,writer只保留了mysqlwriter,需要下载所有writer插件的同学访问https://download.csdn.net/download/u010479989/87808705下载
本文将深入探讨DataX中的ClickHouse读插件,帮助读者理解如何使用这个插件进行数据读取,以及将其正确配置到DataX系统中。 一、DataX ClickHouse读插件概述 DataX ClickHouse读插件是专为从ClickHouse数据库中读取...
6. **处理编译问题**:如果在编译过程中遇到错误,Maven会显示详细的错误信息。根据这些信息,查找并修复问题,可能需要更新依赖、解决代码冲突或调整配置。 7. **测试与打包**:编译成功后,DataX项目会生成相应的...
DataX是阿里巴巴集团内部广泛使用的离线数据同步工具,它可以实现在各种异构数据存储之间进行批量数据迁移。DataX支持包括MySQL、Oracle、HDFS、HBase、TableStore(OTS)、MaxCompute(ODPS)、ADS等在内的多种数据...
在使用 DataX 将数据从 Hive 表导入 MySQL 表的过程中,遇到了数据缺失的问题。具体表现为,在某些特定条件下(如数据块大小超过 256M 时),导入到 MySQL 的数据量少于预期。 #### 现象分析 根据观察发现,当数据...