2017-12-14 35 views
0

어디서 잘못 가고 있는지 모르지만 HDFS에서 MySQL로 내 Sqoop 내보내기 명령을 실행할 때마다 실패합니다.Sqoop MySQL로 내보내기 HDFS가 실패합니다.

sqoop export --connect "jdbc:mysql://quickstart.cloudera:3306/streaming" 
--username root --password cloudera --table pd_count --update-key id 
--update-mode allowinsert --export-dir /user/cloudera/input/* -m 1 --batch 

이 수출 디렉토리 만 1 폴더이며, 즉 3 개 파일을 포함,

  1. 부분-m-00000
  2. 부분-m-00001
  3. 파트 M- 00002

--update 인수에 대해 알기 위해 마지막 파일을 갱신했습니다. 그러나 내가 시도한 순열이 아무리 많아도 그 일은 실패합니다.

  1. 데이터를 증분 업데이트없이 MySQL로 내보내고 데이터를 성공적으로 내 보냅니다.
  2. "증분 추가"를 사용하여 HDFS로 데이터를 가져 오는데 성공했습니다.
  3. 그러나 "update-key"및 "update mode"를 사용하여 MySQL로 데이터를 내보내려고하면 전송되지 않고 실패합니다.

위의 명령이 마지막으로 사용한 명령이었습니다.

다음은 최근 오류 로그입니다. link, 도와주세요.

미리 감사드립니다.

+1

어떤 오류가 발생하고 있습니까? –

+0

매번 다른 이유로 실패합니다. 한 번만 mapreduce 작업이 30 분 이상 실행됩니다. 그런 다음 정상적인 경우 작업 완료를 위해 약 1 분이 걸리기 때문에 강제로 종료됩니다. 다른 시간에 "내보내기 작업 실패"오류가 표시됩니다. –

+0

"allowinsert"에서 "updateonly"로 --update-mode의 유효 값을 변경하여 시도했습니다. 심지어 그것은 어떤 식 으로든 나를 돕지 못했습니다. –

답변

0

알았어요, 당신이 확장 된 로그를 다시 한 번 내보내기에 사용 --verbose 아래의 옵션

  1. 를 사용해보십시오 different.Could 뭔가를 가정했다.
  2. 실패한 응용 프로그램에서 응용 프로그램 로그를 볼 수 있습니다. 을 가져 오려면 Sqoop 명령을 실행 한 사용자로 다음 명령을 실행하십시오. yarn logs -applicationId application_1513399439223_0001 > app_logs.txt.
  3. --input-fields-terminated-by을 추가하지 않은 것 같습니다.

최근 코멘트에 따라 답을 업데이트 난 당신이 job.It 아래의 조정 및 다시 Sqoop을 실행하려고 performance.Please과 관련이있을 수도 죽일 참조

:

  • 는 일괄 적으로 데이터를 삽입 4 -m 4
  • 에 매퍼의 수를 설정 --batch
  • 사용 부동산 sqoop.export.records.per.statementsqoop export -Dsqoop.export.records.per.statement=100 --connect
  • 마지막으로 문 삽입 각에 사용되는 레코드의 수를 지정 sqoop.export.statements.per.transaction 속성과 거래 당 삽입 할 행 수를 지정합니다.sqoop export -Dsqoop.export.statements.per.transaction=100 --connect

실 로그를 제공하고 데이터 양은 얼마입니까?

+0

"자세한 정보"를 사용하여 확장 로그를 생성했습니다. 여기에 [로그] (https://ghostbin.com/paste/f6wra)가 있습니다. '--input-fields-terminated-by'는 나를 도와주지 못했습니다. –

+0

제안한 모든 명령을 사용한 후 성능이 향상되었으며 실행 시간이 7 분 19 초로 단축되었습니다. 이전에는 30 분 이상 걸렸습니다. 그러나 슬픈 부분은 다시 실패했습니다. 데이터 볼륨은 64MB입니다. My Sqoop Job은 MapReduce를 YARN이 아닌 실행 엔진으로 사용합니다. 그래서 나는 YARN 로그를 제공 할 수 없다고 생각합니다. –

+0

OK .. 로그가 여전히 동일합니까?/var/logs/hadoop- * 또는/var/logs/mapred- * 또는 localhost : 50030/jobtracker.jsp에서 로그를 확인할 수 있습니까? 그렇지 않으면 하드 실패에 대한 구체적인 이유를 알고 싶습니다. 낮은 메모리 파일 (10MB 또는 5MB)을 실행하여 시도하십시오. – Subash