Hive To Elasticsearch

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'这样的用法。多列的话,就用英文逗号分隔。

猜你喜欢

转载自aeolus1983.iteye.com/blog/2326029
今日推荐