得到“EsHadoopIllegalArgumentException:索引[汽油/ petrolCat]丢失和设置”,同时从蜂巢到ES的数据编号

问题描述:

有人可以请帮我解决这个错误。由于此例外,我无法将Hive数据加载到Elastic Search。得到“EsHadoopIllegalArgumentException:索引[汽油/ petrolCat]丢失和设置”,同时从蜂巢到ES的数据编号

--Hive控制台代码

Hive> 
     > create external table petrol_es(distributer_id STRING,distributer_name STRING,amt_IN STRING,amy_OUT STRING,vol_IN INT,vol_OUT INT,year INT) 
     > ROW FORMAT SERDE 'org.elasticsearch.hadoop.hive.EsSerDe' 
     > STORED BY 'org.elasticsearch.hadoop.hive.EsStorageHandler' 
     > tblproperties('es.resource' = 'petrol/petrolCat'); 
    OK 
    Time taken: 0.16 seconds 
    hive> 
     > 
     > select * from petrol_es; 
    OK 
    Failed with exception java.io.IOException:org.elasticsearch.hadoop.EsHadoopIllegalArgumentException: Index [petrol/petrolCat] missing and settings [es.field.read.empty.as.null] is set to false 
    Time taken: 0.156 seconds 
    hive> 
     > 
     > 
+0

你尝试参数es.field.read.empty.as.null设置为true? –

+0

当我添加下面的属性,然后解决这个问题-------'es.index.auto.create'='true','es.index.read.missing.as.empty'='yes' –

这一问题已被添加 'es.index.auto.create'= '真', 'es.index.read.missing.as.empty' 解决后= '是'属性。

--DDL

create external table petrol_es(distributer_id STRING,distributer_name STRING,amt_IN STRING,amy_OUT STRING,vol_IN INT,vol_OUT INT,year INT) 
    ROW FORMAT SERDE 'org.elasticsearch.hadoop.hive.EsSerDe' 
    STORED BY 'org.elasticsearch.hadoop.hive.EsStorageHandler' 
    tblproperties('es.resource' = 'petrol/petrolCat','es.index.auto.create' = 'true','es.index.read.missing.as.empty'='yes');