1

sqoop から " --hive import " コマンドを使用して、テーブルを自動的に作成し、データをハイブにロードして、Hadoop で mysql から Hive にデータベースをインポートしようとしています。

以下のコマンドを使用して、sqoopでインポートを実行します

./sqoop-import --connect jdbc:mysql://localhost/paman -table bibis -m 1 -hive-import

このコマンドを実行すると:

hadoop@dewi:/opt/sqoop/bin$ ./sqoop-import --connect jdbc:mysql://localhost/paman -table bibis -m 1 -hive-import
12/06/11 16:08:47 INFO tool.BaseSqoopTool: Using Hive-specific delimiters for output. You can override
12/06/11 16:08:47 INFO tool.BaseSqoopTool: delimiters with --fields-terminated-by, etc.
12/06/11 16:08:47 INFO tool.CodeGenTool: Beginning code generation
12/06/11 16:08:47 ERROR sqoop.Sqoop: Got exception running Sqoop: java.lang.RuntimeException: Could not load db driver class: com.mysql.jdbc.Driver
java.lang.RuntimeException: Could not load db driver class: com.mysql.jdbc.Driver
    at com.cloudera.sqoop.manager.SqlManager.makeConnection(SqlManager.java:597)
    at com.cloudera.sqoop.manager.GenericJdbcManager.getConnection(GenericJdbcManager.java:51)
    at com.cloudera.sqoop.manager.MySQLManager.execute(MySQLManager.java:201)
    at com.cloudera.sqoop.manager.SqlManager.getColumnTypesForRawQuery(SqlManager.java:177)
    at com.cloudera.sqoop.manager.SqlManager.getColumnTypes(SqlManager.java:161)
    at com.cloudera.sqoop.orm.ClassWriter.generate(ClassWriter.java:908)
    at com.cloudera.sqoop.tool.CodeGenTool.generateORM(CodeGenTool.java:82)
    at com.cloudera.sqoop.tool.ImportTool.importTable(ImportTool.java:337)
    at com.cloudera.sqoop.tool.ImportTool.run(ImportTool.java:423)
    at com.cloudera.sqoop.Sqoop.run(Sqoop.java:144)
    at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:65)
    at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:79)
    at com.cloudera.sqoop.Sqoop.runSqoop(Sqoop.java:180)
    at com.cloudera.sqoop.Sqoop.runTool(Sqoop.java:218)
    at com.cloudera.sqoop.Sqoop.main(Sqoop.java:228)
hadoop@dewi:/opt/sqoop/bin$ 

sqoop コマンドの何が問題になっていますか? または sqoop または hive に他の構成がありますか?

お願い助けて

4

4 に答える 4

1

まず、sqoop は jar の場所をチェックします。

$SQOOP_HOME/lib

この場所に mysql-connector jar を追加する必要があります。また、次のように sqoop import コマンドに --hive-table パラメータを含める必要があります。

./sqoop-import --connect jdbc:mysql://localhost:<port_number>/paman -table bibis -m 1 -hive-import --hive-table hive_table_name

ここで hive_table_name は動的に作成されます。

于 2014-05-06T13:07:08.927 に答える
0

$HADOOP_CLASSPATH 変数を SQOOP jar を指すように設定しようとしたところ、すべてが機能しました。

于 2013-05-08T08:25:11.913 に答える
0

エラーログによると、sqoop コマンドが MySQL JDBC ドライバーをロードできないようです。$SQOOP_HOME/lib パスに MySQL JDBC ドライバーがあるかどうかを確認する必要があります。

お役に立てれば。

于 2012-06-11T09:47:07.463 に答える
0

Hadoop は、mysql コネクタ jar の場所を認識する必要があります。

たとえば、次のようにコピーします。

sudo cp mysql-connector-java-5.1.24-bin.jar /usr/local/Cellar/hadoop/1.1.2/libexec/lib/

それは私のために働いた。

別のアプローチ:

-libjar 引数を使用して追加の Jar ファイルを指定してみてください。これは、Sqoop がフレームワークに渡す一般的な Hadoop 引数です。

bin/sqoop import -libjars /path/to/mysql-connector-java-5.1.24-bin.jar --connect "..."
于 2013-05-04T06:59:11.983 に答える