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

举报
晋红轻 发表于 2020/12/26 11:28:01 2020/12/26
【摘要】 Elasticsearch是一个基于Lucene的搜索服务器,它提供了一个分布式多用户能力的全文搜索引擎和分析引擎。设计用于大数据中,能够稳定、可靠、快速地实现实时搜索和分析,并且安装使用的方法十分简单方便。本文介绍FusionInsight MRS Elasticsearch二次开发。

MRS二次开发(13/27): ESRest接口样例

一、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

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。