2017-10-31 1 views
0

나는 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의에서 테이블을 인식하지 못합니다 왜 문제가 무엇인지. 친절하게 도와주세요.

미리 감사드립니다.

답변

0

사용하여 현재 작업 directory.Under에 --bindir 옵션 및 포인트 --bindir 옵션 늦게 답장을

죄송 LIB $ SQOOP_HOME /의 경로를 제공합니다. sqoop import -fs local -jt local -libjars /tmp/..../*.jar --connect "jdbc:mysql://example.com/sqoop" --username <>--password <>--table customers : Writing jar file:/tmp/sqoop.../*.jar

  • 가져 오기 명령을 사용

    • JAR 파일이 Sqoop을 프로세스가 에서 cmd를 실행하는 동안 점검 할 필요가 : 아래의 확인 호야 최신 코멘트에 따라 답을 업데이트
    • sqoop 가져 오기를 위해 생성 된 Java 파일을 확인하십시오. 정상적으로 가져 오는 테이블과 동일한 이름의
      을 가져야합니다. sqoop codegen --connect <""> --username <> --password <> --table customers

    희망이 있습니다.

  • +0

    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

    +0

    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

    관련 문제