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的所有配置说明在