나는 mysql 테이블 "고객"을 가지고 있으며 sqoop 가져 오기를 사용하여 MySQL에서 hdfs 위치로 데이터 가져 오기를 시도했습니다. Sqoop을 버전 : 1.4.6 하이브 버전 : 2.3.0 하둡 버전 : 2.8.1sqoop 가져 오기 ClassNotFountException 오류를 보여주는 mysql 테이블을 식별하지 않습니다.
Sqoop을 가져 오기 명령 : 아래는 내가 내 컴퓨터에 설치되어있는 버전입니다
sqoop import --connect jdbc:mysql://localhost/localdb --username root --password [email protected] --table customers -m 1 --target-dir /user/hduser/sqoop_import/customers1/
가와 ClassNotFountException 아래에 표시 :
Tue Oct 31 09:57:21 IST 2017 WARN: Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn't set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to 'false'. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification.17/10/31 09:57:21 INFO db.DBInputFormat: Using read commited transaction isolation 17/10/31 09:57:21 INFO mapred.MapTask: Processing split: 1=1 AND 1=1
17/10/31 09:57:21 INFO mapred.LocalJobRunner: map task executor complete.
17/10/31 09:57:22 WARN mapred.LocalJobRunner: job_local1437452057_0001java.lang.Exception: java.lang.RuntimeException: java.lang.ClassNotFoundException: Class customers not found
at org.apache.hadoop.mapred.LocalJobRunner$Job.runTasks(LocalJobRunner.java:489
at org.apache.hadoop.mapred.LocalJobRunner$Job.run(LocalJobRunner.java:549)
Caused by: java.lang.RuntimeException: java.lang.ClassNotFoundException: Class customers not found at org.apache.hadoop.conf.Configuration.getClass(Configuration.java:2216)
at org.apache.sqoop.mapreduce.db.DBConfiguration.getInputClass(DBConfiguration.java:403)
at org.apache.sqoop.mapreduce.db.DataDrivenDBInputFormat.createDBRecordReader(DataDrivenDBInputFormat.java:237)
at org.apache.sqoop.mapreduce.db.DBInputFormat.createRecordReader(DBInputFormat.java:263) at org.apache.hadoop.mapred.MapTask$NewTrackingRecordReader.<init>(MapTask.java:515)
at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:758) at org.apache.hadoop.mapred.MapTask.run(MapTask.java:341)
at org.apache.hadoop.mapred.LocalJobRunner$Job$MapTaskRunnable.run(LocalJobRunner.java:270) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.ClassNotFoundException: Class customers not found at org.apache.hadoop.conf.Configuration.getClassByName(Configuration.java:2122)
at org.apache.hadoop.conf.Configuration.getClass(Configuration.java:2214)
... 12 more
17/10/31 09:57:22 INFO mapreduce.Job: Job job_local1437452057_0001 running in uber mode : false 17/10/31 09:57:22 INFO mapreduce.Job: map 0% reduce 0%
17/10/31 09:57:22 INFO mapreduce.Job: Job job_local1437452057_0001 failed with state FAILED due to: NA 17/10/31 09:57:22 INFO mapreduce.Job: Counters: 0
17/10/31 09:57:22 WARN mapreduce.Counters: Group FileSystemCounters is deprecated. Use org.apache.hadoop.mapreduce.FileSystemCounter instead 17/10/31 09:57:22 INFO mapreduce.ImportJobBase: Transferred 0 bytes in 4.105 seconds (0 bytes/sec)
17/10/31 09:57:22 WARN mapreduce.Counters: Group org.apache.hadoop.mapred.Task$Counter is deprecated. Use org.apache.hadoop.mapreduce.TaskCounter instead 17/10/31 09:57:22 INFO mapreduce.ImportJobBase: Retrieved 0 records.
17/10/31 09:57:22 ERROR tool.ImportTool: Error during import: Import job failed!
하지만 sqoop 명령을 사용하여 목록 테이블을 만들 때 잘 작동하고 고객 테이블을 표시합니다. Sqoop을 명령 :
sqoop list-tables --connect jdbc:mysql://localhost/localdb --username root --password [email protected];
출력이 같이 제대로 표시됩니다 :
17/10/31 10:07:09 INFO manager.MySQLManager: Preparing to use a MySQL streaming resultset.
Tue Oct 31 10:07:09 IST 2017 WARN: Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn't set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to 'false'. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification. customers
테이블에서 Sqoop을 가져 오기 MySQL의에서 테이블을 인식하지 못합니다 왜 문제가 무엇인지. 친절하게 도와주세요.
미리 감사드립니다.
17/11/01 9시 32분 24초 정보 mapreduce.Job : 동네 짱 모드에서 실행 작업 job_local349901698_0001 : 거짓 17/11/01 9시 32분 24초 정보의 mapreduce.Job :지도 0 % 0 % 감소 (17)/11/01 09:32:24 정보 mapreduce.Job : job job_local349901698_0001이 FAILED 상태로 인해 실패했습니다. NA 17/11/01 09:32:24 INFO mapreduce.작업 : 카운터 8 \t 프레임 워크 \t \t지도 입력 레코드 = 2 \t \t지도 출력 레코드 = 2 입력 분할 바이트 맵 감소 = \t \t 87 기록 = 0 \t \t는 셔플 = 0 \t \t 실패 쏟 합병지도 출력 = 0 \t 파일 입력 형식 카운터 \t \t 바이트 읽기 = 0 \t 파일 출력 형식 카운터 \t \t 쓰여진 바이트 = 164 – Chaithu
17/11/01 09:32:24 WARN mapreduce.Counters : Group FileSystemCounters가 사용되지 않습니다. org.apache.hadoop.mapreduce.FileSystemCounter를 대신 사용하십시오 17/11/01 09:32:24 INFO mapreduce.ImportJobBase : 3.8506 초 (0 바이트/초)로 0 바이트 전송 17/11/01 09:32:24 INFO mapreduce.ImportJobBase : 2 개의 레코드를 검색했습니다. 17/11/01 09:32:24 오류 tool.ImportTool : 가져 오는 중에 오류가 발생했습니다 : 가져 오기 작업이 실패했습니다! 같은 문제에 대한 pls 도움말을 찾을 수 없습니다. – Chaithu