2017-10-21 5 views
0

누군가이 오류를 해결하는 데 도움을 줄 수 있습니까? 이 예외 때문에 하이브리드 데이터를 Elastic Search에로드 할 수 없었습니다.하이브에서 ES까지 데이터를 loding하는 동안 "EshaadoopIllegalArgumentException : Index [petrol/petrolCat] 인덱스가 누락 및 설정 중"이 됨

--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

true로 매개 변수 es.field.read.empty.as.null을 설정하려고 했습니까? –

+0

아래 속성을 추가하면이 문제가 해결되었습니다. ------- 'es.index.auto.create'= 'true', 'es.index.read.missing.as.empty'= '예' –

답변

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');