使用es-hadoop同步hive和es之间数据
💻近期在华为云连接es时的时候发现不能输入账号密码,后面联系华为工程师了解到,华为云默认是非安全模式,即不需要输入账号密码。
如果对你有所帮助,欢迎点赞收藏关注不迷路哦💓
目录
使用es-hadoop同步hive和es之间数据
1. 登录EMR的master节点,切换至hadoop用户
2.在MRS客户端创建HDFS目录,将ES-Hadoop lib包和httpclient依赖包上传到该目录下
3.从MRS客户端登录到Hive客户端
4.在Hive客户端,创建hive外表,与es索引进行映射(结合实际表)
4.1安全模式+HTTP协议的集群
4.2安全模式+HTTPS协议的集群
4.2.1获取安全证书“CloudSearchService.cer”
4.2.2转换安全证书(CloudSearchService.cer)
4.2.3将“.jks”文件分发到MRS集群的每个节点的相同路径
4.2.4创建Hive外表
5. 查询ES外部表测试
6.将ES索引中的数据导入到hive的内部表或写入ES外部表
解决方案,如下:
前言
ES-Hadoop 是 Elastic 官方推出的一个用于对接 Hadoop 生态的工具,使得用户可以使用 Mapreduce(MR)、Spark、Hive 等工具处理 ES 上的数据。众所周知,Hadoop 生态的长处是处理大规模数据集,但是其缺点也很明显,就是当用于交互式分析时,查询时延会比较长。而 ES 在这几个方面的能力很强,对于如 ad-hoc 查询,基本可以做到秒级。ES-Hadoop 的推出提供了一种组合两者优势的可能性。使用 ES-Hadoop,用户只需要对自己代码做出很小的改动,即可以快速处理存储在 ES 中的数据,并且能够享受到 ES 带来的加速效果。
以下给出hive相关操作
使用es-hadoop同步hive和es之间数据
相关下载链接: ES-hadoop:(https://www.elastic.co/cn/downloads/past-releases#es-hadoop)选择需要的版本
httpclient3.1:(https://mvnrepository.com/artifact/commons-httpclient/commons-httpclient/3.1)
1. 登录EMR的master节点,切换至hadoop用户
su - hadoop
2.在MRS客户端创建HDFS目录,将ES-Hadoop lib包和httpclient依赖包上传到该目录下
注:暂定7.10.2版
hadoop fs -mkdir /tmp/hadoop-es
hadoop fs -put elasticsearch-hadoop-7.10.2.jar /tmp/hadoop-es
hadoop fs -put commons-httpclient-3.1.jar /tmp/hadoop-es
3.从MRS客户端登录到Hive客户端
在Hive客户端,添加ES-Hadoop lib包和httpclient依赖包。该命令只对当前会话有效。
输入beeline或hive进入到执行界面,执行如下命令:
add jar hdfs:///tmp/hadoop-es/commons-httpclient-3.1.jar;
add jar hdfs:///tmp/hadoop-es/elasticsearch-hadoop-7.10.2.jar;
4.在Hive客户端,创建hive外表,与es索引进行映射(结合实际表)
4.1安全模式+HTTP协议的集群
CREATE EXTERNAL table IF NOT EXISTS student( id BIGINT,name STRING,addr STRING
)STORED BY 'org.elasticsearch.hadoop.hive.EsStorageHandler'
TBLPROPERTIES( 'es.nodes' = '172.XX.XX.XX:9200,172.XX.XX.XX:9200,172.XX.XX.XX:9200',--ES地址'es.port' = '9200','es.net.ssl' = 'false', --指定不使用SSL连接到Elasticsearch。'es.nodes.wan.only' = 'false', --指定是否只使用广域网节点'es.nodes.discovery'='false', --禁用节点发现,即不自动发现其他节点'es.input.use.sliced.partitions'='false', --指定在读取数据时不使用分片分区'es.nodes.client.only'='true',--指定节点仅作为客户端使用。'es.resource' = 'student/_doc', --指定映射到Elasticsearch中的索引名称为student,文档类型为_doc。'es.net.http.auth.user' = 'NAME', --ES用户名'es.net.http.auth.pass' = 'PASSWORD' --ES密码
);
4.2安全模式+HTTPS协议的集群
4.2.1获取安全证书“CloudSearchService.cer”
-
登录云搜索服务控制台。
-
选择“集群管理”进入集群列表。
-
单击对应集群的名称,进入集群基本信息页面。
-
在“基本信息”页面,单击“HTTPS访问”后面的“下载证书”。

4.2.2转换安全证书(CloudSearchService.cer)
将下载的安全证书上传到客户端机器上,使用keytool工具将“.cer”证书转换成Java可以读取的“.jks”证书格式。
-
在Linux系统中,执行如下命令转换证书。
keytool -import -alias newname -keystore ./truststore.jks -file ./CloudSearchService.cer
-
在Windows系统中,执行如下命令转换证书。
keytool -import -alias newname -keystore .\truststore.jks -file .\CloudSearchService.cer
注:其中,newname是由用户自定义的证书名称。
该命令执行后,会提示设置证书密码,并确认密码。请保存该密码,后续接入集群会使用。
4.2.3将“.jks”文件分发到MRS集群的每个节点的相同路径
如“/tmp”,可以使用scp命令进行文件传输。同时,要确保omm用户有权限读取该文件,设置权限可以参考如下命令:
chown -R omm truststore.jks
4.2.4创建Hive外表
CREATE EXTERNAL table IF NOT EXISTS student( id BIGINT,name STRING,addr STRING
)STORED BY 'org.elasticsearch.hadoop.hive.EsStorageHandler'
TBLPROPERTIES( 'es.nodes' = 'https://172.XX.XX.XX:9200,https://172.XX.XX.XX:9200,https://172.XX.XX.XX:9200',--ES地址'es.port' = '9200','es.net.ssl' = 'true', -- 使用SSL连接'es.net.ssl.truststore.location' = 'cerFilePath',- SSL信任存储文件路径'es.net.ssl.truststore.pass' = 'cerPassword',-- SSL信任存储密码'es.nodes.wan.only' = 'false', -- 不只使用广域网节点'es.nodes.discovery'='false', -- 禁用节点发现'es.nodes.client.only'='true', -- 节点仅作为客户端使用'es.input.use.sliced.partitions'='false', -- 不使用分片分区读取'es.resource' = 'student/_doc',-- 映射到Elasticsearch的索引和文档类型'es.net.http.auth.user' = 'NAME', -- 映射到Elasticsearch的索引和文档类型'es.net.http.auth.pass' = 'PASSWORD'-- 连接到Elasticsearch的密码
);
5. 查询ES外部表测试
在Hive客户端,插入数据。
INSERT INTO TABLE student VALUES (1, "Lucy", "address1"), (2, "Lily", "address2");
查询
select * from student;
6.将ES索引中的数据导入到hive的内部表或写入ES外部表
-- 检查并删除已存在的同名内部表,如果需要的话
DROP TABLE IF EXISTS student_hive;-- 创建一个与外部表结构相同的Hive内部表
CREATE TABLE student_hive
LIKE student;-- 插入数据从外部表student到内部表student_hive
INSERT INTO TABLE student_hive
SELECT * FROM student;
赞👍
相关文章:
使用es-hadoop同步hive和es之间数据
💻近期在华为云连接es时的时候发现不能输入账号密码,后面联系华为工程师了解到,华为云默认是非安全模式,即不需要输入账号密码。 如果对你有所帮助,欢迎点赞收藏关注不迷路哦💓 目录 使用es-hadoop同步h…...
Java - 泛型 + JUnit
一、泛型(参数化类型,在编译时确定) 泛型是一种可以接收数据类型的数据类型(可以这么理解) 作用: 1.能对加入到集合中的数据类型进行约束 2.遍历的时候,不需要进行类型转换,提高效率(因为遍历时,默认的是Object,需要进行类型转换的…...
vue3实现包含表格的Word文件导出
vue3实现包含表格的Word文件导出 近期遇到一个要求,需要在网页上导出Word文档,文档中有表格,也有普通的数据,查阅了很多资料,总算比较完美的解决了,记录一下 先上一下最终效果 演示视频 vue3项目根据Wor…...
【深度学习】TTS,CosyVoice,推理部署的代码原理讲解分享
文章目录 demo代码加载配置文件speech_tokenizer_v1.onnx(只在zero_shot的时候使用)campplus.onnx(只为了提取说话人音色embedding)`campplus_model` 的作用代码解析具体过程解析总结示意图CosyVoiceFrontEndCosyVoiceModel推理过程总体推理过程推理速度很慢: https://git…...
flask高频面试题
目录 高频面试题及答案1. 如何在Flask中处理数据库迁移?2. Flask如何处理文件上传?3. 如何在Flask中处理跨域请求(CORS)?4. 如何在Flask中实现用户认证?5. Flask如何处理会话?6. Flask如何处理表…...
尚硅谷谷粒商城项目笔记——五、使用docker安装mysql
五、使用docker安装mysql 注意: 因为电脑是AMD芯片,自己知识储备不够,无法保证和课程中用到的环境一样,所以环境都是自己根据适应硬件软件环境重新配置的,这里的虚拟机使用的是VMware。 使用 Docker 安装 MySQL 与安…...
filebeat + logstash使用笔记
背景 本文中有2台主机: (1)1.1.1.1是OpenStack的nova节点,安装filebeat (2)1.1.1.2是logstash节点 在1.1.1.1上通过filebeat读取OpenStack的nova-compute组件日志(/var/log/nova/nova-compute.…...
学校考场电子钟设置自动开关机,节能环保
在标准化考试中,准确的时间显示对于确保考试的公正性和秩序至关重要。然而,传统的电子钟系统往往存在一些问题,影响了考试管理的效率。 一、学校普通电子钟使用问题 二、学校考场电子钟优点 学校同步时钟系统通过自动同步网络或卫星时间的方式…...
短剧APP系统开发带来了哪些发展空间?
在影视行业快速发展的时期,短剧作为一种新兴的影视模式,获得了大众的欢迎。目前,短剧行业巨大的发展空间,再次成为大众关注的焦点。 随着移动互联网的发展,信息技术不断升级进步,短剧APP系统的开发&#x…...
PaddlePaddle / PaddleOCR踩坑记,动手实现一个OCR服务器
文章目录 一、环境搭建1、官网2、准备环境 二、编码实现一个web程序 一、环境搭建 1、官网 https://gitee.com/paddlepaddle/PaddleOCR#/paddlepaddle/PaddleOCR/blob/main/doc/doc_ch/quickstart.md 2、准备环境 本地环境坑太多了,好在官网还有一种基于docker搭…...
JeecgBoot低代码平台简单记录
BasicModal弹窗 Usage 由于弹窗内代码一般作为单文件组件存在,也推荐这样做,所以示例都为单文件组件形式 注意v-bind"$attrs"记得写,用于将弹窗组件的attribute传入BasicModal组件 attribute:是属性的意思,…...
零基础入门转录组数据分析——机器学习算法之xgboost(筛选特征基因)
零基础入门转录组数据分析——机器学习算法之xgboost(筛选特征基因) 目录 零基础入门转录组数据分析——机器学习算法之xgboost(筛选特征基因)1. xgboost基础知识2. xgboost(Rstudio)——代码实操2. 1 数据…...
C#开发常见面试题三(浅复制和深复制的区别)
C#开发常见面试题三(浅复制和深复制的区别) 一.浅复制和深复制定义 (1)浅复制:复制一个对象的时候,仅仅复制原始对象中所有的非静态类型成员和所有的引用类型成员的引用。(新对象和原对象将共享所有引用类型成员的实…...
Linux/C 高级——Linux命令
从这里开始,我们展开对Linux/c 高级的学习,首先介绍的是在Linux/c高级中,Linux的部分 目录 1.Linux简介 1.1Linux起源 1.2查看系统版本命令 1.3分层结构 1.4系统关机重启命令 2.Linux安装工具 2.1软件包安装 2.1.1软件包的管理机制 …...
怎么在 tailwindcss 项目中自定义一些可复用的样式
在 Tailwind CSS 项目中自定义可复用的样式有几种常用方法: 使用 apply 指令 你可以在 CSS 文件中使用 apply 指令来创建可复用的样式类: layer components {.btn-primary {apply py-2 px-4 bg-blue-500 text-white font-semibold rounded-lg shadow-md hover:bg-blue-700 f…...
在vue3中 引入echarts
安装:npm install echarts --save 方式一:直接在组件中引用 <template><divref"myChart"id"myChart":style"{ width: 800px, height: 400px }"></div></template><script>import * as echa…...
栈和队列(数据结构)
1. 栈(Stack) 1.1 概念 栈 :一种特殊的线性表,其 只允许在固定的一端进行插入和删除元素操作 。进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。栈中的数据元素遵守后进先出LIFO ( Last In First Out )的原…...
如何实现ElementUI表单项label的文字提示?
在Vue和ElementUI的丰富组件库中,定制化表单是常见的需求之一。那么如何在表单项label后添加文字提示,以提升用户体验呢? 首先我们来看一下效果图: 这里我们鼠标移动到❓图标上就会出现提示 在 ElementUI 中,el-form-item 组件允许使用 slot 自定义 label。通过在 el-fo…...
c++中的标准库
前言 hello,我是文宇。 正文 C标准库是C编程语言的基本组成部分之一,它为开发人员提供了一套丰富和强大的工具和功能,以便快速开发高效、可靠和可移植的应用程序。C标准库由两个主要部分组成:STL(Standard Template…...
洛谷 B2145 digit 函数 B2146 Hermite 多项式 题解
题目目录: No.1 B2145 digit 函数 No.2 B2146 Hermite 多项式 OK,开始正文! 第一题:B2145 digit 函数 题目描述 在程序中定义一函数 digit(n,k),它能分离出整数 n 从右边数第 k 个数字。 输入格式 正整数 n …...
SciencePlots——绘制论文中的图片
文章目录 安装一、风格二、1 资源 安装 # 安装最新版 pip install githttps://github.com/garrettj403/SciencePlots.git# 安装稳定版 pip install SciencePlots一、风格 简单好用的深度学习论文绘图专用工具包–Science Plot 二、 1 资源 论文绘图神器来了:一行…...
shell脚本--常见案例
1、自动备份文件或目录 2、批量重命名文件 3、查找并删除指定名称的文件: 4、批量删除文件 5、查找并替换文件内容 6、批量创建文件 7、创建文件夹并移动文件 8、在文件夹中查找文件...
从零实现富文本编辑器#5-编辑器选区模型的状态结构表达
先前我们总结了浏览器选区模型的交互策略,并且实现了基本的选区操作,还调研了自绘选区的实现。那么相对的,我们还需要设计编辑器的选区表达,也可以称为模型选区。编辑器中应用变更时的操作范围,就是以模型选区为基准来…...
第一篇:Agent2Agent (A2A) 协议——协作式人工智能的黎明
AI 领域的快速发展正在催生一个新时代,智能代理(agents)不再是孤立的个体,而是能够像一个数字团队一样协作。然而,当前 AI 生态系统的碎片化阻碍了这一愿景的实现,导致了“AI 巴别塔问题”——不同代理之间…...
C# 类和继承(抽象类)
抽象类 抽象类是指设计为被继承的类。抽象类只能被用作其他类的基类。 不能创建抽象类的实例。抽象类使用abstract修饰符声明。 抽象类可以包含抽象成员或普通的非抽象成员。抽象类的成员可以是抽象成员和普通带 实现的成员的任意组合。抽象类自己可以派生自另一个抽象类。例…...
【配置 YOLOX 用于按目录分类的图片数据集】
现在的图标点选越来越多,如何一步解决,采用 YOLOX 目标检测模式则可以轻松解决 要在 YOLOX 中使用按目录分类的图片数据集(每个目录代表一个类别,目录下是该类别的所有图片),你需要进行以下配置步骤&#x…...
鸿蒙DevEco Studio HarmonyOS 5跑酷小游戏实现指南
1. 项目概述 本跑酷小游戏基于鸿蒙HarmonyOS 5开发,使用DevEco Studio作为开发工具,采用Java语言实现,包含角色控制、障碍物生成和分数计算系统。 2. 项目结构 /src/main/java/com/example/runner/├── MainAbilitySlice.java // 主界…...
uniapp手机号一键登录保姆级教程(包含前端和后端)
目录 前置条件创建uniapp项目并关联uniClound云空间开启一键登录模块并开通一键登录服务编写云函数并上传部署获取手机号流程(第一种) 前端直接调用云函数获取手机号(第三种)后台调用云函数获取手机号 错误码常见问题 前置条件 手机安装有sim卡手机开启…...
[大语言模型]在个人电脑上部署ollama 并进行管理,最后配置AI程序开发助手.
ollama官网: 下载 https://ollama.com/ 安装 查看可以使用的模型 https://ollama.com/search 例如 https://ollama.com/library/deepseek-r1/tags # deepseek-r1:7bollama pull deepseek-r1:7b改token数量为409622 16384 ollama命令说明 ollama serve #:…...
MySQL:分区的基本使用
目录 一、什么是分区二、有什么作用三、分类四、创建分区五、删除分区 一、什么是分区 MySQL 分区(Partitioning)是一种将单张表的数据逻辑上拆分成多个物理部分的技术。这些物理部分(分区)可以独立存储、管理和优化,…...


