大数据方兴未艾,Hive在业界,是大数据的标配了。因此hive数据添加到ES的应用场景还是比较常见的。
学习ES官方的es-hadoop, 有从hive导数据到ES. 实验可行。
hive的版本: hive-1.1.0-cdh5.9.0

具体的步骤如下:
step1 将elasticsearch-hadoop-hive-version.jar添加到hive

wget https://artifacts.elastic.co/downloads/elasticsearch-hadoop/elasticsearch-hadoop-6.3.0.zip
unzip elasticsearch-hadoop-6.3.0.zip
hdfs dfs -mkdir /user/test/es_hadoop/
hdfs dfs -put elasticsearch-hadoop-hive-6.3.0.jar /user/test/es_hadoop/
ADD JAR hdfs://test/user/test/es_hadoop/elasticsearch-hadoop-hive-6.3.0.jar;

step2 创建Hive表:

CREATE EXTERNAL TABLE elastic_table(uuid string,key1 int,key2 int,day string
)
STORED BY 'org.elasticsearch.hadoop.hive.EsStorageHandler'
TBLPROPERTIES('es.resource'='index/type',
'es.nodes'='serverIP:port',
'es.index.auto.create'='TRUE',
'es.mapping.id' = 'uuid'
);

step3 添加数据

INSERT OVERWRITE TABLE elastc_table
SELECT uuid, key1,key2, day FROM source s;

为了避免客户端版本的问题,es-hadoop使用es的restfull接口导入数据,该接口使用的是Http协议。

通常使用ES, 首当其冲的问题就是: 如何快速将海量数据导入ES? 由于ES的数据需要建立倒排索引,所以导入数据到ES的瓶颈往往在ES这里。

本文记录了将Hive表的数据导入ES的方法。这里背后隐藏了mapreduce,即集群的威力。 这里有个系列博客,讲述如何最大限度的挖掘ES索引数据的性能,立足点是ES。

https://qbox.io/blog/series/how-to-maximize-elasticsearch-indexing-performance

作者总结有3点:

  1. 根据应用场景创建mapping, 去除不必要的字段,如_all, _source;
    这里是从应用场景下手,以避免存储不必要的信息来提升索引数据的性能。

  2. 修改es/lucene默认的设置,比如
    refresh_interval,
    index.number_of_replicas,
    index.merge.scheduler.max_thread_count,
    index.translog.interval,
    indices.memory.index_buffer_size
    index.index_concurrency
    等参数。 这里是从集群的角度进行调优, 通常用于大批量导入数据到ES。

  3. 如果前面两种还是没能解决问题,那就需要对集群进行横向扩展了,比如增加集群的分片数量。
    集群大了后,各个结点的功能就需要单一化,专注化了。

比如节点只承担数据相关的任务。

node.master: false
node.data: true
node.ingest: false

bulk api的批量值需要实验,找到最佳参数。建议bulk的大小在5M~10M.

使用SSD硬盘。索引数据时,副本数设置为0。

参考:
http://note4code.com/2016/06/17/hive-%E5%90%91-elasticsearch-%E5%AF%BC%E5%87%BA%E6%95%B0%E6%8D%AE/

从Hive导入数据到ES相关推荐

  1. 扩展:hive插入数据到ES

    Hive建表 加入hive和es的相关jar包(此例以es5.5.2为例,jar去官网下载) add jar file:///data/xj6500_data/lib/elasticsearch-ha ...

  2. sqoop从hive导入数据到mysql时出现主键冲突

    今天在将一个hive数仓表导出到mysql数据库时出现进度条一直维持在95%一段时间后提示失败的情况,搞了好久才解决.使用的环境是HUE中的Oozie的workflow任何调用sqoop命令,该死的o ...

  3. Clickhouse 从S3/Hive导入数据

    背景 我们的埋点数据上传到S3,大概是每天10亿条的数据量级别.最近花了一些时间思考和学习如何将每天如此大量的数据从S3导入到Clickhouse,为后续的实时查询做准备. 方案一 1. 先将S3的数 ...

  4. es java_java整合ElasticSearch导入数据到es中

    实体类:利用注解建立实体类会自动根据实体类创建索引,不需要自己建立mapping package com.msic.mall.search.domain; import lombok.AllArgsC ...

  5. Hadoop Hive导入数据命令

  6. 学习笔记Hive(四) —— Hive应用(2)—— Hive导入及导出数据

    四.Hive导入及导出数据 通过HDFS直接导入导出 通过Hive命令导入导出 4.1.Hive导入数据的语法 LOAD DATA [LOCAL] INPATH 'filepath' [OVERWRI ...

  7. Hive导入和导出数据

    Hive导入数据 (1)从本地文件导入 load data local inpath 'test.txt' into table test; (2)从HDFS导入 load data inpath ' ...

  8. logstash导入数据到Elasticsearch踩过的坑详解

    一.前言 这篇主要记录在导入数据时候踩到的坑,这些坑总共花费我小一天的时间,记录一下. 二.正文 1.logstash显示在导入数据,ES也成功新建了索引,但是没数据 最开始遇到的是这个坑,logst ...

  9. 存在的hive插入数据_往hive表中插入数据以及导出数据

    转载:https://blog.csdn.net/qq_26442553/article/details/80380590 转载:https://blog.csdn.net/weixin_436817 ...

  10. 把json数据导入linux,使用json文件给es中导入数据

    使用json文件可以给es中导入数据,10万条左右的数据可以一次导入,数量太大时导入就会报错.大数量的到导入还是需要用bulk方式. accounts.json文件格式如下: {"index ...

最新文章

  1. Ubuntu 18.04 配置 国内 apt-get 换源
  2. 非常漂亮的Flash纯脚本生成饼图
  3. SQL Server 2005无法输入中文的解决方案
  4. MYSQL数据库表大小计算,计算mysql数据库数据表的大小,不精确,只是大略的数据...
  5. 便利的开发工具-log4cpp快速使用指南
  6. 如何做一个国产数据库(三)
  7. 峰Redis学习(6)Redis 数据结构(sorted-set的操作)
  8. AB32VG1开发板学习(2)GPIO,多线程点灯
  9. 光模块测试CEI-28G-VSR 浅析1---背景基础介绍
  10. linux清空文件夹的命令_Linux 学习
  11. matlab 函数定义 属性,matlab class()函数类定义技巧
  12. Cross Domain Person Re-Identification With Large Scale Attribute Annotated Datasets参考文献解读
  13. 在后台管理系统中如何设计账户管理?
  14. RecyclerView之利用ItemDecoration实现万能分割线
  15. 余三码 2020-12-30
  16. 人机测试计算机,人机测试
  17. Deblurring by Realistic Blurring 图像去模糊论文解读
  18. Centos 7.6 下使用美格SLM750(4G模块)拨号上网
  19. java基于微信小程序旅游管理系统 uniapp 小程序
  20. 亚马逊基础名词汇总跨境电商入门小白必备!

热门文章

  1. x264编码详细文字全过程
  2. 【快速高斯模糊的实现】
  3. MFC ------- AfxGetMainWnd( )
  4. android实现填空模式
  5. mysql怎么分读写_MYSQL的读写分离
  6. php提取文本数据处理,PHP文件处理—读取文件(一个字符,字串)
  7. 动态通讯录(动态内存开辟)(C语言)
  8. Android ContentProvider简单总结
  9. linux nohup 记录pid,nohup启动程序后如何获取进程号Pid
  10. 员工因上厕所时间超长被开除了,法院:超出正常生理需求范围!