【spark】spark使用sql读取elasticsearch es索引,使用keystore配置用户密码

参考文章

spark配置elasticsearch属性汇总(基于es7)
es-offical-doc
Spark多方案读取Es性能比较
Spark读写ES数据时遇到的问题总结
es 查询多个索引的文档

spark table中使用明文密码

set es.index.auto.create=true
drop table if exists default.test_es01;
create table default.test_es01(
id STRING,
name STRING,
es_metadata map<STRING,STRING>
) USING org.elasticsearch.spark.sql
options (
es.resource='es索引名称-可以*作为通配符',
es.nodes='demo.test.com',
es.port='9200',
es.index.auto.create='true',
es.net.http.auth.user='用户名',
es.net.http.auth.pass='密码',
es.read.metadata='true',
es.read.metadata.field='es_metadata'
);select * from default.test_es01 limit 10;

使用keystore存储用户密码

keystore生成

es-hadoop官方文档
Only the following configurations can be read from the secure settings: * es.net.http.auth.pass * es.net.ssl.keystore.pass * es.net.ssl.truststore.pass * es.net.proxy.http.pass * es.net.proxy.https.pass * es.net.proxy.socks.pass
所以es.net.http.auth.user添加至keystore也不会被识别。

export ES_SPARK_JAR=/usr/xxx/spark2/jars/elasticsearch-spark-20_2.11-8.13.2.jar
export ES_KEYTOOL_CLASSPATH=org.elasticsearch.hadoop.cli.Keytool
# 查看帮助文档
java -classpath $ES_SPARK_JAR $ES_KEYTOOL_CLASSPATH -h
# 生成空的esh.keystore文件
java -classpath $ES_SPARK_JAR $ES_KEYTOOL_CLASSPATH create# 向esh.keystore文件添加kv对,无需指定文件名称使用默认文件名esh.keystore
java -classpath $ES_SPARK_JAR $ES_KEYTOOL_CLASSPATH add es.net.http.auth.pass
# 输入:密码# 确认命令,执行后打印存储的键值对:
java -classpath $ES_SPARK_JAR $ES_KEYTOOL_CLASSPATH list
# 打印如下内容:
# es.net.http.auth.pass# 如下命令可以移除密码
java -classpath $ES_SPARK_JAR $ES_KEYTOOL_CLASSPATH remove es.net.http.auth.user

esh.keystore可以修改名称,分发至集群各个节点。
注意:Once your settings are all specified, you must make sure that the keystore is available on every node. 每个spark节点都需要方keystore文件,即使测试也必须分发到各个节点,因为其只有运行才会检查此文件此文件,而spark实际运行节点是不定的。

use hudi_db;
drop table if exists default.test_es02;
create table default.test_es02(
id STRING,
name STRING,
es_metadata map<STRING,STRING>
) USING org.elasticsearch.spark.sql
options (
es.resource='es索引名称-可以*作为通配符',
es.nodes='demo.test.com',
es.port='9200',
es.index.auto.create='true',
es.net.http.auth.user='用户名',
es.keystore.location='file:///home/***/修改后的名称.keystore',
es.read.metadata='true',
es.read.metadata.field='es_metadata'
);select count(1) sl from default.test_es02;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/3701.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

怎样选购内衣洗衣机?2024年5款最新推荐机型种草

随着科技的不断发展&#xff0c;内衣洗衣机成为了家家户户必备的小家电之一&#xff0c;为我们的生活带来了极大的便利。但面对市场上众多的内衣洗衣机品牌&#xff0c;如何选择一款质量好的内衣洗衣机呢&#xff1f;本文将为您推荐5款最新的内衣洗衣机品牌&#xff0c;从而帮助…

vue的优化手段

vue常见优化手段 使用key 对于通过循环生成的列表,应给每个列表项一个稳定且唯一的key,这有利于在列表变动时,尽量少的删除、新增、改动元素。 使用 index 作为 key 值,唯一但是不稳定。 一般情况下,应该选取 id 作为key值。 使用冻结对象 冻结的对象不会被响应化。…

二倍体毛白杨(Populus tomentosa Carr.)基因组-春天都是杨树毛子???-文献精读-11

High quality haplotype-resolved genome assemblies of Populus tomentosa Carr., a stabilized interspecific hybrid species widespread in Asia 高质量二倍体解析的毛白杨&#xff08;Populus tomentosa Carr.&#xff09;基因组组装&#xff0c;这是一种在亚洲广泛分布的…

SCSS的基本使用(一)

目录 一、使用&符号来引用父选择器 二、scss的语法 三、变量&#xff08;Variables&#xff09; 四、嵌套&#xff08;Nesting&#xff09; 五、mixin 和 include 六、extend 继承 七、import 与 Partials 八、if简单判断 九、if复杂判断 一、使用&符号来引用父…

