大同网站建设优化推广,做视频的素材网站,最新项目,那个网做网站便宜DataX-On-Hadoop即使用hadoop的任务调度器#xff0c;将DataX task(Reader-Channel-Writer)调度到hadoop执行集群上执行。这样用户的hadoop数据可以通过MR任务批量上传到MaxCompute、RDS等#xff0c;不需要用户提前安装和部署DataX软件包#xff0c;也不需要另外为…DataX-On-Hadoop即使用hadoop的任务调度器将DataX task(Reader-Channel-Writer)调度到hadoop执行集群上执行。这样用户的hadoop数据可以通过MR任务批量上传到MaxCompute、RDS等不需要用户提前安装和部署DataX软件包也不需要另外为DataX准备执行集群。但是可以享受到DataX已有的插件逻辑、流控限速、鲁棒重试等等。 1. DataX-On-Hadoop 运行方式
1.1 什么是DataX-On-Hadoop
DataX https://github.com/alibaba/DataX 是阿里巴巴集团内被广泛使用的离线数据同步工具/平台实现包括 MySQL、Oracle、HDFS、Hive、OceanBase、HBase、OTS、MaxCompute 等各种异构数据源之间高效的数据同步功能。 DataX同步引擎内部实现了任务的切分、调度执行能力DataX的执行不依赖Hadoop环境。
DataX-On-Hadoop是DataX针对Hadoop调度环境实现的版本使用hadoop的任务调度器将DataX task(Reader-Channel-Writer)调度到hadoop执行集群上执行。这样用户的hadoop数据可以通过MR任务批量上传到MaxCompute等不需要用户提前安装和部署DataX软件包也不需要另外为DataX准备执行集群。但是可以享受到DataX已有的插件逻辑、流控限速、鲁棒重试等等。
目前DataX-On-Hadoop支持将Hdfs中的数据上传到公共云MaxCompute当中。
1.2 如何运行DataX-On-Hadoop
运行DataX-On-Hadoop步骤如下:
提阿里云工单申请DataX-On-Hadoop软件包此软件包本质上也是一个Hadoop MR Jar通过hadoop客户端提交一个MR任务您只需要关系作业的配置文件内容(这里是./bvt_case/speed.json配置文件和普通的DataX配置文件完全一致)提交命令是
span stylecolor:#f8f8f2code classlanguage-javaspan stylecolor:#f8f8f2./span/binspan stylecolor:#f8f8f2//spanhadoop jar dataxspan stylecolor:#f8f8f2-/spanjarspan stylecolor:#f8f8f2-/spanwithspan stylecolor:#f8f8f2-/spandependenciesspan stylecolor:#f8f8f2./spanjar
comspan stylecolor:#f8f8f2./spanalibabaspan stylecolor:#f8f8f2./spandataxspan stylecolor:#f8f8f2./spanhdfsspan stylecolor:#f8f8f2./spanodpsspan stylecolor:#f8f8f2./spanmrspan stylecolor:#f8f8f2./spanHdfsToOdpsMRJob span stylecolor:#f8f8f2./span/bvt_casespan stylecolor:#f8f8f2//spanspeedspan stylecolor:#f8f8f2./spanjson/code/span
任务执行完成后可以看到类似如下日志:本例子的Hdfs Reader 和Odps Writer配置信息如下:
span stylecolor:#f8f8f2code classlanguage-javaspan stylecolor:#f8f8f2{/spanspan stylecolor:#a6e22espan stylecolor:#e6db74core/span/spanspan stylecolor:#f8f8f2:/span span stylecolor:#f8f8f2{/spanspan stylecolor:#a6e22espan stylecolor:#e6db74transport/span/spanspan stylecolor:#f8f8f2:/span span stylecolor:#f8f8f2{/spanspan stylecolor:#a6e22espan stylecolor:#e6db74channel/span/spanspan stylecolor:#f8f8f2:/span span stylecolor:#f8f8f2{/spanspan stylecolor:#a6e22espan stylecolor:#e6db74speed/span/spanspan stylecolor:#f8f8f2:/span span stylecolor:#f8f8f2{/spanspan stylecolor:#a6e22espan stylecolor:#e6db74byte/span/spanspan stylecolor:#f8f8f2:/span span stylecolor:#a6e22espan stylecolor:#e6db74-1/span/spanspan stylecolor:#f8f8f2,/spanspan stylecolor:#a6e22espan stylecolor:#e6db74record/span/spanspan stylecolor:#f8f8f2:/span span stylecolor:#a6e22espan stylecolor:#e6db74-1/span/spanspan stylecolor:#f8f8f2}/spanspan stylecolor:#f8f8f2}/spanspan stylecolor:#f8f8f2}/spanspan stylecolor:#f8f8f2}/spanspan stylecolor:#f8f8f2,/spanspan stylecolor:#a6e22espan stylecolor:#e6db74job/span/spanspan stylecolor:#f8f8f2:/span span stylecolor:#f8f8f2{/spanspan stylecolor:#a6e22espan stylecolor:#e6db74setting/span/spanspan stylecolor:#f8f8f2:/span span stylecolor:#f8f8f2{/spanspan stylecolor:#a6e22espan stylecolor:#e6db74speed/span/spanspan stylecolor:#f8f8f2:/span span stylecolor:#f8f8f2{/spanspan stylecolor:#a6e22espan stylecolor:#e6db74byte/span/spanspan stylecolor:#f8f8f2:/span span stylecolor:#ae81ffspan stylecolor:#ae81ff1048576/span/spanspan stylecolor:#f8f8f2}/spanspan stylecolor:#f8f8f2,/spanspan stylecolor:#a6e22espan stylecolor:#e6db74errorLimit/span/spanspan stylecolor:#f8f8f2:/span span stylecolor:#f8f8f2{/spanspan stylecolor:#a6e22espan stylecolor:#e6db74record/span/spanspan stylecolor:#f8f8f2:/span span stylecolor:#ae81ffspan stylecolor:#ae81ff0/span/spanspan stylecolor:#f8f8f2}/spanspan stylecolor:#f8f8f2}/spanspan stylecolor:#f8f8f2,/spanspan stylecolor:#a6e22espan stylecolor:#e6db74content/span/spanspan stylecolor:#f8f8f2:/span span stylecolor:#f8f8f2[/spanspan stylecolor:#f8f8f2{/spanspan stylecolor:#a6e22espan stylecolor:#e6db74reader/span/spanspan stylecolor:#f8f8f2:/span span stylecolor:#f8f8f2{/spanspan stylecolor:#a6e22espan stylecolor:#e6db74name/span/spanspan stylecolor:#f8f8f2:/span span stylecolor:#a6e22espan stylecolor:#e6db74hdfsreader/span/spanspan stylecolor:#f8f8f2,/spanspan stylecolor:#a6e22espan stylecolor:#e6db74parameter/span/spanspan stylecolor:#f8f8f2:/span span stylecolor:#f8f8f2{/spanspan stylecolor:#a6e22espan stylecolor:#e6db74path/span/spanspan stylecolor:#f8f8f2:/span span stylecolor:#a6e22espan stylecolor:#e6db74/tmp/test_datax/big_data*/span/spanspan stylecolor:#f8f8f2,/spanspan stylecolor:#a6e22espan stylecolor:#e6db74defaultFS/span/spanspan stylecolor:#f8f8f2:/span span stylecolor:#a6e22espan stylecolor:#e6db74hdfs://localhost:9000/span/spanspan stylecolor:#f8f8f2,/spanspan stylecolor:#a6e22espan stylecolor:#e6db74column/span/spanspan stylecolor:#f8f8f2:/span span stylecolor:#f8f8f2[/spanspan stylecolor:#f8f8f2{/spanspan stylecolor:#a6e22espan stylecolor:#e6db74index/span/spanspan stylecolor:#f8f8f2:/span span stylecolor:#ae81ffspan stylecolor:#ae81ff0/span/spanspan stylecolor:#f8f8f2,/spanspan stylecolor:#a6e22espan stylecolor:#e6db74type/span/spanspan stylecolor:#f8f8f2:/span span stylecolor:#a6e22espan stylecolor:#e6db74string/span/spanspan stylecolor:#f8f8f2}/spanspan stylecolor:#f8f8f2,/spanspan stylecolor:#f8f8f2{/spanspan stylecolor:#a6e22espan stylecolor:#e6db74index/span/spanspan stylecolor:#f8f8f2:/span span stylecolor:#ae81ffspan stylecolor:#ae81ff1/span/spanspan stylecolor:#f8f8f2,/spanspan stylecolor:#a6e22espan stylecolor:#e6db74type/span/spanspan stylecolor:#f8f8f2:/span span stylecolor:#a6e22espan stylecolor:#e6db74string/span/spanspan stylecolor:#f8f8f2}/spanspan stylecolor:#f8f8f2]/spanspan stylecolor:#f8f8f2,/spanspan stylecolor:#a6e22espan stylecolor:#e6db74fileType/span/spanspan stylecolor:#f8f8f2:/span span stylecolor:#a6e22espan stylecolor:#e6db74text/span/spanspan stylecolor:#f8f8f2,/spanspan stylecolor:#a6e22espan stylecolor:#e6db74encoding/span/spanspan stylecolor:#f8f8f2:/span span stylecolor:#a6e22espan stylecolor:#e6db74UTF-8/span/spanspan stylecolor:#f8f8f2,/spanspan stylecolor:#a6e22espan stylecolor:#e6db74fieldDelimiter/span/spanspan stylecolor:#f8f8f2:/span span stylecolor:#a6e22espan stylecolor:#e6db74,/span/spanspan stylecolor:#f8f8f2}/spanspan stylecolor:#f8f8f2}/spanspan stylecolor:#f8f8f2,/spanspan stylecolor:#a6e22espan stylecolor:#e6db74writer/span/spanspan stylecolor:#f8f8f2:/span span stylecolor:#f8f8f2{/spanspan stylecolor:#a6e22espan stylecolor:#e6db74name/span/spanspan stylecolor:#f8f8f2:/span span stylecolor:#a6e22espan stylecolor:#e6db74odpswriter/span/spanspan stylecolor:#f8f8f2,/spanspan stylecolor:#a6e22espan stylecolor:#e6db74parameter/span/spanspan stylecolor:#f8f8f2:/span span stylecolor:#f8f8f2{/spanspan stylecolor:#a6e22espan stylecolor:#e6db74project/span/spanspan stylecolor:#f8f8f2:/span span stylecolor:#a6e22espan stylecolor:#e6db74/span/spanspan stylecolor:#f8f8f2,/spanspan stylecolor:#a6e22espan stylecolor:#e6db74table/span/spanspan stylecolor:#f8f8f2:/span span stylecolor:#a6e22espan stylecolor:#e6db74/span/spanspan stylecolor:#f8f8f2,/spanspan stylecolor:#a6e22espan stylecolor:#e6db74partition/span/spanspan stylecolor:#f8f8f2:/span span stylecolor:#a6e22espan stylecolor:#e6db74pt1,dt2/span/spanspan stylecolor:#f8f8f2,/spanspan stylecolor:#a6e22espan stylecolor:#e6db74column/span/spanspan stylecolor:#f8f8f2:/span span stylecolor:#f8f8f2[/spanspan stylecolor:#a6e22espan stylecolor:#e6db74id/span/spanspan stylecolor:#f8f8f2,/spanspan stylecolor:#a6e22espan stylecolor:#e6db74name/span/spanspan stylecolor:#f8f8f2]/spanspan stylecolor:#f8f8f2,/spanspan stylecolor:#a6e22espan stylecolor:#e6db74accessId/span/spanspan stylecolor:#f8f8f2:/span span stylecolor:#a6e22espan stylecolor:#e6db74/span/spanspan stylecolor:#f8f8f2,/spanspan stylecolor:#a6e22espan stylecolor:#e6db74accessKey/span/spanspan stylecolor:#f8f8f2:/span span stylecolor:#a6e22espan stylecolor:#e6db74/span/spanspan stylecolor:#f8f8f2,/spanspan stylecolor:#a6e22espan stylecolor:#e6db74truncate/span/spanspan stylecolor:#f8f8f2:/span span stylecolor:#ae81ffspan stylecolor:#f92672true/span/spanspan stylecolor:#f8f8f2,/spanspan stylecolor:#a6e22espan stylecolor:#e6db74odpsServer/span/spanspan stylecolor:#f8f8f2:/span span stylecolor:#a6e22espan stylecolor:#e6db74http://service.odps.aliyun.com/api/span/spanspan stylecolor:#f8f8f2,/spanspan stylecolor:#a6e22espan stylecolor:#e6db74tunnelServer/span/spanspan stylecolor:#f8f8f2:/span span stylecolor:#a6e22espan stylecolor:#e6db74http://dt.odps.aliyun.com/span/spanspan stylecolor:#f8f8f2,/spanspan stylecolor:#a6e22espan stylecolor:#e6db74accountType/span/spanspan stylecolor:#f8f8f2:/span span stylecolor:#a6e22espan stylecolor:#e6db74aliyun/span/spanspan stylecolor:#f8f8f2}/spanspan stylecolor:#f8f8f2}/spanspan stylecolor:#f8f8f2}/spanspan stylecolor:#f8f8f2]/spanspan stylecolor:#f8f8f2}/span
span stylecolor:#f8f8f2}/span/code/span
1.3 DataX-On-Hadoop 任务高级配置参数
针对上面的例子介绍几个性能、脏数据的参数:
core.transport.channel.speed.byte 同步任务切分多多个mapper并发执行每个mapper的同步速度比特Byte上限默认为-1负数表示不限速如果是1048576表示单个mapper最大速度是1MB/s。core.transport.channel.speed.record 同步任务切分多多个mapper并发执行每个mapper的同步速度记录上限默认为-1负数表示不限速如果是10000表示单个mapper最大记录速度每秒1万行。job.setting.speed.byte 同步任务整体的最大速度依赖hadoop 2.7.0以后的版本主要是通过mapreduce.job.running.map.limit参数控制同一时间点mapper的并行度。job.setting.errorLimit.record 脏数据记录现在默认不配置表示不进行脏数据检查(有脏数据任务不会失败)0表示允许脏数据条数最大为0条如果任务执行时脏数据超过限制任务会失败1表示允许脏数据条数最大为1条含义不言自明。一个由于脏数据原因失败的任务:作业级别的性能参数配置位置示例: span stylecolor:#f8f8f2code classlanguage-javaspan stylecolor:#f8f8f2{/spanspan stylecolor:#a6e22espan stylecolor:#e6db74core/span/spanspan stylecolor:#f8f8f2:/span span stylecolor:#f8f8f2{/spanspan stylecolor:#a6e22espan stylecolor:#e6db74transport/span/spanspan stylecolor:#f8f8f2:/span span stylecolor:#f8f8f2{/spanspan stylecolor:#a6e22espan stylecolor:#e6db74channel/span/spanspan stylecolor:#f8f8f2:/span span stylecolor:#f8f8f2{/spanspan stylecolor:#a6e22espan stylecolor:#e6db74speed/span/spanspan stylecolor:#f8f8f2:/span span stylecolor:#f8f8f2{/spanspan stylecolor:#a6e22espan stylecolor:#e6db74byte/span/spanspan stylecolor:#f8f8f2:/span span stylecolor:#a6e22espan stylecolor:#e6db74-1/span/spanspan stylecolor:#f8f8f2,/spanspan stylecolor:#a6e22espan stylecolor:#e6db74record/span/spanspan stylecolor:#f8f8f2:/span span stylecolor:#a6e22espan stylecolor:#e6db74-1/span/spanspan stylecolor:#f8f8f2}/spanspan stylecolor:#f8f8f2}/spanspan stylecolor:#f8f8f2}/spanspan stylecolor:#f8f8f2}/spanspan stylecolor:#f8f8f2,/spanspan stylecolor:#a6e22espan stylecolor:#e6db74job/span/spanspan stylecolor:#f8f8f2:/span span stylecolor:#f8f8f2{/spanspan stylecolor:#a6e22espan stylecolor:#e6db74setting/span/spanspan stylecolor:#f8f8f2:/span span stylecolor:#f8f8f2{/spanspan stylecolor:#a6e22espan stylecolor:#e6db74speed/span/spanspan stylecolor:#f8f8f2:/span span stylecolor:#f8f8f2{/spanspan stylecolor:#a6e22espan stylecolor:#e6db74byte/span/spanspan stylecolor:#f8f8f2:/span span stylecolor:#ae81ffspan stylecolor:#ae81ff1048576/span/spanspan stylecolor:#f8f8f2}/spanspan stylecolor:#f8f8f2,/spanspan stylecolor:#a6e22espan stylecolor:#e6db74errorLimit/span/spanspan stylecolor:#f8f8f2:/span span stylecolor:#f8f8f2{/spanspan stylecolor:#a6e22espan stylecolor:#e6db74record/span/spanspan stylecolor:#f8f8f2:/span span stylecolor:#ae81ffspan stylecolor:#ae81ff0/span/spanspan stylecolor:#f8f8f2}/spanspan stylecolor:#f8f8f2}/spanspan stylecolor:#f8f8f2,/spanspan stylecolor:#a6e22espan stylecolor:#e6db74content/span/spanspan stylecolor:#f8f8f2:/span span stylecolor:#f8f8f2[/spanspan stylecolor:#f8f8f2{/spanspan stylecolor:#a6e22espan stylecolor:#e6db74reader/span/spanspan stylecolor:#f8f8f2:/span span stylecolor:#f8f8f2{/spanspan stylecolor:#f8f8f2}/spanspan stylecolor:#f8f8f2,/spanspan stylecolor:#a6e22espan stylecolor:#e6db74writer/span/spanspan stylecolor:#f8f8f2:/span span stylecolor:#f8f8f2{/spanspan stylecolor:#f8f8f2}/spanspan stylecolor:#f8f8f2}/spanspan stylecolor:#f8f8f2]/spanspan stylecolor:#f8f8f2}/span
span stylecolor:#f8f8f2}/span/code/span
另外介绍几个变量替换、作业命名参数:
支持变量参数比如作业配置文件json中有如下: span stylecolor:#f8f8f2code classlanguage-javaspan stylecolor:#a6e22espan stylecolor:#e6db74path/span/spanspan stylecolor:#f8f8f2:/span span stylecolor:#a6e22espan stylecolor:#e6db74/tmp/test_datax/dt${dt}/abc.txt/span/span/code/span 任务执行时可以配置如下传参使得一份配置代码可以多次使用:
span stylecolor:#f8f8f2code classlanguage-javaspan stylecolor:#f8f8f2./span/binspan stylecolor:#f8f8f2//spanhadoop jar dataxspan stylecolor:#f8f8f2-/spanjarspan stylecolor:#f8f8f2-/spanwithspan stylecolor:#f8f8f2-/spandependenciesspan stylecolor:#f8f8f2./spanjar comspan stylecolor:#f8f8f2./spanalibabaspan stylecolor:#f8f8f2./spandataxspan stylecolor:#f8f8f2./spanhdfsspan stylecolor:#f8f8f2./spanodpsspan stylecolor:#f8f8f2./spanmrspan stylecolor:#f8f8f2./spanHdfsToOdpsMRJob
dataxspan stylecolor:#f8f8f2./spanjson span stylecolor:#f8f8f2-/spanp span stylecolor:#a6e22espan stylecolor:#e6db74-Ddt20170427 -Dbizdate123/span/span span stylecolor:#f8f8f2-/spant hdfs_2_odps_mr/code/span
支持给作业命名任务执行时的-t参数是作业的traceId即作业的名字方便根据作业名字即知晓其意图比如上面的-t hdfs_2_odps_mr
读写插件详细配置介绍请见后续第2、3部分。 2. Hdfs 读取
2.1 快速介绍
Hdfs Reader提供了读取分布式文件系统数据存储的能力。在底层实现上Hdfs Reader获取分布式文件系统上文件的数据并转换为DataX传输协议传递给Writer。
Hdfs Reader实现了从Hadoop分布式文件系统Hdfs中读取文件数据并转为DataX协议的功能。textfile是Hive建表时默认使用的存储格式数据不做压缩本质上textfile就是以文本的形式将数据存放在hdfs中对于DataX而言Hdfs Reader实现上类比TxtFileReader有诸多相似之处。orcfile它的全名是Optimized Row Columnar file是对RCFile做了优化。据官方文档介绍这种文件格式可以提供一种高效的方法来存储Hive数据。Hdfs Reader利用Hive提供的OrcSerde类读取解析orcfile文件的数据。目前Hdfs Reader支持的功能如下 支持textfile、orcfile、rcfile、sequence file、csv和parquet格式的文件且要求文件内容存放的是一张逻辑意义上的二维表。 支持多种类型数据读取(使用String表示)支持列裁剪支持列常量。 支持递归读取、支持正则表达式*和?。 支持orcfile数据压缩目前支持SNAPPYZLIB两种压缩方式。 支持sequence file数据压缩目前支持lzo压缩方式。 多个File可以支持并发读取。 csv类型支持压缩格式有gzip、bz2、zip、lzo、lzo_deflate、snappy。
我们暂时不能做到
单个File支持多线程并发读取这里涉及到单个File内部切分算法。后续可以做到支持。2.2 功能说明
2.2.1 配置样例
span stylecolor:#333333span stylecolor:#f8f8f2code classlanguage-javaspan stylecolor:#f8f8f2{/spanspan stylecolor:#a6e22espan stylecolor:#e6db74core/span/spanspan stylecolor:#f8f8f2:/span span stylecolor:#f8f8f2{/spanspan stylecolor:#a6e22espan stylecolor:#e6db74transport/span/spanspan stylecolor:#f8f8f2:/span span stylecolor:#f8f8f2{/spanspan stylecolor:#a6e22espan stylecolor:#e6db74channel/span/spanspan stylecolor:#f8f8f2:/span span stylecolor:#f8f8f2{/spanspan stylecolor:#a6e22espan stylecolor:#e6db74speed/span/spanspan stylecolor:#f8f8f2:/span span stylecolor:#f8f8f2{/spanspan stylecolor:#a6e22espan stylecolor:#e6db74byte/span/spanspan stylecolor:#f8f8f2:/span span stylecolor:#a6e22espan stylecolor:#e6db74-1048576/span/spanspan stylecolor:#f8f8f2,/spanspan stylecolor:#a6e22espan stylecolor:#e6db74record/span/spanspan stylecolor:#f8f8f2:/span span stylecolor:#a6e22espan stylecolor:#e6db74-1/span/spanspan stylecolor:#f8f8f2}/spanspan stylecolor:#f8f8f2}/spanspan stylecolor:#f8f8f2}/spanspan stylecolor:#f8f8f2}/spanspan stylecolor:#f8f8f2,/spanspan stylecolor:#a6e22espan stylecolor:#e6db74job/span/spanspan stylecolor:#f8f8f2:/span span stylecolor:#f8f8f2{/spanspan stylecolor:#a6e22espan stylecolor:#e6db74setting/span/spanspan stylecolor:#f8f8f2:/span span stylecolor:#f8f8f2{/spanspan stylecolor:#a6e22espan stylecolor:#e6db74speed/span/spanspan stylecolor:#f8f8f2:/span span stylecolor:#f8f8f2{/spanspan stylecolor:#a6e22espan stylecolor:#e6db74byte/span/spanspan stylecolor:#f8f8f2:/span span stylecolor:#ae81ffspan stylecolor:#ae81ff1048576/span/spanspan stylecolor:#f8f8f2}/spanspan stylecolor:#f8f8f2,/spanspan stylecolor:#a6e22espan stylecolor:#e6db74errorLimit/span/spanspan stylecolor:#f8f8f2:/span span stylecolor:#f8f8f2{/spanspan stylecolor:#a6e22espan stylecolor:#e6db74record/span/spanspan stylecolor:#f8f8f2:/span span stylecolor:#ae81ffspan stylecolor:#ae81ff0/span/spanspan stylecolor:#f8f8f2}/spanspan stylecolor:#f8f8f2}/spanspan stylecolor:#f8f8f2,/spanspan stylecolor:#a6e22espan stylecolor:#e6db74content/span/spanspan stylecolor:#f8f8f2:/span span stylecolor:#f8f8f2[/spanspan stylecolor:#f8f8f2{/spanspan stylecolor:#a6e22espan stylecolor:#e6db74reader/span/spanspan stylecolor:#f8f8f2:/span span stylecolor:#f8f8f2{/spanspan stylecolor:#a6e22espan stylecolor:#e6db74name/span/spanspan stylecolor:#f8f8f2:/span span stylecolor:#a6e22espan stylecolor:#e6db74hdfsreader/span/spanspan stylecolor:#f8f8f2,/spanspan stylecolor:#a6e22espan stylecolor:#e6db74parameter/span/spanspan stylecolor:#f8f8f2:/span span stylecolor:#f8f8f2{/spanspan stylecolor:#a6e22espan stylecolor:#e6db74path/span/spanspan stylecolor:#f8f8f2:/span span stylecolor:#a6e22espan stylecolor:#e6db74/tmp/test_datax/*/span/spanspan stylecolor:#f8f8f2,/spanspan stylecolor:#a6e22espan stylecolor:#e6db74defaultFS/span/spanspan stylecolor:#f8f8f2:/span span stylecolor:#a6e22espan stylecolor:#e6db74hdfs://localhost:9000/span/spanspan stylecolor:#f8f8f2,/spanspan stylecolor:#a6e22espan stylecolor:#e6db74column/span/spanspan stylecolor:#f8f8f2:/span span stylecolor:#f8f8f2[/spanspan stylecolor:#f8f8f2{/spanspan stylecolor:#a6e22espan stylecolor:#e6db74index/span/spanspan stylecolor:#f8f8f2:/span span stylecolor:#ae81ffspan stylecolor:#ae81ff0/span/spanspan stylecolor:#f8f8f2,/spanspan stylecolor:#a6e22espan stylecolor:#e6db74type/span/spanspan stylecolor:#f8f8f2:/span span stylecolor:#a6e22espan stylecolor:#e6db74string/span/spanspan stylecolor:#f8f8f2}/spanspan stylecolor:#f8f8f2,/spanspan stylecolor:#f8f8f2{/spanspan stylecolor:#a6e22espan stylecolor:#e6db74index/span/spanspan stylecolor:#f8f8f2:/span span stylecolor:#ae81ffspan stylecolor:#ae81ff1/span/spanspan stylecolor:#f8f8f2,/spanspan stylecolor:#a6e22espan stylecolor:#e6db74type/span/spanspan stylecolor:#f8f8f2:/span span stylecolor:#a6e22espan stylecolor:#e6db74string/span/spanspan stylecolor:#f8f8f2}/spanspan stylecolor:#f8f8f2]/spanspan stylecolor:#f8f8f2,/spanspan stylecolor:#a6e22espan stylecolor:#e6db74fileType/span/spanspan stylecolor:#f8f8f2:/span span stylecolor:#a6e22espan stylecolor:#e6db74text/span/spanspan stylecolor:#f8f8f2,/spanspan stylecolor:#a6e22espan stylecolor:#e6db74encoding/span/spanspan stylecolor:#f8f8f2:/span span stylecolor:#a6e22espan stylecolor:#e6db74UTF-8/span/spanspan stylecolor:#f8f8f2,/spanspan stylecolor:#a6e22espan stylecolor:#e6db74fieldDelimiter/span/spanspan stylecolor:#f8f8f2:/span span stylecolor:#a6e22espan stylecolor:#e6db74,/span/spanspan stylecolor:#f8f8f2}/spanspan stylecolor:#f8f8f2}/spanspan stylecolor:#f8f8f2,/spanspan stylecolor:#a6e22espan stylecolor:#e6db74writer/span/spanspan stylecolor:#f8f8f2:/span span stylecolor:#f8f8f2{/spanspan stylecolor:#f8f8f2}/spanspan stylecolor:#f8f8f2}/spanspan stylecolor:#f8f8f2]/spanspan stylecolor:#f8f8f2}/span
span stylecolor:#f8f8f2}/span/code/span/span 2.2.2 参数说明 path 描述要读取的文件路径如果要读取多个文件可以使用正则表达式*注意这里可以支持填写多个路径。 当指定通配符HdfsReader尝试遍历出多个文件信息。例如: 指定/*代表读取/目录下所有的文件指定/yixiao/*代表读取yixiao目录下所有的文件。HdfsReader目前只支持*和?作为文件通配符。 特别需要注意的是DataX会将一个作业下同步的所有的文件视作同一张数据表。用户必须自己保证所有的File能够适配同一套schema信息。并且提供给DataX权限可读。 必选是 默认值无 defaultFS 描述Hadoop hdfs文件系统namenode节点地址。必选是默认值无 fileType 描述文件的类型目前只支持用户配置为text、orc、rc、seq、csv。 text表示textfile文件格式 orc表示orcfile文件格式 rc表示rcfile文件格式 seq表示sequence file文件格式 csv表示普通hdfs文件格式逻辑二维表 特别需要注意的是HdfsReader能够自动识别文件是orcfile、rcfile、sequence file还是textfile或csv类型的文件该项是必填项HdfsReader在做数据同步之前会检查用户配置的路径下所有需要同步的文件格式是否和fileType一致如果不一致则会抛出异常 另外需要注意的是由于textfile和orcfile是两种完全不同的文件格式所以HdfsReader对这两种文件的解析方式也存在差异这种差异导致hive支持的复杂复合类型(比如map,array,struct,union)在转换为DataX支持的String类型时转换的结果格式略有差异比如以map类型为例 orcfile map类型经hdfsreader解析转换成datax支持的string类型后结果为{job80, team60, person70} textfile map类型经hdfsreader解析转换成datax支持的string类型后结果为job:80,team:60,person:70 从上面的转换结果可以看出数据本身没有变化但是表示的格式略有差异所以如果用户配置的文件路径中要同步的字段在Hive中是复合类型的话建议配置统一的文件格式。 如果需要统一复合类型解析出来的格式我们建议用户在hive客户端将textfile格式的表导成orcfile格式的表 column 描述读取字段列表type指定源数据的类型index指定当前列来自于文本第几列(以0开始)value指定当前类型为常量不从源头文件读取数据而是根据value值自动生成对应的列。 默认情况下用户可以全部按照string类型读取数据配置如下 用户可以指定column字段信息配置如下 对于用户指定column信息type必须填写index/value必须选择其一。
span stylecolor:#f8f8f2code classlanguage-javaspan stylecolor:#a6e22espan stylecolor:#e6db74column/span/spanspan stylecolor:#f8f8f2:/span span stylecolor:#f8f8f2[/spanspan stylecolor:#a6e22espan stylecolor:#e6db74*/span/spanspan stylecolor:#f8f8f2]/span/code/span span stylecolor:#f8f8f2code classlanguage-javaspan stylecolor:#f8f8f2{/span
span stylecolor:#a6e22espan stylecolor:#e6db74type/span/spanspan stylecolor:#f8f8f2:/span span stylecolor:#a6e22espan stylecolor:#e6db74long/span/spanspan stylecolor:#f8f8f2,/span
span stylecolor:#a6e22espan stylecolor:#e6db74index/span/spanspan stylecolor:#f8f8f2:/span span stylecolor:#ae81ffspan stylecolor:#ae81ff0/span/span span stylecolor:slategrayspan stylecolor:#75715e//从本地文件文本第一列获取int字段/span/span
span stylecolor:#f8f8f2}/spanspan stylecolor:#f8f8f2,/span
span stylecolor:#f8f8f2{/span
span stylecolor:#a6e22espan stylecolor:#e6db74type/span/spanspan stylecolor:#f8f8f2:/span span stylecolor:#a6e22espan stylecolor:#e6db74string/span/spanspan stylecolor:#f8f8f2,/span
span stylecolor:#a6e22espan stylecolor:#e6db74value/span/spanspan stylecolor:#f8f8f2:/span span stylecolor:#a6e22espan stylecolor:#e6db74alibaba/span/span span stylecolor:slategrayspan stylecolor:#75715e//HdfsReader内部生成alibaba的字符串字段作为当前字段/span/span
span stylecolor:#f8f8f2}/span/code/span 必选是 默认值全部按照string类型读取 fieldDelimiter 另外需要注意的是HdfsReader在读取textfile数据时需要指定字段分割符如果不指定默认为,HdfsReader在读取orcfile时用户无需指定字段分割符hive本身的默认分隔符为 \u0001若你想将每一行作为目的端的一列分隔符请使用行内容不存在的字符比如不可见字符\u0001 分隔符不能使用\n 描述读取的字段分隔符必选否默认值, encoding 描述读取文件的编码配置。必选否默认值utf-8 nullFormat 描述文本文件中无法使用标准字符串定义null(空指针)DataX提供nullFormat定义哪些字符串可以表示为null。 例如如果用户配置: nullFormat:\N那么如果源头数据是\NDataX视作null字段。 必选否 默认值无 compress 描述当fileType文件类型为csv下的文件压缩方式目前仅支持 gzip、bz2、zip、lzo、lzo_deflate、hadoop-snappy、framing-snappy压缩值得注意的是lzo存在两种压缩格式lzo和lzo_deflate用户在配置的时候需要留心不要配错了另外由于snappy目前没有统一的stream formatdatax目前只支持最主流的两种hadoop-snappyhadoop上的snappy stream format和framing-snappygoogle建议的snappy stream format;orc文件类型下无需填写。必选否默认值无 csvReaderConfig 描述读取CSV类型文件参数配置Map类型。读取CSV类型文件使用的CsvReader进行读取会有很多配置不配置则使用默认值。必选否 默认值无 常见配置 span stylecolor:#f8f8f2code classlanguage-javaspan stylecolor:#a6e22espan stylecolor:#e6db74csvReaderConfig/span/spanspan stylecolor:#f8f8f2:/spanspan stylecolor:#f8f8f2{/span
span stylecolor:#a6e22espan stylecolor:#e6db74safetySwitch/span/spanspan stylecolor:#f8f8f2:/span span stylecolor:#ae81ffspan stylecolor:#f92672false/span/spanspan stylecolor:#f8f8f2,/span
span stylecolor:#a6e22espan stylecolor:#e6db74skipEmptyRecords/span/spanspan stylecolor:#f8f8f2:/span span stylecolor:#ae81ffspan stylecolor:#f92672false/span/spanspan stylecolor:#f8f8f2,/span
span stylecolor:#a6e22espan stylecolor:#e6db74useTextQualifier/span/spanspan stylecolor:#f8f8f2:/span span stylecolor:#ae81ffspan stylecolor:#f92672false/span/span
span stylecolor:#f8f8f2}/span/code/span 所有配置项及默认值,配置时 csvReaderConfig 的map中请严格按照以下字段名字进行配置 hadoopConfig
描述hadoopConfig里可以配置与Hadoop相关的一些高级参数比如HA的配置。
span stylecolor:#f8f8f2code classlanguage-javaspan stylecolor:#a6e22espan stylecolor:#e6db74hadoopConfig/span/spanspan stylecolor:#f8f8f2:/spanspan stylecolor:#f8f8f2{/spanspan stylecolor:#a6e22espan stylecolor:#e6db74dfs.nameservices/span/spanspan stylecolor:#f8f8f2:/span span stylecolor:#a6e22espan stylecolor:#e6db74testDfs/span/spanspan stylecolor:#f8f8f2,/spanspan stylecolor:#a6e22espan stylecolor:#e6db74dfs.ha.namenodes.testDfs/span/spanspan stylecolor:#f8f8f2:/span span stylecolor:#a6e22espan stylecolor:#e6db74namenode1,namenode2/span/spanspan stylecolor:#f8f8f2,/spanspan stylecolor:#a6e22espan stylecolor:#e6db74dfs.namenode.rpc-address.youkuDfs.namenode1/span/spanspan stylecolor:#f8f8f2:/span span stylecolor:#a6e22espan stylecolor:#e6db74/span/spanspan stylecolor:#f8f8f2,/spanspan stylecolor:#a6e22espan stylecolor:#e6db74dfs.namenode.rpc-address.youkuDfs.namenode2/span/spanspan stylecolor:#f8f8f2:/span span stylecolor:#a6e22espan stylecolor:#e6db74/span/spanspan stylecolor:#f8f8f2,/spanspan stylecolor:#a6e22espan stylecolor:#e6db74dfs.client.failover.proxy.provider.testDfs/span/spanspan stylecolor:#f8f8f2:/span
span stylecolor:#a6e22espan stylecolor:#e6db74org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider/span/span
span stylecolor:#f8f8f2}/span/code/span 必选否 默认值无 minInputSplitSize 描述Hadoop hdfs部分文件类型支持文件内部切分这样一个文件可以被切分到多个mapper里面并发执行每个mapper读取这个文件的一部分。这边测试环境验证确实可以做到速度的 线性 扩展。注意:由于切分的粒度更细了启动mapper数量多可能占用的机器资源也多一些。目前支持文件内部切分的文件类型有: rc、text、csv、parquet必选否默认值无限大2.3 类型转换
2.3.1 RCFile
如果用户同步的hdfs文件是rcfile由于rcfile底层存储的时候不同的数据类型存储方式不一样而HdfsReader不支持对Hive元数据数据库进行访问查询因此需要用户在column type里指定该column在hive表中的数据类型比如该column是bigint型。那么type就写为bigint如果是double型则填写double如果是float型则填写float。注意如果是varchar或者char类型则需要填写字节数比如varchar(255)char(30)等跟hive表中该字段的类型保持一致或者也可以填写string类型。
如果column配置的是*会读取所有column那么datax会默认以string类型读取所有column此时要求column中的类型只能为String,CHAR,VARCHAR中的一种。
RCFile中的类型默认会转成DataX支持的内部类型对照表如下
RCFile在Hive表中的数据类型DataX 内部类型TINYINT,SMALLINT,INT,BIGINTLongFLOAT,DOUBLE,DECIMALDoubleString,CHAR,VARCHARStringBOOLEANBooleanDate,TIMESTAMPDateBinaryBinary
2.3.2 ParquetFile
如果column配置的是*, 会读取所有列; 此时Datax会默认以String类型读取所有列. 如果列中出现Double等类型的话, 全部将转换为String类型。如果column配置读取特定的列的话, DataX中的类型和Parquet文件类型的对应关系如下:
Parquet格式文件的数据类型DataX 内部类型int32, int64, int96Longfloat, doubleDoublebinaryBinarybooleanBooleanfixed_len_byte_arrayString
textfile,orcfile,sequencefile:
由于textfile和orcfile文件表的元数据信息由Hive维护并存放在Hive自己维护的数据库如mysql中目前HdfsReader不支持对Hive元数据数据库进行访问查询因此用户在进行类型转换的时候必须指定数据类型如果用户配置的column为*则所有column默认转换为string类型。HdfsReader提供了类型转换的建议表如下
DataX 内部类型Hive表 数据类型LongTINYINT,SMALLINT,INT,BIGINTDoubleFLOAT,DOUBLEStringString,CHAR,VARCHAR,STRUCT,MAP,ARRAY,UNION,BINARYBooleanBOOLEANDateDate,TIMESTAMP
其中
Long是指Hdfs文件文本中使用整形的字符串表示形式例如123456789。Double是指Hdfs文件文本中使用Double的字符串表示形式例如3.1415。Boolean是指Hdfs文件文本中使用Boolean的字符串表示形式例如true、false。不区分大小写。Date是指Hdfs文件文本中使用Date的字符串表示形式例如2014-12-31。
特别提醒
Hive支持的数据类型TIMESTAMP可以精确到纳秒级别所以textfile、orcfile中TIMESTAMP存放的数据类似于2015-08-21 22:40:47.397898389如果转换的类型配置为DataX的Date转换之后会导致纳秒部分丢失所以如果需要保留纳秒部分的数据请配置转换类型为DataX的String类型。
2.4 按分区读取
Hive在建表的时候可以指定分区partition例如创建分区partition(day20150820,hour09)对应的hdfs文件系统中相应的表的目录下则会多出/20150820和/09两个目录且/20150820是/09的父目录。了解了分区都会列成相应的目录结构在按照某个分区读取某个表所有数据时则只需配置好json中path的值即可。
比如需要读取表名叫mytable01下分区day为20150820这一天的所有数据则配置如下
span stylecolor:#f8f8f2code classlanguage-javaspan stylecolor:#a6e22espan stylecolor:#e6db74path/span/spanspan stylecolor:#f8f8f2:/span span stylecolor:#a6e22espan stylecolor:#e6db74/user/hive/warehouse/mytable01/20150820/*/span/span/code/span 3. MaxCompute写入
3.1 快速介绍
ODPSWriter插件用于实现往ODPS(即MaxCompute)插入或者更新数据主要提供给etl开发同学将业务数据导入MaxCompute适合于TB,GB数量级的数据传输。在底层实现上根据你配置的 项目 / 表 / 分区 / 表字段 等信息通过 Tunnel写入 MaxCompute 中。支持MaxCompute中以下数据类型BIGINT、DOUBLE、STRING、DATATIME、BOOLEAN。下面列出ODPSWriter针对MaxCompute类型转换列表:
DataX 内部类型MaxCompute 数据类型LongbigintDoubledoubleStringstringDatedatetimeBooleanbool
3.2 实现原理
在底层实现上ODPSWriter是通过MaxCompute Tunnel写入MaxCompute系统的有关MaxCompute的更多技术细节请参看 MaxCompute主站: https://www.aliyun.com/product/odps
3.3 功能说明
3.3.1 配置样例
这里使用一份从内存产生到MaxCompute导入的数据。 span stylecolor:#f8f8f2code classlanguage-javaspan stylecolor:#f8f8f2{/spanspan stylecolor:#a6e22espan stylecolor:#e6db74core/span/spanspan stylecolor:#f8f8f2:/span span stylecolor:#f8f8f2{/spanspan stylecolor:#a6e22espan stylecolor:#e6db74transport/span/spanspan stylecolor:#f8f8f2:/span span stylecolor:#f8f8f2{/spanspan stylecolor:#a6e22espan stylecolor:#e6db74channel/span/spanspan stylecolor:#f8f8f2:/span span stylecolor:#f8f8f2{/spanspan stylecolor:#a6e22espan stylecolor:#e6db74speed/span/spanspan stylecolor:#f8f8f2:/span span stylecolor:#f8f8f2{/spanspan stylecolor:#a6e22espan stylecolor:#e6db74byte/span/spanspan stylecolor:#f8f8f2:/span span stylecolor:#a6e22espan stylecolor:#e6db74-1048576/span/spanspan stylecolor:#f8f8f2,/spanspan stylecolor:#a6e22espan stylecolor:#e6db74record/span/spanspan stylecolor:#f8f8f2:/span span stylecolor:#a6e22espan stylecolor:#e6db74-1/span/spanspan stylecolor:#f8f8f2}/spanspan stylecolor:#f8f8f2}/spanspan stylecolor:#f8f8f2}/spanspan stylecolor:#f8f8f2}/spanspan stylecolor:#f8f8f2,/spanspan stylecolor:#a6e22espan stylecolor:#e6db74job/span/spanspan stylecolor:#f8f8f2:/span span stylecolor:#f8f8f2{/spanspan stylecolor:#a6e22espan stylecolor:#e6db74setting/span/spanspan stylecolor:#f8f8f2:/span span stylecolor:#f8f8f2{/spanspan stylecolor:#a6e22espan stylecolor:#e6db74speed/span/spanspan stylecolor:#f8f8f2:/span span stylecolor:#f8f8f2{/spanspan stylecolor:#a6e22espan stylecolor:#e6db74byte/span/spanspan stylecolor:#f8f8f2:/span span stylecolor:#ae81ffspan stylecolor:#ae81ff1048576/span/spanspan stylecolor:#f8f8f2}/spanspan stylecolor:#f8f8f2,/spanspan stylecolor:#a6e22espan stylecolor:#e6db74errorLimit/span/spanspan stylecolor:#f8f8f2:/span span stylecolor:#f8f8f2{/spanspan stylecolor:#a6e22espan stylecolor:#e6db74record/span/spanspan stylecolor:#f8f8f2:/span span stylecolor:#ae81ffspan stylecolor:#ae81ff0/span/spanspan stylecolor:#f8f8f2}/spanspan stylecolor:#f8f8f2}/spanspan stylecolor:#f8f8f2,/spanspan stylecolor:#a6e22espan stylecolor:#e6db74content/span/spanspan stylecolor:#f8f8f2:/span span stylecolor:#f8f8f2[/spanspan stylecolor:#f8f8f2{/spanspan stylecolor:#a6e22espan stylecolor:#e6db74reader/span/spanspan stylecolor:#f8f8f2:/span span stylecolor:#f8f8f2{/spanspan stylecolor:#f8f8f2}/spanspan stylecolor:#f8f8f2,/spanspan stylecolor:#a6e22espan stylecolor:#e6db74writer/span/spanspan stylecolor:#f8f8f2:/span span stylecolor:#f8f8f2{/spanspan stylecolor:#a6e22espan stylecolor:#e6db74name/span/spanspan stylecolor:#f8f8f2:/span span stylecolor:#a6e22espan stylecolor:#e6db74odpswriter/span/spanspan stylecolor:#f8f8f2,/spanspan stylecolor:#a6e22espan stylecolor:#e6db74parameter/span/spanspan stylecolor:#f8f8f2:/span span stylecolor:#f8f8f2{/spanspan stylecolor:#a6e22espan stylecolor:#e6db74project/span/spanspan stylecolor:#f8f8f2:/span span stylecolor:#a6e22espan stylecolor:#e6db74/span/spanspan stylecolor:#f8f8f2,/spanspan stylecolor:#a6e22espan stylecolor:#e6db74table/span/spanspan stylecolor:#f8f8f2:/span span stylecolor:#a6e22espan stylecolor:#e6db74/span/spanspan stylecolor:#f8f8f2,/spanspan stylecolor:#a6e22espan stylecolor:#e6db74partition/span/spanspan stylecolor:#f8f8f2:/span span stylecolor:#a6e22espan stylecolor:#e6db74pt1,dt2/span/spanspan stylecolor:#f8f8f2,/spanspan stylecolor:#a6e22espan stylecolor:#e6db74column/span/spanspan stylecolor:#f8f8f2:/span span stylecolor:#f8f8f2[/spanspan stylecolor:#a6e22espan stylecolor:#e6db74col1/span/spanspan stylecolor:#f8f8f2,/spanspan stylecolor:#a6e22espan stylecolor:#e6db74col2/span/spanspan stylecolor:#f8f8f2]/spanspan stylecolor:#f8f8f2,/spanspan stylecolor:#a6e22espan stylecolor:#e6db74accessId/span/spanspan stylecolor:#f8f8f2:/span span stylecolor:#a6e22espan stylecolor:#e6db74/span/spanspan stylecolor:#f8f8f2,/spanspan stylecolor:#a6e22espan stylecolor:#e6db74accessKey/span/spanspan stylecolor:#f8f8f2:/span span stylecolor:#a6e22espan stylecolor:#e6db74/span/spanspan stylecolor:#f8f8f2,/spanspan stylecolor:#a6e22espan stylecolor:#e6db74truncate/span/spanspan stylecolor:#f8f8f2:/span span stylecolor:#ae81ffspan stylecolor:#f92672true/span/spanspan stylecolor:#f8f8f2,/spanspan stylecolor:#a6e22espan stylecolor:#e6db74odpsServer/span/spanspan stylecolor:#f8f8f2:/span span stylecolor:#a6e22espan stylecolor:#e6db74http://service.odps.aliyun.com/api/span/spanspan stylecolor:#f8f8f2,/spanspan stylecolor:#a6e22espan stylecolor:#e6db74tunnelServer/span/spanspan stylecolor:#f8f8f2:/span span stylecolor:#a6e22espan stylecolor:#e6db74http://dt.odps.aliyun.com/span/spanspan stylecolor:#f8f8f2,/spanspan stylecolor:#a6e22espan stylecolor:#e6db74accountType/span/spanspan stylecolor:#f8f8f2:/span span stylecolor:#a6e22espan stylecolor:#e6db74aliyun/span/spanspan stylecolor:#f8f8f2}/spanspan stylecolor:#f8f8f2}/spanspan stylecolor:#f8f8f2}/spanspan stylecolor:#f8f8f2]/spanspan stylecolor:#f8f8f2}/span
span stylecolor:#f8f8f2}/span/code/span
3.3.2 参数说明 accessId 描述MaxCompute系统登录ID必选是默认值无 accessKey 描述MaxCompute系统登录Key必选是默认值无 project 描述MaxCompute表所属的project注意:Project只能是字母数字组合请填写英文名称。在云端等用户看到的MaxCompute项目中文名只是显示名请务必填写底层真实地Project英文标识名。必选是默认值无 table 描述写入数据的表名不能填写多张表因为DataX不支持同时导入多张表。必选是默认值无 partition 描述需要写入数据表的分区信息必须指定到最后一级分区。把数据写入一个三级分区表必须配置到最后一级分区例如pt20150101/type1/biz2。必选如果是分区表该选项必填如果非分区表该选项不可填写。默认值空 column 描述需要导入的字段列表当导入全部字段时可以配置为column: [*], 当需要插入部分MaxCompute列填写部分列例如column: [id, name]。ODPSWriter支持列筛选、列换序例如表有a,b,c三个字段用户只同步c,b两个字段。可以配置成[c,b], 在导入过程中字段a自动补空设置为null。必选否默认值无 truncate 描述ODPSWriter通过配置truncate: true保证写入的幂等性即当出现写入失败再次运行时ODPSWriter将清理前述数据并导入新数据这样可以保证每次重跑之后的数据都保持一致。 truncate选项不是原子操作MaxCompute SQL无法做到原子性。因此当多个任务同时向一个Table/Partition清理分区时候可能出现并发时序问题请务必注意针对这类问题我们建议尽量不要多个作业DDL同时操作同一份分区或者在多个并发作业启动前提前创建分区。 必选是 默认值无 odpsServer 描述MaxCompute的server详细可以参考文档https://help.aliyun.com/document_detail/34951.html线上公网地址为 http://service.cn.maxcompute.aliyun.com/api 必选是默认值无 tunnelServer 描述MaxCompute的tunnelserver详细可以参考文档https://help.aliyun.com/document_detail/34951.html线上公网地址为 http://dt.cn-beijing.maxcompute.aliyun-inc.com 必选是默认值无 blockSizeInMB 描述为了提高数据写出MaxCompute的效率ODPSWriter会攒数据buffer待数据达到一定大小后会进行一次数据提交。blockSizeInMB即为攒数据buffer的大小默认是64MB。必选否默认值64
原文链接 本文为云栖社区原创内容未经允许不得转载。