背景
為了前端更快地進行數(shù)據(jù)檢索,需要將數(shù)據(jù)存儲到es中是一個很不錯的選擇。由于公司etl主要工具是kettle,這里介紹如何基于kettle的elasticsearch-bulk-insert-plugin插件將數(shù)據(jù)導入es。在實施過程中會遇到一些坑,這里記錄解決方案。
可能會遇到的報錯:
1、No elasticSearch nodes found
2、不支持ssl認證(用戶名&密碼)
后文提供解決辦法
es插件配置
這里舉個簡單例子,將mysql的一張表導入到 es 中:
?表輸入比較簡單就不介紹了,這里講下es插件的配置。
1、先配置 index、type, id(可以不設置)
??2、配置ip跟port
注意:port配置的是Tcp協(xié)議端口,也就是 9300,不是9200(底層采用的是TransportClient)
?3、設置字段映射
?
4、Settings配置
需要設置集群名稱 cluster.name:elasticsearch
如果不知道cluster.name的話,可以訪問9200端口,頁面會顯示詳細信息。
?
?以上配置完成即可。
不出意外的話,意外來了。點擊第2步的 test connect,會報錯No elasticSearch nodes found
錯誤及解決辦法
錯誤原因是因為 kettle6/7支持的es版本是es2.x,kettle8支持到es6。如果你的版本是es7及以上,自帶的插件是不支持的。
需要下載插件源碼,修改版本后,重新編譯打包。
可以參考(這個是不支持ssl認證的):關(guān)于Kettle使用es批量導出插件支持ES5/ES6/ES7的說明_空山苦水禪人的博客-CSDN博客_kettle連接es5
在此基礎上,本人修改了源碼,再次編譯,可以支持es7、es8并支持ssl用戶名及密碼驗證。由于這步比較麻煩,直接放到網(wǎng)盤上。
鏈接:https://pan.baidu.com/s/1LWwH-u7r0uAUfVKSz5vmdQ?
提取碼:gpm7
操作步驟:
1、刪除data-integration\lib 下 所有 jackson- 開頭的jar包,然后把jackson-2.8.10-libs文件夾中的jar拷到lib目錄下
2、替換data-integration\plugins\elasticsearch-bulk-insert-plugin文件夾
3、如果開啟了ssl認證,需要把 秘鑰文件(.p12) 拷貝到data-integration\plugins\elasticsearch-bulk-insert-plugin\config目錄下。
如果不確定是否開啟ssl認證,可以看下配置文件elasticsearch.yml。
4、重啟kettle即可。
如果開啟了ssl 認證,還需要在插件中配置:
xpack.security.transport.ssl.keystore.password、xpack.security.user
?(注:秘鑰文件密碼? 是在生成P12證書時設置的密碼)文章來源:http://www.zghlxwxcb.cn/news/detail-789608.html
如果對你有幫助,記得點個贊喲!文章來源地址http://www.zghlxwxcb.cn/news/detail-789608.html
到了這里,關(guān)于使用kettle同步全量數(shù)據(jù)到Elasticsearch(es)--elasticsearch-bulk-insert-plugin應用的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!