2017-10-21 126 views
0

有人可以請幫我解決這個錯誤。由於此例外,我無法將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' –

回答

0

這一問題已被添加 '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');