使用es-hadoop同步hive和es之间数据

news2024/9/23 21:27:11

💻近期在华为云连接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依赖包。该命令只对当前会话有效。

输入beelinehive进入到执行界面,执行如下命令:

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”
  1. 登录云搜索服务控制台。

  2. 选择“集群管理”进入集群列表。

  3. 单击对应集群的名称,进入集群基本信息页面。

  4. 在“基本信息”页面,单击“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;

赞👍

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

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

相关文章

CentOS7.6 服务器负载均衡——LVS-DR实战案例

目录 1、前期环境准备 1.准备两台主机 1. 设置主机名 2. 设置IP地址然后重启网卡 3. 关闭防火墙和selinux 二、配置LVS服务器 1. LVS准备VIP和路由 2. 设置路由转发 3. LVS设置负载均衡条目/规则 1. 设置IPVSADM 4. LVS让配置永久生效: 三、设置WEB集群 …

spring操作数据库

xml版 程序结构 配置文件 dbUtil-阿帕奇提供操作数据库的插件 核心类&#xff1a;QueryRunner .query() 查询 .update() 增删改 <dependencies><!-- spring --><dependency><groupId>org.springframework</groupId><artifactId>spri…

【Unity编辑器】EditorWindow的使用

文章目录 前言创建一个Editor窗口Unity引擎目前中焦的窗口Editor窗口鼠标悬停Editor窗口场景编辑更改监听主窗口停靠下最大化窗口设置窗口的小图标获取中焦窗口Window.ShowNotificationWindow.SendEventEditorWindow.OnHierarchyChange()EditorWindow.OnProjectChange() 前言 …

谷歌搜索垄断案:历史是否会重演微软的宿命?

美国法官在本周一作出裁决&#xff0c;确认Google在搜索市场拥有垄断地位&#xff0c;并援引了二十多年前的微软案作为参考。卡多佐法学院的法学教授Sam Weinstein&#xff0c;也曾是司法部反垄断律师&#xff0c;他指出政府始终在明示或暗示地将本案建立在微软案的基础上。面对…

Unity效果优化之抗锯齿

Unityde 基于HDRP渲染管线的抗锯齿处理的设置参考图&#xff1a; 前提&#xff1a;需要导入HDRP的插件包才行&#xff0c; 该参数设置能保证在PC版上抗锯齿效果非常好&#xff0c; 英文版&#xff1a;

《向量数据库指南》——向量搜索:从简单到复杂,生产级部署的挑战与策略

向量搜索并非轻而易举! 向量搜索,也称为向量相似性搜索或最近邻搜索,是一种常见于 RAG 应用和信息检索系统中的数据检索技术,用于查找与给定查询向量相似或密切相关的数据。业内通常会宣传该技术在处理大型数据集时非常直观且简单易用。一般来说,您只需将数据输入到 Embed…

k8s—Prometheus+Grafana+Altermaneger构建监控平台

目录 一、安装node-exporter 1.下载所需镜像 2.编写node-export.yaml文件并应用 3.测试node-exporter并获取数据 二、Prometheus server安装和配置 1.创建sa(serviceaccount)账号&#xff0c;对sa做rabc授权 1&#xff09;创建一个 sa 账号 monitor 2&#xff09;把 sa …

C++ | Leetcode C++题解之第330题按要求补齐数组

题目&#xff1a; 题解&#xff1a; class Solution { public:int minPatches(vector<int>& nums, int n) {int patches 0;long long x 1;int length nums.size(), index 0;while (x < n) {if (index < length && nums[index] < x) {x nums[i…

系统时间的获取 | 文件操作相关函数 |报错函数 | makefile

系统uid/gid的获取 1.getpwuid 功能:根据用户id到/etc/passwd文件下解析获得结构体信息 参数:uid:用户id 返回值:成功返回id对应用户的信息 ;失败返回NULL 2.getgrgid 功能:根据gid到/etc/group文件中解析组信息 参数:gid:组id 返回值:成功返回组信息;失败返回NULL 系统时间的…

【新械专栏】球囊型冷冻消融导管获批上市

