GOOD4ME
[Sqoop export error] org.apache.sqoop.mapreduce.ExportJobBase.runExport 본문
개발.오류.정리/Sqoop
[Sqoop export error] org.apache.sqoop.mapreduce.ExportJobBase.runExport
de_youn 2022. 11. 21. 11:04반응형
독자 대상📣
👉 Sqoop을 사용하여 Hive to MySQL 마이그레이션하려는 분
👉 Ubuntu 환경에서 구축하시는 분
출간 이유❓
👉 Sqoop export 시, 오류 발생 확인
문제 파악🔍
...
2022-10-04 14:40:07,033 INFO mapreduce.Job: Job job_1662078057204_0026 failed with state FAILED due to: Task failed task_1662078057204_0026_m_000002 Job failed as tasks failed. failedMaps:1 failedReduces:0 killedMaps:0 killedReduces: 0
2022-10-04 14:40:07,116 INFO mapreduce.Job: Counters: 12
Job Counters
Failed map tasks=1
Killed map tasks=3
Launched map tasks=4
Data-local map tasks=4
Total time spent by all maps in occupied slots (ms)=31217
Total time spent by all reduces in occupied slots (ms)=0
Total time spent by all map tasks (ms)=31217
Total vcore-milliseconds taken by all map tasks=31217
Total megabyte-milliseconds taken by all map tasks=31966208
Map-Reduce Framework
CPU time spent (ms)=0
Physical memory (bytes) snapshot=0
Virtual memory (bytes) snapshot=0
2022-10-04 14:40:07,124 WARN mapreduce.Counters: Group FileSystemCounters is deprecated. Use org.apache.hadoop.mapreduce.FileSystemCounter instead
2022-10-04 14:40:07,125 INFO mapreduce.ExportJobBase: Transferred 0 bytes in 21.0529 seconds (0 bytes/sec)
2022-10-04 14:40:07,128 INFO mapreduce.ExportJobBase: Exported 0 records.
2022-10-04 14:40:07,128 ERROR mapreduce.ExportJobBase: Export job failed!
2022-10-04 14:40:07,128 ERROR tool.ExportTool: Error during export:
Export job failed! at org.apache.sqoop.mapreduce.ExportJobBase.runExport(ExportJobBase.java:445)
at org.apache.sqoop.manager.SqlManager.exportTable(SqlManager.java:931)
at org.apache.sqoop.tool.ExportTool.exportTable(ExportTool.java:80)
at org.apache.sqoop.tool.ExportTool.run(ExportTool.java:99)
at org.apache.sqoop.Sqoop.run(Sqoop.java:147)
at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:76)
at org.apache.sqoop.Sqoop.runSqoop(Sqoop.java:183)
at org.apache.sqoop.Sqoop.runTool(Sqoop.java:234)
at org.apache.sqoop.Sqoop.runTool(Sqoop.java:243)
at org.apache.sqoop.Sqoop.main(Sqoop.java:252)
...
👉 Q: sqoop export로 hive에서 mysql로 데이터 마이그레이션을 하려는데 오류가 발생해요..😥
문제 해결🎊
A: 우선 yarn log를 확인하셔야합니다😀
커맨드로 확인할 수도 있는데, 유저/권한이 불일치하여
볼 수 없는 경우가 종종 있습니다.
ex) Docker로 Hadoop eco system 구축 등
가장 쉽게 로그를 확인하는 방법은 WEB HDFS에 접속하는 것입니다❗
하단의 내용을 참고하여 이 Disgusting한 문제를 해결하십시오❗❗
- NameNode의 주소로 WEB HDFS 접속
# 컨테이너 로그 1로 끝나는 디렉터리로 접근
경로: /logs/userlogs/application_xxxxxxxx_xx/container_xxxx_xxxx_xx_xxxxx1/ - 디렉터리 내, 로그 파일 확인
로그 파일명: syslog - 필자의 오류 -> MySQL 접근 권한
...
2022-10-04 05:40:04,716 INFO [AsyncDispatcher event handler org.apache.hadoop.mapreduce.v2.app.job.impl.TaskAttemptImpl: Diagnostics report from attempt 1662078057204 0026 m 000000 0: Error: java.io.I0Exception: java.sql.SQLException: null, message from server: "Host 'mycluster' is not allowed to connect to this MySOL server"
...
# MySQL에 접속하여 'mycluster' 라는 컨테이너의 접근권한을 생성 및 부여해야한다. # Hive가 HDFS 기반이기 때문에 HDFS의 Avtive NameNode인 mycluster의 권한이 필요한가 봅니다😊 - MySQL에 접속하여 접근권한 부여하기
# 하단의 sql 커맨딩 시, 권한 생성 및 부여 완료
# sqoop export 또한 해결되었음
> create user root@[mycluster ip address] identified by '[password]';
> grant all privileges on [database].* to root@[mycluster ip addr];
> flush privileges;
반응형
Comments