MRS二次开发(14/27): ES的Transport接口样例

网友投稿 691 2022-05-30

MRS二次开发(14/27): ES的Transport接口样例

一、ES简介

Elasticsearch是一个基于Lucene的搜索服务器,它提供了一个分布式多用户能力的全文搜索引擎和分析引擎。设计用于大数据中,能够稳定、可靠、快速地实现实时搜索和分析,并且安装使用的方法十分简单方便。

二、样例背景

假定用户开发一个应用程序,用于搜索所有图书信息,并要求提供关键字搜索关键字相关的图书,并打分按分排序,其中搜索的功能就可以用Elasticsearch来实现,搜索流程如下:

客户端连接集群

查询集群健康状态

检查指定索引是否存在

创建指定分片数目的索引

写入索引数据

批量写入数据

指定路由批量写入数据

查询索引信息

删除索引

删除索引中的文档

刷新索引

多线程样例

三、Windows环境样例调用步骤

环境准备,参考第一课

比对时间,与集群时间误差不能超过5分钟

检查 C:\Windows\System32\drivers\etc\hosts文件中是否包含所有集群节点的域名IP映射信息

在IDEA打开样例代码的elasticsearch-transport-client-example目录,检查SDK配置

默认自动加载依赖,如未加载,则打开后选中pom.xml文件,右键点击“Add As Maven Project”后等待项目自动将依赖下载完毕

从Manager界面下载用户认证凭据后,解压缩获取秘钥文件user.keytab和krb5.conf,将这两个文件放到样例代码的conf目录

找到客户端文件夹例如“/opt/client/Elasticsearch/elasticsearch-example/conf”目录下的配置文件“es-transport-client-example.properties”,拷贝该文件的相关参数值赋值给样例工程conf目录下的文件“esParams.properties”

修改样例工程conf目录下的文件“esParams.properties”中principal参数为自己创建的用户名,krb5Path和keytabPath参数填写为样例工程conf目录的绝对路径,以“\”分割

在src\main\java\com\huawei\fusioninsight\elasticsearch\example\Sample.java中右键执行Run 启动样例代码

四、Linux环境调试步骤

前提:Linux环境有安装集群客户端

完成Windows环境样例调用步骤

在windows环境中执行打包

通过如下maven指令构建样例工程依赖jar包到lib目录,注意--settings后客户使用自己的本地目录

mvn dependency:copy-dependencies -DoutputDirectory=lib --settings D:\tools\apache-maven-3.6.3\conf\settings.xml

检查linux环境时间与集群误差不超过5分钟

检查linux环境的JDK版本为1.8

配置linux环境的/etc/hosts文件

在Linux环境新建目录,例如“/opt/estest”,并创建子目录“libs”和“conf”

将步骤3打的jar包和步骤4lib目录的jar包上传到Linux环境lib目录下,例如“/opt/estest/lib”

将IntelliJ IDEA工程“conf”目录下的所有文件拷贝到与依赖库文件夹同级的目录“conf”下,例如“/opt/estest/conf”

修改“/opt/estest/conf”目录下esParams.properties文件中krb5Path和keytabPath的路径,例如我们将认证文件配置在“/opt/estest/conf”目录下,即修改为“/opt/estest/conf/”

检查“/opt/estest/conf”目录下和“/opt/estest/libs”文件目录下的所有文件,对当前用户均具有可读权限。

切换到“/opt/estest”,执行以下命令,运行代码样例程序

java -cp /opt/estest/conf/*:/opt/estest/libs/* com.huawei.fusioninsight.elasticsearch.example.Sample

MRS二次开发(14/27): ES的Transport接口样例

五、问题互动渠道

FusonInsight 论坛入口 https://bbs.huaweicloud.com/forum/forum-1103-1.html

EI企业智能 FusionInsight

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Groovy中的json和xml操作
下一篇:uni-app使用微信JS-SDK
相关文章