在datax之前版本中添加filewriter并创建job时出现问题

问题描述:

在新版本的datax中,filewriter测试可用;

把plugin/writer/filewriter拷贝到之前版本的plugin/writer下,用之前版本的datax创建输出到file的job时出现问题,如上图。

解决的过程:

一)分析

eclipse导入工程源码,打开com.taobao.datax.engine.schedule.Engine.java,

定位到301行,if (writerConf.getPath() == null) {

可知,writerConf在调用getPath方法时,抛出空指针异常

查看300行,PluginConf writerConf = pluginReg.get(dpjc.getName());

查看pluginReg,为Map<String, PluginConf> com.taobao.datax.engine.schedule.Engine.pluginReg

可知Map: pluginReg  没有从  key: dpjc.getName()获得一个PluginConf实例;

二)

在301行前加入,System.out.println("dpjc.getName()=" + dpjc.getName());

ant编译打包,将build/engine下的engine-1.0.0.jar覆盖拷贝到datax的安装目录,

再次创建job,

三)

以上说明插件的配置文件中没有filewriter对应的配置信息

但是,已经把新版本中plugin/writer/filewriter下的plugin.xml拷贝过来了

四)

原来旧版本的datax把所有reader、writer插件的配置信息放到conf下的plugins.xml中,

只要把上图的plugin标签下的内容拷贝到plugins.xml中即可成功创建job.

 

感谢龙哥帮助调试解决问题~

 

posted on 2013-08-08 18:57  王健男  阅读(791)  评论(1编辑  收藏  举报