impor sqoop tidak mengidentifikasi tabel mysql yang menampilkan Kesalahan ClassNotFountException

Saya memiliki tabel "pelanggan" mysql dan mencoba mengimpor data dari lokasi mysql ke hdfs menggunakan sqoop import. Di bawah ini adalah versi yang saya instal di mesin saya: versi sqoop: 1.4.6 versi hive: 2.3.0 Versi Hadoop: 2.8.1

Perintah impor Sqoop:

sqoop import --connect jdbc:mysql://localhost/localdb --username root --password mnbv@1234 --table customers -m 1 --target-dir /user/hduser/sqoop_import/customers1/

dan ditampilkan di bawah 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!

Tetapi ketika saya mencoba membuat daftar tabel menggunakan perintah sqoop, itu berfungsi dengan baik dan menampilkan tabel pelanggan. Perintah sendok:

sqoop list-tables --connect jdbc:mysql://localhost/localdb --username root --password mnbv@1234;

Output ditampilkan dengan benar seperti yang ditunjukkan:

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

apa masalahnya, mengapa sqoop import from table tidak mengenali tabel dari mysql. Mohon bantu saya dalam hal yang sama.

Terima kasih sebelumnya.


person Kumar    schedule 31.10.2017    source sumber


Jawaban (1)


Gunakan opsi  --bindir dan arahkan ke direktori kerja Anda saat ini. Di bawah opsi --bindir, berikan jalur $SQOOP_HOME/lib

Maaf atas keterlambatan balasan.Memperbarui Jawaban sesuai komentar terbaru. Silakan periksa di bawah ini:

  • File jar perlu diperiksa saat proses sqoop berjalan di cmd: Writing jar file:/tmp/sqoop.../*.jar
  • Gunakan perintah impor: sqoop import -fs local -jt local -libjars /tmp/..../*.jar --connect "jdbc:mysql://example.com/sqoop" --username <>--password <>--table customers
  • Verifikasi file Java yang dihasilkan untuk impor sqoop. Namanya harus
    sama dengan tabel yang Anda impor secara normal. sqoop codegen --connect <""> --username <> --password <> --table customers

Semoga ini membantu!

person Subash    schedule 31.10.2017
comment
17/11/01 09:32:24 INFO mapreduce.Pekerjaan: Pekerjaan job_local349901698_0001 berjalan dalam mode uber : false 17/11/01 09:32:24 INFO mapreduce.Pekerjaan: peta 0% kurangi 0% 17/11/01 09 :32:24 INFO mapreduce.Job: Job job_local349901698_0001 gagal dengan status GAGAL karena: NA 17/11/01 09:32:24 INFO mapreduce.Job: Penghitung: 8 Map-Reduce Framework Catatan masukan peta=2 Catatan keluaran peta= 2 Input byte terpisah=87 Catatan Tumpah=0 Pengacakan Gagal=0 Output Peta yang Digabung=0 Format Input File Penghitung Byte Baca=0 Format Output File Penghitung Byte Tertulis=164 - person Kumar; 01.11.2017
comment
17/11/01 09:32:24 PERINGATAN mapreduce.Counters: Group FileSystemCounters sudah tidak digunakan lagi. Gunakan org.apache.hadoop.mapreduce.FileSystemCounter sebagai gantinya 17/11/01 09:32:24 INFO mapreduce.ImportJobBase: Ditransfer 0 byte dalam 3,8506 detik (0 byte/dtk) 17/11/01 09:32:24 INFO mapreduce .ImportJobBase: Mengambil 2 catatan. 17/11/01 09:32:24 Alat ERROR.ImportTool: Kesalahan selama impor: Pekerjaan impor gagal! Tidak dapat menemukan masalahnya, mohon bantuannya. - person Kumar; 01.11.2017