복붙노트

[HADOOP] 태스크 제한 시간 때문에 Sqoop 가져 오기 작업이 실패합니다.

HADOOP

태스크 제한 시간 때문에 Sqoop 가져 오기 작업이 실패합니다.

sqoop을 사용하여 MySQL의 1TB 테이블을 HDFS로 가져 오려고했습니다. 사용 된 명령은 다음과 같습니다.

sqoop import --connect jdbc : mysql : //xx.xx.xxx.xx/MyDB - 사용자 이름 myuser - 패스워드 mypass - 테이블 mytable --split-by rowkey -m 14

경계 값 쿼리를 실행하면 모든 매퍼가 시작되지만 시간이 지나면 시간 초과 (1200 초)로 인해 작업이 종료됩니다. 이것은 매 매퍼에서 실행되는 select 쿼리를 실행하는 데 걸리는 시간이 제한 시간 (sqoop에서는 1200 초인 것처럼 보임)보다 많은 시간이 걸리기 때문입니다. 따라서 상태를보고하지 못하고 작업이 연속적으로 종료됩니다. (나는 또한 100GB 데이터 세트를 시도했지만 여러 매퍼에 대한 시간 초과로 인해 여전히 실패했습니다.) 단일 매퍼 가져 오기의 경우 필터링 된 결과 세트가 필요 없으므로 정상적으로 작동합니다. sqoop에서 여러 매퍼를 사용하면서지도 작업 시간 초과 (0 또는 매우 높은 값으로 설정)를 무시할 수있는 방법이 있습니까?

해결법

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

    1.Sqoop은 특수 쓰레드를 사용하여 상태를 보내서 maptrack이 jobtracker에 의해 죽지 않도록합니다. 나는 당신의 문제를 더 깊이 탐구하는 데 관심이있을 것이다. 지도 작업 로그와 테이블 스키마 중 하나 인 sqoop 로그를 공유 하시겠습니까?

    Sqoop은 특수 쓰레드를 사용하여 상태를 보내서 maptrack이 jobtracker에 의해 죽지 않도록합니다. 나는 당신의 문제를 더 깊이 탐구하는 데 관심이있을 것이다. 지도 작업 로그와 테이블 스키마 중 하나 인 sqoop 로그를 공유 하시겠습니까?

    Jarcec

  2. from https://stackoverflow.com/questions/14681205/sqoop-import-job-fails-due-to-task-timeout by cc-by-sa and MIT license