2016-04-11 9 views
0

Ich erhalte die folgende Ausnahme, wenn ich versuche, die Sqoop JOBS aufzulisten.Sqoop Job Ausnahme

Ich bin wegen dieser Ausnahme nicht in der Lage, die Soop Arbeitsplätze zu schaffen:

[email protected]:/usr/lib/sqoop/conf# sqoop job --list 16/04/11 01:51:44 ERROR tool.JobTool: I/O error performing job operation: java.io.IOException: Exception creating SQL connection at com.cloudera.sqoop.metastore.hsqldb.HsqldbJobStorage.init(HsqldbJobStorage.java:220) at com.cloudera.sqoop.metastore.hsqldb.AutoHsqldbStorage.open(AutoHsqldbStorage.java:113) at com.cloudera.sqoop.tool.JobTool.run(JobTool.java:279) at com.cloudera.sqoop.Sqoop.run(Sqoop.java:146) at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:65) at com.cloudera.sqoop.Sqoop.runSqoop(Sqoop.java:182) at com.cloudera.sqoop.Sqoop.runTool(Sqoop.java:221) at com.cloudera.sqoop.Sqoop.runTool(Sqoop.java:230) at com.cloudera.sqoop.Sqoop.main(Sqoop.java:239) Caused by: Caused by: java.sql.SQLException: General error: java.lang.ClassFormatError: >Truncated class file at org.hsqldb.jdbc.Util.sqlException(Unknown Source) at org.hsqldb.jdbc.jdbcConnection.(Unknown Source) at org.hsqldb.jdbcDriver.getConnection(Unknown Source) at org.hsqldb.jdbcDriver.connect(Unknown Source) at java.sql.DriverManager.getConnection(DriverManager.java:582) at java.sql.DriverManager.getConnection(DriverManager.java:185) at com.cloudera.sqoop.metastore.hsqldb.HsqldbJobStorage.init(HsqldbJobStorage.java:>180) ... 8 more

Sqoop Version: 1.3.0-cdh3u5

Bitte helfen

Befehle wie unten verwendet :

sqoop job --list 

sqoop job --create sqoopjob21 -- import --connect jdbc:mysql://localhost/mysql1 --table emp --target-dir /importjob21 ; 
+0

teilen Sie bitte den Befehl, den Sie gefeuert haben. –

+0

Befehle verwendet: sqoop Job - Liste sqoop Job --create sqoopjob21 - Import - Verbindung jdbc: mysql: // localhost/mysql1 - Tabelle emp - target-dir/importjob21; –

+0

ist dieses vollständige Fehlerprotokoll oder mehr Zeilen nach 'Allgemeiner Fehler: java.lang.ClassFormatError: Abgeschnittene Klassendatei'? –

Antwort

0

Dies möglicherweise möglicherweise bec ause sqoop kann die hsqldb nicht finden, mit der Jobinformationen gespeichert werden. Überprüfen Sie, ob Sie die Datei "metastore.db.script" im Verzeichnis "sqoop installed" installiert haben, wenn Sie sie nicht erstellen. Erstellen Sie eine Datei mit dem Namen „metastore.db.script“ und legen Sie die folgenden Zeilen

CREATE SCHEMA PUBLIC AUTHORIZATION DBA 
CREATE MEMORY TABLE SQOOP_ROOT(VERSION INTEGER,PROPNAME VARCHAR(128) NOT NULL,PROPVAL VARCHAR(256),CONSTRAINT SQOOP_ROOT_UNQ UNIQUE(VERSION,PROPNAME)) 
CREATE MEMORY TABLE SQOOP_SESSIONS(JOB_NAME VARCHAR(64) NOT NULL,PROPNAME VARCHAR(128) NOT NULL,PROPVAL VARCHAR(1024),PROPCLASS VARCHAR(32) NOT NULL,CONSTRAINT SQOOP_SESSIONS_UNQ UNIQUE(JOB_NAME,PROPNAME,PROPCLASS)) 
CREATE USER SA PASSWORD "" 
GRANT DBA TO SA 
SET WRITE_DELAY 10 
SET SCHEMA PUBLIC 
INSERT INTO SQOOP_ROOT VALUES(NULL,'sqoop.hsqldb.job.storage.version','0') 
INSERT INTO SQOOP_ROOT VALUES(0,'sqoop.hsqldb.job.info.table','SQOOP_SESSIONS') 

Now „metastore.db.properties“ Datei erstellen und diese Zeilen setzen

#HSQL Database Engine 1.8.0.10 
#Fri Aug 04 14:07:10 IST 2017 
hsqldb.script_format=0 
runtime.gc_interval=0 
sql.enforce_strict_size=false 
hsqldb.cache_size_scale=8 
readonly=false 
hsqldb.nio_data_file=true 
hsqldb.cache_scale=14 
version=1.8.0 
hsqldb.default_table_type=memory 
hsqldb.cache_file_scale=1 
hsqldb.log_size=200 
modified=no 
hsqldb.cache_version=1.7.0 
hsqldb.original_version=1.8.0 
hsqldb.compatible_version=1.8.0 

Nun wird ein Verzeichnis mit dem Namen erstellen ".sqoop" wenn nicht schon erstellt und diese beiden Dateien dort ablegen. Jetzt mach deinen Job.

Verwandte Themen