【问题标题】:sqoop integration with hadoop throw ClassNotFoundExceptionsqoop 与 hadoop 集成抛出 ClassNotFoundException
【发布时间】:2016-12-31 03:06:38
【问题描述】:

我是 hadoop 和 sqoop 的新手。我安装了 hadoop 2.7.3(伪模式),它在我的系统上运行良好。

我想与 sqoop 集成。我正在使用 sqoop sqoop-1.99.7-bin-hadoop200。

1) 我提取 tar 文件并将提取的内容移动到 /usr/local/sqoop

2) 将 Sqoop 路径设置为.bashrc 文件。

3) 进入/usr/local/sqoop/server/lib/sqoop.sh server start

并收到以下错误消息。

hadoop_usr@sawai-Lenovo-G580:/usr/local/sqoop/server/lib$ sqoop.sh server start
Setting conf dir: /usr/local/sqoop/conf
Sqoop home directory: /usr/local/sqoop
Starting the Sqoop2 server...
0    [main] INFO  org.apache.sqoop.core.SqoopServer  - Initializing Sqoop server.
34   [main] INFO  org.apache.sqoop.core.PropertiesConfigurationProvider  - Starting config file poller thread
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/configuration/Configuration
    at org.apache.hadoop.metrics2.lib.DefaultMetricsSystem.<init>(DefaultMetricsSystem.java:38)
    at org.apache.hadoop.metrics2.lib.DefaultMetricsSystem.<clinit>(DefaultMetricsSystem.java:36)
    at org.apache.hadoop.security.UserGroupInformation$UgiMetrics.create(UserGroupInformation.java:121)
    at org.apache.hadoop.security.UserGroupInformation.<clinit>(UserGroupInformation.java:237)
    at org.apache.sqoop.security.authentication.SimpleAuthenticationHandler.secureLogin(SimpleAuthenticationHandler.java:39)
    at org.apache.sqoop.security.AuthenticationManager.initialize(AuthenticationManager.java:98)
    at org.apache.sqoop.core.SqoopServer.initialize(SqoopServer.java:57)
    at org.apache.sqoop.server.SqoopJettyServer.<init>(SqoopJettyServer.java:67)
    at org.apache.sqoop.server.SqoopJettyServer.main(SqoopJettyServer.java:177)
Caused by: java.lang.ClassNotFoundException: org.apache.commons.configuration.Configuration
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    ... 9 more

4) 所以当我在 lib 中寻找 jars 时,我找到了。以下 jar 列表。

请你告诉我现在哪个罐子不见了。所以我能够运行 sqoop 并开始我的学习。

谢谢。

【问题讨论】:

  • 很少有谷歌指南建议我将 hadoop 路径放入 sqoop-env 文件,但在 sqoop/conf 中没有类似于 sqoop-env 的文件。
  • 这个问题解决了我从commons.apache.org/configuration和/usr/local/sqoop/server/lib下载了一个jar文件

标签: java hadoop sqoop sqoop2


【解决方案1】:

我遇到了同样的问题

为了解决这个问题,我在单独的终端中设置了以下变量,它可以工作

export HADOOP_MAPRED_HOME=/opt/hadoop/hadoop-3.1.2/share/hadoop/mapreduce
export HADOOP_COMMON_HOME=/opt/hadoop/hadoop-3.1.2/share/hadoop/common
export HADOOP_HDFS_HOME=/opt/hadoop/hadoop-3.1.2/share/hadoop/hdfs
export YARN_HOME=/opt/hadoop/hadoop-3.1.2/share/hadoop/yarn

【讨论】:

    【解决方案2】:

    将下面的 jar 文件复制到 $SQOOP_HOME/server/lib :

    cp -R $HADOOP_HOME/share/hadoop/common/* $SQOOP_HOME/server/lib/
    cp -R $HADOOP_HOME/share/hadoop/common/lib/* $SQOOP_HOME/server/lib/
    cp -R $HADOOP_HOME/share/hadoop/hdfs/* $SQOOP_HOME/server/lib/
    cp -R $HADOOP_HOME/share/hadoop/hdfs/lib/* $SQOOP_HOME/server/lib/
    cp -R $HADOOP_HOME/share/hadoop/mapreduce/* $SQOOP_HOME/server/lib/
    cp -R $HADOOP_HOME/share/hadoop/mapreduce/lib/* $SQOOP_HOME/server/lib/
    cp -R $HADOOP_HOME/share/hadoop/yarn/* $SQOOP_HOME/server/lib/
    cp -R $HADOOP_HOME/share/hadoop/yarn/lib/* $SQOOP_HOME/server/lib/

    并删除不同版本的重复jar。

    确实遇到了同样的问题。我已经配置了和你一样的版本。 这些步骤现在对我有用。

    祝你好运!我们在同一页上!

    【讨论】:

      【解决方案3】:

      通过在我的.bashrc 文件中设置以下两个环境变量来解决这个问题。

      export HADOOP_COMMON_HOME=/usr/local/hadoop/share/hadoop/common
      
      export HADOOP_MAPRED_HOME=/usr/local/hadoop/share/hadoop/mapreduce
      

      基本保证上述答案中提到的常用库可以通过sqoop.sh的这些环境变量获得

      【讨论】:

        【解决方案4】:

        请确定类路径中是否有 hadoop-common-0.xx.jar 来解决配置类的 classnotfound 异常。

        hadoop-common-0.xx.jar 将在 /lib 中可用。

        【讨论】:

        • 您的类路径中需要 commons-configuration-1.9.jar 文件。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-10-21
        • 1970-01-01
        • 2013-11-29
        相关资源
        最近更新 更多