2016-04-11 12 views
0

Sqoop JOBSをリストするときに次の例外が発生します。私はので、この例外のSoopジョブを作成することはできませんよSqoopジョブ例外

[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バージョン: 1.3.0-cdh3u5

以下のように使用

コマンドを助けてください:

sqoop job --list 

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

解雇したコマンドを共有してください。 –

+0

使用コマンド: sqoop job --list sqoop job --create sqoopjob21 - import --connect jdbc:mysql:// localhost/mysql1 --table emp --target-dir/importjob21; –

+0

はこの完全なエラーログか、 'General error:java.lang.ClassFormatError:Truncated class file'の後の行ですか? org.hsqldb.jdbc.jdbcConnectionでorg.hsqldb.jdbc.Util.sqlExceptionで切り捨てクラスファイル \t(不明なソース) \t:ます。java.sql.SQLException::一般的なエラー:ます。java.lang.ClassFormatErrorによって引き起こさ –

答えて

0

ause sqoopは、ジョブ情報を格納するために使用するhsqldbを見つけることができません。 sqoopがインストールされているディレクトリに "metastore.db.script"ファイルがあるかどうかを確認します(作成していない場合)。 に今「metastore.db.properties」ファイルを作成し、これらの線

#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 

を置く「metastore.db.script」という名前のファイルを作成し、次の行に

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') 

を置くことは今すぐという名前のディレクトリを作成します".sqoop"がまだ作成されていない場合は、この2つのファイルをそこに配置します。今すぐあなたの仕事をしてください。