7

私が実行すると:

sqoop import --connect jdbc:mysql://localhost/testdb --table test --hive-table test --hive-import -m 1 

次のエラー メッセージが表示されます。

13/04/21 16:42:50 ERROR tool.ImportTool: Encountered IOException running import job: java.io.IOException: Hive exited with status 1
    at org.apache.sqoop.hive.HiveImport.executeExternalHiveScript(HiveImport.java:364)
    at org.apache.sqoop.hive.HiveImport.executeScript(HiveImport.java:314)
    at org.apache.sqoop.hive.HiveImport.importTable(HiveImport.java:226)
    at org.apache.sqoop.tool.ImportTool.importTable(ImportTool.java:415)
    at org.apache.sqoop.tool.ImportTool.run(ImportTool.java:476)
    at org.apache.sqoop.Sqoop.run(Sqoop.java:145)
    at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:65)
    at org.apache.sqoop.Sqoop.runSqoop(Sqoop.java:181)
    at org.apache.sqoop.Sqoop.runTool(Sqoop.java:220)
    at org.apache.sqoop.Sqoop.runTool(Sqoop.java:229)
    at org.apache.sqoop.Sqoop.main(Sqoop.java:238)

私はそれをグーグルで検索しようとしましたが、解決策が見つかりませんでした。Hadoop を疑似分散方式でローカルにセットアップしました。Hive は正常に動作しています ... 組み込みのメタストアを使用しました。これを修正する方法はありますか?ありがとう、ディディ

4

4 に答える 4

10

ログに基づいて、次の例外に遭遇しているようです:

13/04/22 18:34:44 INFO hive.HiveImport: スレッド「メイン」の例外 java.lang.NoSuchMethodError: org.apache.thrift.EncodingUtils.setBit(BIZ)B

ユーザーが「互換性のない」バージョンで HBase と Hive を使用していたときに、この問題を見たことがあります。通常、非互換性は複数のレベルで発生する可能性がありますが、これは特に、HBase と Hive が異なる thrift バージョンを使用している場合です。Sqoop は HBase と Hive の両方の jar をクラスパスに追加しているため、アクティブにできるのは 1 つのリサイクル バージョンのみであり、そのため「2 番目の」ツール (通常はハイブ) が正しく機能していません。

もしかして、Sqoop を実行しているボックスに HBase と Hive の両方をインストールしていませんか? もしそうなら、各プロジェクトが使用しているthriftのバージョンを確認できますか? 「*thrift*.jar」を検索するだけです。両方の質問に対する答えが肯定的である場合、HBASE_HOME を存在しないものに設定して、Sqoop が HBase のバージョンの thrift を読み込まないようにすることができます。

于 2013-04-24T03:59:19.737 に答える
0

mysql テーブルの権限の問題があるか、ハイブ ライブラリに mysql コネクタ jar がありません。コマンドの出力全体を共有してください

于 2013-04-22T07:28:35.397 に答える