欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Hive To Elasticsearch 博客分类: hadoopelasticsearchhive  

程序员文章站 2024-03-15 10:18:35
...

hive数据往elasticsearch导入的时候,需要用到一个插件。详情可以查看官网

 

具体的用法是这样:

  1. 在elasticsearch添加表。
  2. 在hive创建外部表
  3. 往hive插入数据

 

关键的步骤是在hive创建表的时候的定义:

 

CREATE EXTERNAL TABLE `report`(
  `id` string, 
  `rep_date` string COMMENT 'from deserializer', 
  `hour_id` int COMMENT 'from deserializer', 
  `channel_id` string COMMENT 'from deserializer', 
  `activate_num` int COMMENT 'from deserializer')
ROW FORMAT SERDE 
  'org.elasticsearch.hadoop.hive.EsSerDe' 
STORED BY 
  'org.elasticsearch.hadoop.hive.EsStorageHandler' 
WITH SERDEPROPERTIES ( 
  'serialization.format'='1')
TBLPROPERTIES (
  'es.index.auto.create'='false', 
  'es.nodes'='192.168.1.2:9200', 
  'es.resource'='report/detail_date', 
  'es.mapping.id' = 'id'
  )

 

 

如果你不需要指定elasticsearch的_id,那么'es.index.auto.create'='true',并且删掉es.mapping.id。默认的字段名一样,就可以实现导入。如果不一样,那么有'es.mapping.names'='hive_column:es_field'这样的用法。多列的话,就用英文逗号分隔。