近日&#xff0c;国家药品监督管理局批准了上海安钛克医疗科技有限公司“球囊型冷冻消融导管”创新产品注册申请。 该产品由球囊型冷冻消融导管、手动回缩器组成&#xff0c;与特定冷冻消融仪联合使用&#xff0c;用于治疗成人患者药物难治性、复发性、症状性的阵发性房颤。 该…

Python中的 `break` 语句:掌握循环控制的艺术

Python中的 break 语句&#xff1a;掌握循环控制的艺术 下滑即可查看博客内容 &#x1f308; 欢迎莅临我的个人主页 &#x1f448;这里是我静心耕耘深度学习领域、真诚分享知识与智慧的小天地&#xff01;&#x1f387; &#x1f393; 博主简介&#xff1a;985高校的普通本硕…

Go语言内存管理:从理论到实战

1. 引言 1.1 内存管理的重要性 内存管理是编程中的一个重要环节&#xff0c;它涉及到内存的分配与释放&#xff0c;对于程序的性能和稳定性有着至关重要的影响。不当的内存管理会导致内存泄漏、内存溢出等问题&#xff0c;从而影响程序的正常运行。特别是在大型项目中&#xf…

ttwid、x-bogus、a-bogus、msToken、byted_acrawler等直播参数说明和获取方式

可以参考开源项目&#xff1a;https://github.com/Sjj1024/douyin-live 桌面端的直播间项目&#xff1a;https://github.com/Sjj1024/LiveBox ttwid参数 ttwid类似客户端id&#xff0c;即便是游客模式&#xff0c;也可以对页面数据进行埋点统计&#xff0c;通过收集ttwid下的…

R9000P 双系统安装 win11 和 ubuntu

网上了解到一堆关于 r9000p 安装较老的ubuntu系统&#xff0c;会有一堆问题 可能是电脑硬件比较新&#xff0c;较老的系统相关方面不兼容 那么干脆直接装新一点的系统 我安装了 Ubuntu 22.04 1 根据相关教程利用u盘制作系统盘 ultraISO 推荐使用清华源 速度快一点 https://…

【Linux】系列入门摘抄笔记-5-管理、创建、移动文件目录及文件搜索命令

touch 创建新的空文件 touch [选项] [参数] 描述:创建新的空文件,可以一次性创建多个文件。touch命令还可以用于修改文件的时间属性,不加时间戳则默认修改为当前时间。 如果文件不存在,则会建立空文件,如果文件已存在,则会修改文件的时间戳。 在linux中,文件没有创建时…

MTK Android12 SystemUI 手势导航 隐藏导航栏底部布局

问题:android12 平台手势导航情况下,app页面未设置全屏情况下,底部导航栏会有一个高度的颜色,底部导航会有一个手势导航提示条 需求:去掉手势导航情况下底部的导航栏和手势提示条 文章目录 相关资源修改问题描述解决方案代码跟踪中间提醒小方块代码查找底部手势导航条跟踪…

Dell R750 R760 H755安装SuSE12SP5 并识别Intel E810 NIC

新的机器对老的版本的OS支持不是非常好&#xff0c;好在有一些方法是可以获得老的驱动&#xff0c;并可以进行安装的。 1 需要有H755阵列卡对应的驱动 这里可以在博科的网站上进行下载&#xff0c;里面是有相关的驱动 截一些图片 按e键进行操作 后续继续安装即可,安装 安装…

【漏洞复现】LiveBos UploadFile 任意文件上传漏洞

声明&#xff1a;本文档或演示材料仅用于教育和教学目的。如果任何个人或组织利用本文档中的信息进行非法活动&#xff0c;将与本文档的作者或发布者无关。 一、漏洞描述 LiveBOS&#xff0c;由顶点软件股份有限公司开发的对象型业务架构中间件及其集成开发工具&#xff0c;是…

实现关系运算符的重载

全局函数的实现法&#xff1a; 成员函数实现法&#xff1a;

vscode配置代码片段生成快捷键

一开始还以为是装个插件的事&#xff0c;没想到是自己定义的快捷键。 以vue3代码片段为例 在vscode左下角点击红框处 选择新建全局代码片段文件 输入快捷键名称 vue3&#xff08;可以自定义&#xff09;&#xff0c;以.json结尾&#xff0c;回车 在打开的文件里编写需要的代…