一、背景
二、升级步骤
2.1 源码导入
2.2 版本号修改
2.3 ES Client对比
2.4 代码修改
2.5 打包发布
三、遗留问题
一、背景
项目中有对大数据量查询的需求,数据在hive上加工,ES作为对底层查询的支持。这样的体系结构涉及到hive数据迁移到ES的过程,计划用kettle的ES批量加载插件加载数据到ES,在实际开发中发现kettle连不上ES集群。
我们ES是5.5.1版本,而kettle默认支持的版本较低;Java Client连接ES,Client的主版本号要和ES集群主版本号保持一致,否则有可能连不上集群、或者即使连上也不支持新功能,所以要对ES插件进行升级。
二、升级步骤
2.1、源码导入
下载对应kettle版本源码、导入项目到IDE,项目路径:plugins/elasticsearch-bulk-insertx。8.0以后版本用maven管理,之前是ant,我们用的是6.0版本,下面的配置就以ant为准。(有下载源码的例子)
2.2、版本号修改
打开ivy.xml,看到es版本是1.5.2
增加对5.5.1版本支持:
2.3、ES Client对比
java client有两种方法连接到ES集群:Transport Client和Node Client,两者实现原理有很大不同。
Node Client会加入集群,但不存储数据、也就不能成为主节点。因本身是集群的一个节点,它知道整个集群的状态(所有的节点在哪、哪个分片在哪个节点上等),这