1

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

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

./sqoop import --connect jdbc:mysql://localhost/testhive --table temenan -m 1 --hive-import --username anwar -P

このコマンドを実行すると、このようにエラーが発生します

8/11 23:02:49 INFO hive.HiveImport: Exception in thread "main" java.lang.NoSuchMethodError: org.apache.hadoop.security.UserGroupInformation.login(Lorg/apache/hadoop/conf/Configuration;)Lorg/apache/hadoop/security/UserGroupInformation;
11/08/11 23:02:49 INFO hive.HiveImport:     at org.apache.hadoop.hive.shims.Hadoop20Shims.getUGIForConf(Hadoop20Shims.java:448)
11/08/11 23:02:49 INFO hive.HiveImport:     at org.apache.hadoop.hive.ql.security.HadoopDefaultAuthenticator.setConf(HadoopDefaultAuthenticator.java:51)
11/08/11 23:02:49 INFO hive.HiveImport:     at org.apache.hadoop.util.ReflectionUtils.setConf(ReflectionUtils.java:62)
11/08/11 23:02:49 INFO hive.HiveImport:     at org.apache.hadoop.util.ReflectionUtils.newInstance(ReflectionUtils.java:117)
11/08/11 23:02:49 INFO hive.HiveImport:     at org.apache.hadoop.hive.ql.metadata.HiveUtils.getAuthenticator(HiveUtils.java:222)
11/08/11 23:02:49 INFO hive.HiveImport:     at org.apache.hadoop.hive.ql.session.SessionState.start(SessionState.java:241)
11/08/11 23:02:49 INFO hive.HiveImport:     at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:463)
11/08/11 23:02:49 INFO hive.HiveImport:     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
11/08/11 23:02:49 INFO hive.HiveImport:     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
11/08/11 23:02:49 INFO hive.HiveImport:     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
11/08/11 23:02:49 INFO hive.HiveImport:     at java.lang.reflect.Method.invoke(Method.java:616)
11/08/11 23:02:49 INFO hive.HiveImport:     at org.apache.hadoop.util.RunJar.main(RunJar.java:186)
11/08/11 23:02:49 ERROR tool.ImportTool: Encountered IOException running import job: java.io.IOException: Hive exited with status 1
    at com.cloudera.sqoop.hive.HiveImport.executeExternalHiveScript(HiveImport.java:326)
    at com.cloudera.sqoop.hive.HiveImport.executeScript(HiveImport.java:276)
    at com.cloudera.sqoop.hive.HiveImport.importTable(HiveImport.java:218)
    at com.cloudera.sqoop.tool.ImportTool.importTable(ImportTool.java:362)
    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 com.cloudera.sqoop.Sqoop.runSqoop(Sqoop.java:180)
    at com.cloudera.sqoop.Sqoop.runTool(Sqoop.java:219)
    at com.cloudera.sqoop.Sqoop.runTool(Sqoop.java:228)
    at com.cloudera.sqoop.Sqoop.main(Sqoop.java:237)

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

お願い助けて

4

3 に答える 3

2

--hive-table パラメータを追加して、ハイブ内のテーブルに言及する必要があります。以下のコマンドは、ハイブにtemenan_hiveという名前のテーブルを自動的に作成します。

./sqoop import --connect jdbc:mysql://localhost/testhive --table temenan -m 1  --username anwar -P --hive-import --hive-table temenan_hive
于 2014-05-06T13:02:10.237 に答える
0

create-hive-tableツールを試して、HDFS に存在するテーブルに基づくテーブル定義を Hive メタストアに入力することができます。

create-hive-table のリンクをたどってください

于 2012-01-20T09:22:07.990 に答える
0

CDH3.1 を CDH3.0 にダウングレードしてから、以下のように Hive メタストアを静的に変更します。

<property>
  <name>javax.jdo.option.ConnectionURL</name>
  <value>jdbc:derby:;databaseName=/home/hadoop/metastore_db;create=true</value>
  <description>JDBC connect string for a JDBC metastore</description>
</property>

その後、すべてうまくいきます:)

みんなありがとう

于 2011-08-15T06:10:32.107 に答える