High Level REST Client 访问阿里云6.3 Elasticsearch 实例实现
开发环境:InteliJ IDEA
操作系统 :macOS Mojave
Elasticsearch 版本:阿里云 6.3.2_with_X-Pack
客户端版本:REST Client 6.3.2
1. 预先创建好阿里云 ES 实例,开启公网地址访问白名单。
2. 预先创建好 index 和 mapping(使用 Kibana Dev Tools 创建)
mappings: book
properties: (book_id (keyword), name (text))
PUT index_test { "mappings": { "book": { "properties" : { "book_id" : { "type":"keyword" }, "name" : { "type":"text" } } } } }
3. 创建项目及 RestClient 类
4. pom.xml
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>me.gary.es</groupId> <artifactId>high-level-rest-client-6</artifactId> <version>1.0-SNAPSHOT</version> <dependencies> <dependency> <groupId>org.elasticsearch.client</groupId> <artifactId>elasticsearch-rest-high-level-client</artifactId> <version>6.3.2</version> </dependency> </dependencies> </project>
JDK至少在 1.8及以上版本。
Java high level REST Client 版本建议不高于 ES 实例的版本,最理想的是和集群版本一致。
5. 构建 REST Client 对象进行访问
Java High Level REST Client 基于 Java Low Level REST client 实现的基础上,主要目标是为了暴露该 API 特定的方法。将 request 对象作为参数,返回一个 response 对象。该 API 可以同步或异步调用,同步调用方式立即返回一个 response 对象;而异步调用方式依赖于监听,该监听当有请求返回或是错误返回时通知到该方法继续执行。Java High Level REST Client 依赖于 Elasticsearch core 项目,接收的 request 对象和返回的 response 对象和 TransportClient 一样。
本例仅演示同步调用方式。
import org.apache.http.HttpHost; import org.apache.http.auth.AuthScope; import org.apache.http.auth.UsernamePasswordCredentials; import org.apache.http.client.CredentialsProvider; import org.apache.http.impl.client.BasicCredentialsProvider; import org.apache.http.impl.nio.client.HttpAsyncClientBuilder; import org.elasticsearch.action.index.IndexRequest; import org.elasticsearch.action.index.IndexResponse; import org.elasticsearch.client.RestClient; import org.elasticsearch.client.RestClientBuilder; import org.elasticsearch.client.RestHighLevelClient; import java.io.IOException; import java.util.HashMap; import java.util.Map; public class RestClientTest { public static void main(String[] args) { final CredentialsProvider credentialsProvider = new BasicCredentialsProvider(); credentialsProvider.setCredentials(AuthScope.ANY, new UsernamePasswordCredentials("elastic", "******")); RestHighLevelClient client = new RestHighLevelClient( RestClient.builder(new HttpHost("es-cn-******.public.elasticsearch" + ".aliyuncs.com", 9200)) .setHttpClientConfigCallback(new RestClientBuilder.HttpClientConfigCallback() { public HttpAsyncClientBuilder customizeHttpClient(HttpAsyncClientBuilder httpClientBuilder) { return httpClientBuilder.setDefaultCredentialsProvider(credentialsProvider); } })); try { // 创建request Map<String, Object> jsonMap = new HashMap<>(); jsonMap.put("book_id", "0001"); jsonMap.put("name", "Pride and Prejudice"); IndexRequest indexRequest = new IndexRequest("index_test", "book", "0001") .source(jsonMap); // 同步执行 IndexResponse indexResponse = client.index(indexRequest); long version = indexResponse.getVersion(); System.out.println(
);client.close(); } catch (IOException ioException) { // 异常处理 } } }
该文档为第一次更新,成功返回版本号“1”,示例运行成功。
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Dataworks调度能力升级——分支节点
分支节点登场 在日常Dataworks的使用过程中,经常会有同学遇到如下的问题:我有一个节点,需要每个月的最后一天执行,应该如何设置? 这种情况我们一般的回复是:由于cron表达式无法表达这种场景,所以暂时无法支持。 但是,现在我们有了分支节点,它让我们可以套用switch-case的编程模型来搞定这个问题。下面有请分支节点和他的小兄弟们粉墨登场!!! 分支节点的兄弟们 现在打开“数据开发”页面,可以看到“控制节点”一栏多了几个新面孔,先来一张合影: 他们分别是: 能把自己的结果传给下游的赋值节点 —— 赋值节点复用了节点上下文依赖的特性,在已有常量/变量两种上下文的基础上,赋值节点自带一种自定义的上下文输出。Dataworks会捕获赋值节点的select结果或者打印结果,把这个结果以outputs作为上下文输出参数的值供下游节点引用。 能决定哪
- 下一篇
使用Ranger对Hive数据进行脱敏
Ranger支持对Hive数据的脱敏处理(Data Masking),它对select的返回结果进行脱敏处理,对用户屏蔽敏感信息。 备注:该功能针对HiveServer2的场景(如beeline/jdbc/Hue等途径执行的select),对于使用Hive Client(如hive -e 'select xxxx')不支持。 接下来介绍如何在E-MapReduce中使用该功能的步骤。 1.Hive组件配置Ranger 参见文档: Enable Hive Ranger Plugin 2. 配置Data Mask Policy 在Ranger UI的emr-hive的service页面可以对用户访问Hive数据进行脱敏处理。 支持多种脱敏处理方式,比如显示开始的4个字符/显示最后的4个字符/Hash处理等 配置Mask Policy时不支持通配符(如
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS7,CentOS8安装Elasticsearch6.8.6
- CentOS6,CentOS7官方镜像安装Oracle11G
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- CentOS8编译安装MySQL8.0.19
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- Windows10,CentOS7,CentOS8安装Nodejs环境
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7