Apache sqoop 未编译
Posted
技术标签:
【中文标题】Apache sqoop 未编译【英文标题】:Apache sqoop is not compiling 【发布时间】:2014-11-16 07:58:53 【问题描述】:我正在尝试从源代码编译 apache sqoop,因为我需要构建它的扩展。代码编译失败。
Code version from Git - 1.6. - https://github.com/apache/sqoop
ivy dependency can't be resolved for org.mortbay.jetty#jetty;6.1.26!jetty.zip
ant package command is giving following error
[ivy:resolve] [FAILED ] org.mortbay.jetty#jetty;6.1.26!jetty.zip: (0ms)
【问题讨论】:
你不应该自己编译 Sqoop,除非你试图帮助开发它。尝试从apache.org/dyn/closer.cgi/sqoop/1.4.5 下载二进制发行版。 @abeaamase - 编译你自己的开源软件真的不需要任何理由。这就是开源的意义所在!也许您正在尝试添加日志记录,或者查找并修复错误。也许某些内部政策要求在审核源代码后在现场构建所有生产软件。也许您想要帮助开发它,而编译原始源代码是一个非常合理的第一步 - 如果您无法编译它,您还能如何测试您想要发送到上游的错误修复或功能? OP:我自己正在寻找这个问题的答案。我怀疑存在导致此问题的上游依赖项,解决方案可能在于构建的 Ivy 部分。当我知道更多时,我会更新。 @Hercynium 好点。我在这里选错了词。我试图传达扩展 Sqoop1 不是最好的想法(Sqoop2 会更好)。无论如何,我在下面的跟进应该会有所帮助。 @abeaamase 不用担心 :) 【参考方案1】:我会尝试一些事情:
-
确保您拥有正确版本的 ant 和 maven。在COMPILING 注释中,至少需要 Apache ant (1.7.1)。
清除您的 ivy 和 maven 缓存。
联系 Sqoop mailing lists 以获得更多帮助。
【讨论】:
【参考方案2】:我在我的~/.ivy2/com.cloudera.sqoop-sqoop-hadoop200.xml
中找到了这个:
<module organisation="org.mortbay.jetty" name="jetty">
<revision name="6.1.26" status="release" pubdate="20150715114025" resolver="fs" artresolver="default" homepage="" downloaded="false" searched="false" default="false" conf="compile, master(*), runtime, compile(*), runtime(*), master" position="183">
<metadata-artifact status="no" details="" size="2189" time="0" location="/home/sscaffidi/.ivy2/org.mortbay.jetty/jetty/ivy-6.1.26.xml" searched="false" origin-is-local="true" origin-location="/home/sscaffidi/.m2/repository/org/mortbay/jetty/jetty/6.1.26/jetty-6.1.26.pom"/>
<caller organisation="org.apache.hadoop" name="hadoop-common" conf="default, compile, runtime, master" rev="6.1.26.cloudera.2" rev-constraint-default="6.1.26.cloudera.2" rev-constraint-dynamic="6.1.26.cloudera.4" callerrev="2.6.0-cdh5.4.4"/>
<caller organisation="org.apache.hbase" name="hbase-server" conf="default, compile, runtime, master" rev="6.1.26.cloudera.4" rev-constraint-default="6.1.26.cloudera.4" rev-constraint-dynamic="6.1.26.cloudera.4" callerrev="1.0.0-cdh5.4.4"/>
<caller organisation="org.apache.hadoop" name="hadoop-hdfs" conf="default, compile, runtime, master" rev="6.1.26" rev-constraint-default="6.1.26" rev-constraint-dynamic="6.1.26" callerrev="2.2.0"/>
<caller organisation="org.apache.hadoop" name="hadoop-yarn-server-web-proxy" conf="compile, runtime" rev="6.1.26.cloudera.2" rev-constraint-default="6.1.26.cloudera.2" rev-constraint-dynamic="6.1.26.cloudera.4" callerrev="2.6.0-cdh5.4.4"/>
<caller organisation="org.mortbay.jetty" name="jetty-sslengine" conf="compile, runtime" rev="6.1.26.cloudera.4" rev-constraint-default="6.1.26.cloudera.4" rev-constraint-dynamic="6.1.26.cloudera.4" callerrev="6.1.26.cloudera.4"/>
<caller organisation="org.apache.hadoop" name="hadoop-hdfs" conf="default, compile, runtime, master" rev="6.1.26.cloudera.4" rev-constraint-default="6.1.26.cloudera.4" rev-constraint-dynamic="6.1.26.cloudera.4" callerrev="2.6.0-cdh5.4.4"/>
<artifacts>
<artifact name="jetty" type="zip" ext="zip" status="failed" details="" size="0" time="0"/>
</artifacts>
</revision>
<revision name="6.1.26.cloudera.4" status="release" pubdate="20150720102423" resolver="fs" artresolver="default" evicted="latest-revision" evicted-reason="" homepage="" downloaded="false" searched="false" default="false" conf="compile, master(*), runtime, compile(*), runtime(*), master" position="-1">
<metadata-artifact status="no" details="" size="7312" time="0" location="/home/sscaffidi/.ivy2/org.mortbay.jetty/jetty/ivy-6.1.26.cloudera.4.xml" searched="false" origin-is-local="true" origin-location="/home/sscaffidi/.m2/repository/org/mortbay/jetty/jetty/6.1.26.cloudera.4/jetty-6.1.26.cloudera.4.pom"/>
<evicted-by rev="6.1.26"/>
<caller organisation="org.apache.hadoop" name="hadoop-common" conf="default, compile, runtime, master" rev="6.1.26.cloudera.2" rev-constraint-default="6.1.26.cloudera.2" rev-constraint-dynamic="6.1.26.cloudera.4" callerrev="2.6.0-cdh5.4.4"/>
<caller organisation="org.apache.hbase" name="hbase-server" conf="default, compile, runtime, master" rev="6.1.26.cloudera.4" rev-constraint-default="6.1.26.cloudera.4" rev-constraint-dynamic="6.1.26.cloudera.4" callerrev="1.0.0-cdh5.4.4"/>
<caller organisation="org.apache.hadoop" name="hadoop-yarn-server-web-proxy" conf="compile, runtime" rev="6.1.26.cloudera.2" rev-constraint-default="6.1.26.cloudera.2" rev-constraint-dynamic="6.1.26.cloudera.4" callerrev="2.6.0-cdh5.4.4"/>
<caller organisation="org.mortbay.jetty" name="jetty-sslengine" conf="compile, runtime" rev="6.1.26.cloudera.4" rev-constraint-default="6.1.26.cloudera.4" rev-constraint-dynamic="6.1.26.cloudera.4" callerrev="6.1.26.cloudera.4"/>
<caller organisation="org.apache.hadoop" name="hadoop-hdfs" conf="default, compile, runtime, master" rev="6.1.26.cloudera.4" rev-constraint-default="6.1.26.cloudera.4" rev-constraint-dynamic="6.1.26.cloudera.4" callerrev="2.6.0-cdh5.4.4"/>
<artifacts>
</artifacts>
</revision>
<revision name="6.1.26.cloudera.2" evicted="latest-revision" evicted-reason="" downloaded="false" searched="false" conf="compile, master(*), runtime, compile(*), runtime(*), master" position="-1">
<evicted-by rev="6.1.26.cloudera.4"/>
<caller organisation="org.apache.hadoop" name="hadoop-common" conf="default, compile, runtime, master" rev="6.1.26.cloudera.2" rev-constraint-default="6.1.26.cloudera.2" rev-constraint-dynamic="6.1.26.cloudera.4" callerrev="2.6.0-cdh5.4.4"/>
<caller organisation="org.apache.hadoop" name="hadoop-yarn-server-web-proxy" conf="compile, runtime" rev="6.1.26.cloudera.2" rev-constraint-default="6.1.26.cloudera.2" rev-constraint-dynamic="6.1.26.cloudera.4" callerrev="2.6.0-cdh5.4.4"/>
<artifacts>
</artifacts>
</revision>
</module>
有趣的是:
<caller organisation="org.apache.hadoop" name="hadoop-hdfs" conf="default, compile, runtime, master" rev="6.1.26" rev-constraint-default="6.1.26" rev-constraint-dynamic="6.1.26" callerrev="2.2.0"/>
我不熟悉 Ivy,但我猜这意味着 hadoop-hdfs
依赖项想要码头 6.1.26,而其他一切都想要 6.1.26.cloudera.4
或 6.1.26.cloudera.2
我现在正试图找到完成这项工作的最佳方法。
更新:找到解决方案
我不知道这是否是一个好的解决方案 - 正如我所说,我对 Apache Ivy 了解不多 - 但它对我有用,也许它可以解决这个问题给你...
我在 sqoop 的 ivy.xml
文件中添加了以下行,就在其他 exclude
元素之后:
<exclude org="org.mortbay.jetty" module="jetty" type="zip" />
如果我错了,我希望有人能纠正我,但这应该会阻止 Ivy 尝试使用码头的zip
类型工件,因此它会退回到其他东西。在这种情况下,在我看来它使用的是 jar
类型。由于 jar 类型在 ivy 已经尝试使用的 repos 中可用,因此它可以工作。
至少在我看来是这样的:)
【讨论】:
我还想指出Pig's JIRA中的这个补丁:issues.apache.org/jira/secure/attachment/12707538/…以上是关于Apache sqoop 未编译的主要内容,如果未能解决你的问题,请参考以下文章
Apache 正在运行线程 MPM,但您的 PHP 模块未编译为线程安全的。您需要重新编译 PHP。 AH00013:预配置失败
无法在项目上执行目标 org.apache.maven.plugins:maven-compiler-plugin (default-compile):致命错误编译:未找到 tools.jar