本篇介绍如何在hive中查询、更新、插入ES数据,以及把数据从hive导入到es中。本方案适用于任何hive可以挂外表的数据库类型。
ELK系列(一)、安装ElasticSearch+Logstash+Kibana+Filebeat-v7.7.0
ELK系列(二)、在Kibana中使用RESTful操作ES库
ELK系列(四)、Logstash读取nginx日志写入ES中
ELK系列(五)、Logstash修改@timestamp时间为日志的产生时间
ELK系列(六)、修改Nginx日志为Json格式并使用Logstash导入至ES
ELK系列(七)、Filebeat+Logstash采集多个日志文件并写入不同的ES索引中
ELK系列(八)、使用Filebeat+Redis+Logstash收集日志数据
ELK系列(十)、ES中文分词器IK插件安装和配置远程词库热加载
ELK系列(十一)、ElasticSearch7.7.0插件es-head安装及使用
ELK系列(十二)、使用SQL查询ElasticSearch7.7.0
-----------------------------------------------在HIVE中操作ES----------------------------------------------
官方文档:https://www.elastic.co/guide/en/elasticsearch/hadoop/current/hive.html
下载:https://www.elastic.co/cn/downloads/past-releases#es-hadoop
参数:https://www.elastic.co/guide/en/elasticsearch/hadoop/current/configuration.html
环境
CDH-6.3.1
hive-2.1.1
ElasticSearch-6.6.2 (ES7.7一样的,因为之前用的ES6没升级,修改配置需要重启HIVE所以我就不用ES7演示了)
依赖
要在hive中查询操作ES需要先将ES的jar包放在hive的依赖环境中,这里有几种方式,首先下载jar包,到上面的链接中下载对应ES版本的elasticsearch-hadoop-hive-6.6.2.jar,然后到hive的lib下【/opt/cloudera/parcels/CDH/jars/commons-httpclient-3.1.jar】找到commons-httpclient-3.1.jar,待会讲为什么需要它。
在hive中添加外部jar包,hive中加载外部jar包的方式有几种:
1. hive shell中add jar
session级别的配置,只在hive命令行生效,不需要重启服务。
#在hive shell中:
#本地jar
add jar /home/tools/wyk/elasticsearch-hadoop-hive-6.6.2.jar;
add jar /home/tools/wyk/commons-httpclient-3.1.jar;
#或hdfs的jar包
add jar hdfs://nameservice1/tmp/hive/elasticsearch-hadoop-hive-6.6.2.jar;
add jar hdfs://nameservice1/tmp/hive/commons-httpclient-3.1.jar;
2. 启动hive shell时添加配置
session级别的配置,只在hive命令行生效,不需要重启服务。