由于kettle6/7等自带的elasticsearch-bulk-insert-plugin插件,最多支持es2.x,对于使用es5.x和ex6.x的情况,本人使用源码重新编译打包了相应的插件,请按如下步骤配置使用。
1、删除(自行备份)旧版本的elasticsearch-bulk-insert-plugin插件,在kettle目录data-integration/plugins下
2、根据自己环境,下载es5-plugin或者es6-plugin,以及相应的Jackson包
如果文件链接过期,请加qq群:195548102 咨询。
3、将es-plugin加压后复制到data-integration/plugins下,文件夹名字随便,再将jackson-2.8.10-libs里面的jar包替换掉data-integration/lib下旧版本相应的jar包:
【注:如果是kettle8,不需要替换这些jar】
2.8.10的几个jar包如下:
旧版本可能是这样的:
注意,jar包名字看不太一样,只要把jackson-开头的删掉(自行备份)替换即可。另外高版本的jackson也许不兼容kettle的json输入输出插件,需要自己验证,如果有问题,再来咨询。
如果替换后遇到这样的错误:
【NoClassDefFoundError: org/codehaus/jackson/map/ObjectMapper、org/codehaus/jackson/Versiond】
可以将之前的jar放回去:jackson-mapper-asl-1.9.2.jar、jackson-core-asl-1.9.2.jar
4、重启kettle,elasticsearch-bulk-insert-plugin应该就可以支持es5或者es6了。
注意:
1、es配置中,端口要使用TCP端口,默认是9300
2、如果修改了es集群名称,也在插件中配置cluster.name和相应值,默认是 elasticsearch 不需要配置,集群名字可以通过9200端口访问查看
如果在使用中遇到问题,请加QQ群:195548102 咨询。