복붙노트

[HADOOP] 지수는 TEZ와 푸른 HDInsight에 하이브에 재 구축 실패

HADOOP

지수는 TEZ와 푸른 HDInsight에 하이브에 재 구축 실패

나는 TEZ가 활성화 된 푸른 HDInsight에 하이브에 인덱스를 만들어보십시오. 나는 성공적으로 인덱스를 생성 할 수 있지만, 나는 그들을 다시 할 수 없습니다이 출력에 실패한 작업을 :

Map 1: -/-  Reducer 2: 0/1  
Status: Failed
Vertex failed, vertexName=Map 1, vertexId=vertex_1421234198072_0091_1_01, diagnostics=[Vertex Input: measures initializer failed.]
Vertex killed, vertexName=Reducer 2, vertexId=vertex_1421234198072_0091_1_00, diagnostics=[Vertex > received Kill in INITED state.]
DAG failed due to vertex failure. failedVertices:1 killedVertices:1
FAILED: Execution Error, return code 2 from org.apache.hadoop.hive.ql.exec.tez.TezTask

나는 다음과 같은 작업 내 테이블과 인덱스를 만들었습니다 :

DROP TABLE IF EXISTS Measures;
CREATE TABLE Measures(
    topology string,
    val double,
    date timestamp,
)
ROW FORMAT SERDE 'org.openx.data.jsonserde.JsonSerDe'
STORED AS TEXTFILE LOCATION 'wasb://<mycontainer>@<mystorage>.blob.core.windows.net/';

CREATE INDEX measures_index_topology ON TABLE Measures (topology) AS 'COMPACT' WITH DEFERRED REBUILD;
CREATE INDEX measures_index_date ON TABLE Measures (date) AS 'COMPACT' WITH DEFERRED REBUILD;
ALTER INDEX measures_index_topology ON Measures REBUILD;
ALTER INDEX measures_index_date ON Measures REBUILD;

어디에서 잘못입니까? 그리고 내 재건 지수는 실패 이유는 무엇입니까? 친애하는

해결법

  1. ==============================

    1.TEZ가 빈 테이블에 인덱스를 생성에 문제가있을 것 같습니다. I합니다 (JSON SerDe를 사용하지 않고) 당신과 같은 오류를 얻을 수 있었고, 당신이, 당신이 뭔가를 같이 볼 수 있습니다 실패 DAG에 대한 응용 프로그램 로그를 보면 :

    TEZ가 빈 테이블에 인덱스를 생성에 문제가있을 것 같습니다. I합니다 (JSON SerDe를 사용하지 않고) 당신과 같은 오류를 얻을 수 있었고, 당신이, 당신이 뭔가를 같이 볼 수 있습니다 실패 DAG에 대한 응용 프로그램 로그를 보면 :

    java.lang.NullPointerException
        at org.apache.hadoop.hive.ql.io.HiveInputFormat.init(HiveInputFormat.java:254)
        at org.apache.hadoop.hive.ql.io.HiveInputFormat.getSplits(HiveInputFormat.java:299)
        at org.apache.hadoop.mapred.split.TezGroupedSplitsInputFormat.getSplits(TezGroupedSplitsInputFormat.java:68)
        at org.apache.tez.mapreduce.hadoop.MRHelpers.generateOldSplits(MRHelpers.java:263)
        at org.apache.tez.mapreduce.common.MRInputAMSplitGenerator.initialize(MRInputAMSplitGenerator.java:139)
        at org.apache.tez.dag.app.dag.RootInputInitializerRunner$InputInitializerCallable$1.run(RootInputInitializerRunner.java:154)
        at org.apache.tez.dag.app.dag.RootInputInitializerRunner$InputInitializerCallable$1.run(RootInputInitializerRunner.java:146)
        ...
    

    단일 더미 레코드가있는 테이블을 채우는 경우 잘 작동하는 것 같다. 내가 사용 :

    INSERT INTO TABLE Measures SELECT market,0,0 FROM hivesampletable limit 1;
    

    그 후, 인덱스 재 빌드 오류없이 실행할 수 있었다.

  2. from https://stackoverflow.com/questions/27948062/rebuild-index-failed-on-hive-on-azure-hdinsight-with-tez by cc-by-sa and MIT license