【代码随想录】day46

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 一、139单词拆分 一、139单词拆分 完全想不到还能这么背包。。。 class Solution { public:bool wordBreak(string s, vector<string>& wordDict) {vec…

原型链prototype、__proto、constructor的那些问题整理

再了解原型链之前,我们先来看看构造函数和实例对象的打印结构 - 函数 这里我们定义一个构造函数Fn,然后打印它的结构吧 function Fn(){} console.dir(Fn)控制台得到结构 从上面结构我们能看的出来,函数有两种原型,一种是作为函数特有的原型:prototype,另一种是作为对象的__…

Redis深度解析与面试必备问答(必知必会20题全)

一、Redis简介 Redis&#xff08;Remote Dictionary Server&#xff09;是一个开源的使用ANSI C语言编写的、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库&#xff0c;并提供多种语言的API。它通常被称为数据结构服务器&#xff0c;因为值&#xff08;value&…

Java设计模式 _结构型模式_适配器模式

一、适配器模式 **1、适配器模式&#xff08;Adapter Pattern&#xff09;**是一种结构型设计模式。适配器类用来作为两个不兼容的接口之间的桥梁&#xff0c;使得原本不兼容而不能一起工作的那些类可以一起工作。譬如&#xff1a;读卡器就是内存卡和笔记本之间的适配器。您将…

DataSource简单示例

javax.sql.DataSource是Java中用于管理数据库连接池的接口&#xff0c;它是javax.sql包中的一部分。DataSource接口提供了一种标准的方式来获取与数据库的连接&#xff0c;这样可以避免在每次需要连接数据库时都创建新的连接对象&#xff0c;从而提高了应用程序的性能和可伸缩性…

这样狠心的女人,不配当妈!

男人小时候经常受父亲虐待&#xff0c;初中毕业就到深圳打拼&#xff0c;基本与父母再无联系。 因为心有创伤&#xff0c;他没有考虑过结婚的事情&#xff0c;也不希望自己的娃成为受苦的一代。 然而&#xff0c;机缘巧合&#xff0c;他偶然之间认识了自己的爱人。 在妻子小的时…

意法半导体STM32F407VET6TR单片机优缺点、参数、应用和引脚封装

ST(意法半导体)的型号STM32F407VET6TR属于32位MCU微控制器&#xff0c;基于高性能的ArmCortex-M4 32位RISC核心&#xff0c;工作频率高达168MHz。单精度浮点单元(FPU)用于Cortex-M4核心&#xff0c;支持所有Arm单精度数据处理指令和数据类型。它还实现了一套完整的DSP指令和一个…

printjs打印表格的时候多页的时候第一页出现空白

现象&#xff1a;打印多页的时候第一页空白了&#xff0c;一页的时候没有问题 插件&#xff1a;printjs 网上搜索半天找到的方式解决&#xff1a; 1. 对于我这次的现象毫无作用。其他情况不得而知&#xff0c;未遇见过。&#xff08;这个应该是大家用的比较多的方式&#xf…

go中标签创建与引用

go中tag维护方法 util项目&#xff1a; 0 util修改的代码提交 1 从gitlab上获取最新的tag https://git.****.com/peiyou_like_shuangshi_zhongtai/beibo_utils/tags 2 创建tag: git tag -a v1.101.11 -m "its的ggb查询" 3 tagpush&#xff1a;git push origin v1.10…

[SpringBoot] JWT令牌——登录校验

JWT&#xff08;JSON Web Token&#xff09;是一种用于在网络应用之间传递信息的开放标准&#xff08;RFC 7519&#xff09;。它由三部分组成&#xff1a;头部&#xff08;header&#xff09;、载荷&#xff08;payload&#xff09;和签名&#xff08;signature&#xff09;。J…

Mybatis-plus 字段结果为NULL

问题 Mybatis-plus 字段结果为NULL 详细问题 笔者使用SpringBootMybatis-plus 进行项目开发。进行接口请求测试&#xff0c;在确定SQL语句没有问题的前提下&#xff0c;返回记录部分字段(譬如字段name)为空。 解决方案 修改Mybatis-plus中mapper的xml文件&#xff0c;使re…

JavaEE初阶——多线程(七)——定时器

T04BF &#x1f44b;专栏: 算法|JAVA|MySQL|C语言 &#x1faf5; 小比特 大梦想 此篇文章与大家分享多线程的第七篇文章——关于定时器 如果有不足的或者错误的请您指出! 目录 4.定时器4.1标准库提供的定时器4.2自己实现一个定时器4.2.1任务类4.2.2Timer类4.2.3 有一个线程来负…

1015: 【C1】【循环】【for】整数序列的元素最大跨度值

题目描述 给定一个长度为n的非负整数序列&#xff0c;请计算序列的最大跨度值&#xff08;最大跨度值 最大值减去最小值&#xff09;。 输入 一共2行&#xff0c;第一行为序列的个数n&#xff08;1 < n < 1000)&#xff0c;第二行为序列的n个不超过1000的非负整数&am…

如何解决IntelliJ IDEA 2024打开项目时频繁闪退问题

&#x1f42f; 如何解决IntelliJ IDEA 2024打开项目时频繁闪退问题 &#x1f43e; 文章目录 &#x1f42f; 如何解决IntelliJ IDEA 2024打开项目时频繁闪退问题 &#x1f43e;摘要引言正文&#x1f4d8; 识别问题&#x1f4d9; 内存配置调整步骤1: 定位vmoptions文件步骤2: 修改…

svg图标填充渐变色及CSS鼠标悬停纯色渐变色转换

svg图标填充渐变色及CSS鼠标悬停纯色渐变色转换&#xff1a; HTML&#xff1a; <!--底部导航--> <ul class"milliaNav"> <li class"active"><a href"#"> <svg class"icon" viewBox"0 0 1024 1024&qu…

1分钟掌握 Python 函数参数

任何编程语言函数都是非常重要的一部分&#xff0c;而在进行函数调用时&#xff0c;了解函数的参数传递方式是非常有必要的。Python中支持哪些传参方式呢&#xff1f; Python中的传参方式是比较灵活的&#xff0c;主要包括以下六种&#xff1a; 按照位置传参按照关键字传参默…