gpt4 book ai didi

java - 启动 Sqoop2 server (1.99.7) 时无法找到 hadoop 配置类

转载 作者:可可西里 更新时间:2023-11-01 16:29:35 27 4
gpt4 key购买 nike

我正在测试将 Hadoop 与最新版本的 Sqoop2 (1.99.7) 结合使用,并且在运行 sqoop2-server 时,出现以下错误:

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/hadoop/conf/Configuration
at org.apache.sqoop.security.authentication.SimpleAuthenticationHandler.secureLogin(SimpleAuthenticationHandler.java:36)
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.hadoop.conf.Configuration
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
... 5 more

我当前的设置:

我能想到的是 Hadoop 类路径没有被 Sqoop 加载,因为所需的 JAR 似乎位于/usr/local/hadoop/shared/*。

我在网上找到的大部分文档都是针对 1.99.7 之前的文档,但此版本的一个主要变化是 Sqoop 服务器从 Tomcat 移至 Jetty,因此所有 catalina 配置选项都没有实际意义.

谁能帮我弄清楚如何让 Sqoop 服务器运行?

最佳答案

啊,大部分都弄清楚了。

看起来 sqoop.sh 脚本根据环境变量集从类路径加载所有 jar。 docker 容器将它正在寻找的所有环境变量设置为 Hadoop 安装的根路径,而脚本期望它们指向包含 JAR 文件的目录。

HADOOP_PREFIX=/usr/local/hadoop
HADOOP_HDFS_HOME=/usr/local/hadoop
HADOOP_COMMON_HOME=/usr/local/hadoop
HADOOP_YARN_HOME=/usr/local/hadoop
HADOOP_CONF_DIR=/usr/local/hadoop/etc/hadoop
HADOOP_MAPRED_HOME=/usr/local/hadoop

因此,脚本选择此目录而不是 $HADOOP_HOME 目录和脚本中也调用的后续子目录。

最后一步是编辑 sqoop.properties 文件并确保将 mapreduce 配置设置到正确的目录:

org.apache.sqoop.submission.engine.mapreduce.configuration.directory=/usr/local/hadoop/etc/hadoop

然后服务器启动了!

我会把它留在这里以防其他人遇到这个......

关于java - 启动 Sqoop2 server (1.99.7) 时无法找到 hadoop 配置类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40774846/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com