将数据从配置单元加载到 ES 时得到 "EsHadoopIllegalArgumentException: Index [petrol/petrolCat] missing and settings"
getting "EsHadoopIllegalArgumentException: Index [petrol/petrolCat] missing and settings" while loding data from hive to ES
谁能帮我解决这个错误。由于这个异常,我无法将配置单元数据加载到 Elastic Search。
--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' = 'true','es.index.read.missing.as.empty'='yes' 属性后得到解决。
--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');
谁能帮我解决这个错误。由于这个异常,我无法将配置单元数据加载到 Elastic Search。
--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' = 'true','es.index.read.missing.as.empty'='yes' 属性后得到解决。
--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');