복붙노트

[HADOOP] Hive 란 무엇인가 : org.apache.hadoop.hive.ql.exec.MapRedTask의 코드 2를 반환하십시오.

HADOOP

Hive 란 무엇인가 : org.apache.hadoop.hive.ql.exec.MapRedTask의 코드 2를 반환하십시오.

나는 얻고있다:

FAILED: Execution Error, return code 2 from org.apache.hadoop.hive.ql.exec.MapRedTask

하이브 콘솔의 명령을 사용하여 분할 된 테이블의 복사본을 만들려고 할 때 :

CREATE TABLE copy_table_name LIKE table_name;
INSERT OVERWRITE TABLE copy_table_name PARTITION(day) SELECT * FROM table_name;

처음에 몇 가지 의미 분석 오류가 발생하여 다음을 설정해야했습니다.

set hive.exec.dynamic.partition=true
set hive.exec.dynamic.partition.mode=nonstrict

위의 속성이 어떤 역할을하는지 확신 할 수 없지만?

하이브 콘솔의 전체 출력 :

Total MapReduce jobs = 1
Launching Job 1 out of 1
Number of reduce tasks determined at compile time: 1
In order to change the average load for a reducer (in bytes):
  set hive.exec.reducers.bytes.per.reducer=<number>
In order to limit the maximum number of reducers:
  set hive.exec.reducers.max=<number>
In order to set a constant number of reducers:
  set mapred.reduce.tasks=<number>
Starting Job = job_201206191101_4557, Tracking URL = http://jobtracker:50030/jobdetails.jsp?jobid=job_201206191101_4557
Kill Command = /usr/lib/hadoop/bin/hadoop job  -Dmapred.job.tracker=master:8021 -kill job_201206191101_4557
2012-06-25 09:53:05,826 Stage-1 map = 0%,  reduce = 0%
2012-06-25 09:53:53,044 Stage-1 map = 100%,  reduce = 100%
Ended Job = job_201206191101_4557 with errors
FAILED: Execution Error, return code 2 from org.apache.hadoop.hive.ql.exec.MapRedTask

