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.46.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 未编译的主要内容,如果未能解决你的问题,请参考以下文章

如何清理Sqoop脚本产生的临时编译目录

Eclipse Scala IDE 代码未编译

apache动静态编译

Apache 正在运行线程 MPM,但您的 PHP 模块未编译为线程安全的。您需要重新编译 PHP。 AH00013:预配置失败

无法在项目上执行目标 org.apache.maven.plugins:maven-compiler-plugin (default-compile):致命错误编译:未找到 tools.jar

由于maven插件错误,spring boot maven项目未编译