MRS二次开发(13/27): ES的Rest接口样例
MRS二次开发(13/27): ES的Rest接口样例
一、ES简介
Elasticsearch是一个基于Lucene的搜索服务器,它提供了一个分布式多用户能力的全文搜索引擎和分析引擎。设计用于大数据中,能够稳定、可靠、快速地实现实时搜索和分析,并且安装使用的方法十分简单方便。
二、样例背景
假定用户开发一个应用程序,用于搜索所有图书信息,并要求提供关键字搜索关键字相关的图书,并打分按分排序,其中搜索的功能就可以用Elasticsearch来实现,搜索流程如下:
客户端连接集群
查询集群健康状态
检查指定索引是否存在
创建指定分片数目的索引
写入索引数据
批量写入数据
指定路由批量写入数据
查询索引信息
删除索引
删除索引中的文档
刷新索引
多线程样例
三、Windows环境样例调用步骤
环境准备,参考第一课
比对时间,与集群时间误差不能超过5分钟
检查 C:\Windows\System32\drivers\etc\hosts文件中是否包含所有集群节点的域名IP映射信息
在IDEA打开样例代码的elasticsearch-rest-client-example目录,检查SDK配置
默认自动加载依赖,如未加载,则打开后选中pom.xml文件,右键点击“Add As Maven Project”后等待项目自动将依赖下载完毕
从Manager界面下载用户认证凭据后,解压缩获取秘钥文件user.keytab和krb5.conf,将这两个文件放到样例代码的conf目录
找到客户端文件夹例如“/opt/client/Elasticsearch/elasticsearch-example/conf”目录下的配置文件“es-rest-client-example.properties”,拷贝该文件的相关参数值赋值给样例工程conf目录下的文件“esParams.properties”。
修改样例工程conf目录下的文件“esParams.properties”中principal参数为自己创建的用户名
在src\main\java\com\huawei\fusioninsight\elasticsearch\example\highlevel\allrequests\HighLevelRestClientAllRequests.java中右键执行Run 启动样例代码
在src\main\java\com\huawei\fusioninsight\elasticsearch\example\lowlevel\allrequests\LowLevelRestClientAllRequests.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”目录下和“/opt/estest/libs”文件目录下的所有文件,对当前用户均具有可读权限。
切换到“/opt/estest”,执行以下命令,运行Low Level Rest Client代码样例程序
- java -cp /opt/estest/conf/*:/opt/estest/libs/* com.huawei.fusioninsight.elasticsearch.example.lowlevel.allrequests.LowLevelRestClientAllRequests
执行以下命令,运行High Level Rest Client代码样例程序
- java -cp /opt/estest/conf/*:/opt/estest/libs/* com.huawei.fusioninsight.elasticsearch.example.highlevel.allrequests.HighLevelRestClientAllRequests
五、问题互动渠道
FusonInsight 论坛入口 https://bbs.huaweicloud.com/forum/forum-1103-1.html
- 点赞
- 收藏
- 关注作者
评论(0)