해결법

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

    1.실제 오류가 아니라 다음을 찾는 방법입니다.

    실제 오류가 아니라 다음을 찾는 방법입니다.

    hadoop 구직자 웹 대시 보드로 이동하여 실패한 하이브 mapreduce 작업을 찾고 실패한 작업의 로그를 살펴보십시오. 그러면 실제 오류가 표시됩니다.

    콘솔 출력 오류는 쓸모가 없습니다. 왜냐하면 실제 작업을 볼 수있는 개별 작업 / 작업의보기가 없기 때문입니다 (여러 작업에 오류가있을 수 있습니다)

    희망이 도움이됩니다.

  2. ==============================

    2.나는이 스레드에서 3 년 늦었지만 앞으로도 비슷한 경우에 2 센트를 제공한다는 것을 알고 있습니다.

    나는이 스레드에서 3 년 늦었지만 앞으로도 비슷한 경우에 2 센트를 제공한다는 것을 알고 있습니다.

    최근에 내 클러스터에서 같은 문제 / 오류가 발생했습니다. JOB은 항상 약 80 % 이상 감소하고 동일한 오류로 실패하고 실행 로그에서 계속 진행됩니다. 여러 번의 반복과 조사에서 파일을로드하는 것 중에 많은 부분이 기본 테이블 (파티션 된 테이블에 데이터를 삽입하는 데 사용되는 테이블)에 제공된 구조와 호환되지 않음을 발견했습니다.

    여기서 주목해야 할 점은 파티션 컬럼에서 특정 값에 대한 select 쿼리를 실행하거나 정적 파티션을 생성 할 때마다 오류 레코드가 건너 뛴다는 것입니다.

    TL : DR : HIVE가 Schema-On-Read 철학을 따르는 구조에서 불일치가 있는지 들어오는 데이터 / 파일을 확인하십시오.

  3. ==============================

    3.여기에 정보를 추가하면 HDInsight (Azure 's Hadoop)에서 hadoop 구직자 웹 대시 보드를 찾는 데 잠시 시간이 걸렸으며 동료는 마침내 내가 어디에 있는지를 보여주었습니다. 헤드 노드에는 "http : // headnodehost : 9014 / cluster in my case"에 대한 링크 인 "Hadoop Yarn Status"라는 바로 가기가 있습니다. 대시 보드를 열면 다음과 같이 보입니다.

    여기에 정보를 추가하면 HDInsight (Azure 's Hadoop)에서 hadoop 구직자 웹 대시 보드를 찾는 데 잠시 시간이 걸렸으며 동료는 마침내 내가 어디에 있는지를 보여주었습니다. 헤드 노드에는 "http : // headnodehost : 9014 / cluster in my case"에 대한 링크 인 "Hadoop Yarn Status"라는 바로 가기가 있습니다. 대시 보드를 열면 다음과 같이 보입니다.

    해당 대시 보드에서 실패한 애플리케이션을 찾은 다음 클릭하면 개별 맵의 로그를보고 작업을 줄일 수 있습니다.

    필자가 이미 구성에서 메모리를 크랭크 했더라도 제 경우에는 감속기에서 여전히 메모리가 부족한 것처럼 보였습니다. 어떤 이유로 나는 이전에 "java outofmemory"오류가 발생하지 않았습니다.

  4. ==============================

    4.S3의 EMR 출력 경로에서 _SUCCESS 파일을 제거했는데 정상적으로 작동했습니다.

    S3의 EMR 출력 경로에서 _SUCCESS 파일을 제거했는데 정상적으로 작동했습니다.

  5. ==============================

    5.오류 코드가 많은 정보를주지 않는다는 최상위 대답입니다. 이 오류 코드에 대해 팀에서 보았던 일반적인 원인 중 하나는 쿼리가 제대로 최적화되지 않은 경우였습니다. 알려진 이유는 우리가 오른쪽에있는 테이블보다 큰 왼쪽 테이블의 크기로 내부 결합을 할 때였습니다. 이러한 테이블을 교환하는 것은 일반적으로 이러한 경우에 트릭을 수행합니다.

    오류 코드가 많은 정보를주지 않는다는 최상위 대답입니다. 이 오류 코드에 대해 팀에서 보았던 일반적인 원인 중 하나는 쿼리가 제대로 최적화되지 않은 경우였습니다. 알려진 이유는 우리가 오른쪽에있는 테이블보다 큰 왼쪽 테이블의 크기로 내부 결합을 할 때였습니다. 이러한 테이블을 교환하는 것은 일반적으로 이러한 경우에 트릭을 수행합니다.

  6. ==============================

    6.심지어 같은 문제에 직면했습니다. 대시 보드에서 확인한 결과 오류가 발견되었습니다. 데이터가 Flume을 통해 들어오고 중간에 중단 되었기 때문에 몇 가지 파일에서 모순이있을 수 있습니다.

    심지어 같은 문제에 직면했습니다. 대시 보드에서 확인한 결과 오류가 발견되었습니다. 데이터가 Flume을 통해 들어오고 중간에 중단 되었기 때문에 몇 가지 파일에서 모순이있을 수 있습니다.

    Caused by: org.apache.hadoop.hive.serde2.SerDeException: org.codehaus.jackson.JsonParseException: Unexpected end-of-input within/between OBJECT entries
    

    더 적은 수의 파일에서 실행됩니다. 필자의 경우 포맷 일관성이 그 이유였다.

  7. ==============================

    7.Elastic 검색 클러스터를 가리키는 HIVE 외부 테이블에 데이터를 삽입 할 때도 동일한 오류가 발생했습니다.

    Elastic 검색 클러스터를 가리키는 HIVE 외부 테이블에 데이터를 삽입 할 때도 동일한 오류가 발생했습니다.

    이전 JAR elasticsearch-hadoop-2.0.0.RC1.jar을 elasticsearch-hadoop-5.6.0.jar로 바꿨고 모든 것이 잘 동작했습니다.

    제 제안은 탄성 검색 버전에 따라 특정 JAR을 사용하십시오. 최신 버전의 탄성 검색을 사용하는 경우 이전 JAR을 사용하지 마십시오.

    이 게시물 덕분에 Hive-Elasticsearch Write Operation # 409

  8. from https://stackoverflow.com/questions/11185528/what-is-hive-return-code-2-from-org-apache-hadoop-hive-ql-exec-mapredtask by cc-by-sa and MIT license