得到“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>
>
>
答
这一问题已被添加 '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');
你尝试参数es.field.read.empty.as.null设置为true? –
当我添加下面的属性,然后解决这个问题-------'es.index.auto.create'='true','es.index.read.missing.as.empty'='yes' –