Hive2ElasticSearch

本文介绍了将Hive数据高效导入到Elasticsearch(ES)的实践过程,包括使用ES-Hadoop存储处理器直接定义外部表,以及在迁移过程中遇到的版本兼容、ES负载过高和字段长度限制等问题的解决方法。建议在遇到性能问题时,考虑将复杂SQL语句与数据插入逻辑分离,以提高效率。

Hive2ElasticSearch

目标是将hive数据导入到es中。
起初通过读hive中的表文件使用bulk api来向es推数,但是效率太低,满足不了大数据的需求。
后来发现es官方提供了解决方案es-hadoop。在此记录一些使用中遇到的问题。

ES-hadoop为elasticsearch提供了一个hive存储处理器(Hive storage handler),使开发人员可以直接定义一个外部表,通过向外部表写数,实现向es中推数。

定义表

示例:

    CREATE EXTERNAL TABLE artists (
        id      BIGINT,
        name    STRING,
        links   STRUCT<url:STRING, picture:STRING>)
    STORED BY 'org.elasticsearch.hadoop.hive.EsStorageHandler'
    TBLPROPERTIES('es.resource' = 'radio/artists');

STORED BY ‘org.elasticsearch.hadoop.hive.EsStorageHandler’确定了此表的存储处理方式。TBLPROPERTIES中的内容是es-hadoop的配置信息,es-hadoop的所有配置说明在传送门

在使用的过程中发现以下配置需

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值