解決Hadoop0.21.0 HDFS/MapReduce編譯錯誤(ivy-resolve-common does not find hadoop-commo)

來源:互聯網
上載者:User

轉自:http://junsky.iteye.com/blog/1070647

解決Hadoop0.21.0 HDFS/MapReduce編譯錯誤(ivy-resolve-common does not find hadoop-commo)

     最近老大安排,要跟蹤HDFS ConcatenateFile的前提條件;於是嘗試用ant/ivy編譯了一下hdfs,提示ivy找不到hadoop-common組件;於是又編譯了一下mapreduce,提示ivy找不到hadoop-comm/hadoop-hdfs;編譯hadoop-common,提示編譯成功;在編譯mapreduce錯誤如下:

 

ivy-resolve-common:

[ivy:resolve] 

[ivy:resolve] :: problems summary ::

[ivy:resolve] :::: WARNINGS

[ivy:resolve] 
module not found: org.apache.hadoop#hadoop-common;0.21.0

[ivy:resolve] 
==== apache-snapshot: tried

[ivy:resolve] 
  https://repository.apache.org/content/repositories/snapshots/org/apache/hadoop/hadoop-common/0.21.0/hadoop-common-0.21.0.pom

[ivy:resolve] 
  -- artifact org.apache.hadoop#hadoop-common;0.21.0!hadoop-common.jar:

[ivy:resolve] 
  https://repository.apache.org/content/repositories/snapshots/org/apache/hadoop/hadoop-common/0.21.0/hadoop-common-0.21.0.jar

[ivy:resolve] 
==== maven2: tried

[ivy:resolve] 
  http://repo1.maven.org/maven2/org/apache/hadoop/hadoop-common/0.21.0/hadoop-common-0.21.0.pom

[ivy:resolve] 
  -- artifact org.apache.hadoop#hadoop-common;0.21.0!hadoop-common.jar:

[ivy:resolve] 
  http://repo1.maven.org/maven2/org/apache/hadoop/hadoop-common/0.21.0/hadoop-common-0.21.0.jar

[ivy:resolve] 
module not found: org.apache.hadoop#hadoop-common-test;0.21.0

[ivy:resolve] 
==== apache-snapshot: tried

[ivy:resolve] 
  https://repository.apache.org/content/repositories/snapshots/org/apache/hadoop/hadoop-common-test/0.21.0/hadoop-common-test-0.21.0.pom

[ivy:resolve] 
  -- artifact org.apache.hadoop#hadoop-common-test;0.21.0!hadoop-common-test.jar:

[ivy:resolve] 
  https://repository.apache.org/content/repositories/snapshots/org/apache/hadoop/hadoop-common-test/0.21.0/hadoop-common-test-0.21.0.jar

[ivy:resolve] 
==== maven2: tried

[ivy:resolve] 
  http://repo1.maven.org/maven2/org/apache/hadoop/hadoop-common-test/0.21.0/hadoop-common-test-0.21.0.pom

[ivy:resolve] 
  -- artifact org.apache.hadoop#hadoop-common-test;0.21.0!hadoop-common-test.jar:

[ivy:resolve] 
  http://repo1.maven.org/maven2/org/apache/hadoop/hadoop-common-test/0.21.0/hadoop-common-test-0.21.0.jar

[ivy:resolve] 
module not found: org.apache.hadoop#hadoop-hdfs;0.21.0

[ivy:resolve] 
==== apache-snapshot: tried

[ivy:resolve] 
  https://repository.apache.org/content/repositories/snapshots/org/apache/hadoop/hadoop-hdfs/0.21.0/hadoop-hdfs-0.21.0.pom

[ivy:resolve] 
  -- artifact org.apache.hadoop#hadoop-hdfs;0.21.0!hadoop-hdfs.jar:

[ivy:resolve] 
  https://repository.apache.org/content/repositories/snapshots/org/apache/hadoop/hadoop-hdfs/0.21.0/hadoop-hdfs-0.21.0.jar

[ivy:resolve] 
==== maven2: tried

[ivy:resolve] 
  http://repo1.maven.org/maven2/org/apache/hadoop/hadoop-hdfs/0.21.0/hadoop-hdfs-0.21.0.pom

[ivy:resolve] 
  -- artifact org.apache.hadoop#hadoop-hdfs;0.21.0!hadoop-hdfs.jar:

[ivy:resolve] 
  http://repo1.maven.org/maven2/org/apache/hadoop/hadoop-hdfs/0.21.0/hadoop-hdfs-0.21.0.jar

[ivy:resolve] 
::::::::::::::::::::::::::::::::::::::::::::::

[ivy:resolve] 
::          UNRESOLVED DEPENDENCIES         ::

[ivy:resolve] 
::::::::::::::::::::::::::::::::::::::::::::::

[ivy:resolve] 
:: org.apache.hadoop#hadoop-common;0.21.0: not found

[ivy:resolve] 
:: org.apache.hadoop#hadoop-common-test;0.21.0: not found

[ivy:resolve] 
:: org.apache.hadoop#hadoop-hdfs;0.21.0: not found

[ivy:resolve] 
::::::::::::::::::::::::::::::::::::::::::::::

[ivy:resolve] 

[ivy:resolve] :: USE VERBOSE OR DEBUG MESSAGE LEVEL FOR MORE DETAILS

 

BUILD FAILED

/opt/hadoop-0.21.0/mapred/build.xml:1861: impossible to resolve dependencies:

resolve failed - see output for details

 

 

通過Google,發現原來這是Apache-Hadoop的BUG:

https://issues.apache.org/jira/browse/HDFS-1519(hdfs ivy配置bug)

 

主要原因是ivy配置問題:

hdfs的ivy在配置關聯類別庫hadoop-common時候位置指定錯誤,具體修改如下:

 

hdfs/ivy.xml

<dependency org="org.apache.hadoop" name="hadoop-common" 

-----
rev="${hadoop-common.version}" 

+++ rev="${hadoop-common.version}-SNAPSHOT"

conf="common->default"/>

hdfs/src/contrib/hdfsproxy/ivy.xml

       <dependency org="org.apache.hadoop"

         name="hadoop-common"

----       rev="${hadoop-common.version}"

+++      rev="${hadoop-common.version}-SNAPSHOT"

         conf="common->default"/>

       <dependency org="org.apache.hadoop"

         name="hadoop-common-test"

---        rev="${hadoop-common.version}"

+++     rev="${hadoop-common.version}-SNAPSHOT"

         conf="common->default"/>

hdfs/src/contrib/thriftfs/ivy.xml

       <dependency org="org.apache.hadoop"

             name="hadoop-common"

---        rev="${hadoop-common.version}"

+++     rev="${hadoop-common.version}-SNAPSHOT"

         conf="common->default"/>

 

 

 

mapreduce的ivy在配置關聯類別庫hadoop-common/hadoop-dfs時候位置指定錯誤,修改方法與hdfs類似:

1.修改mapreduce project裡的ivy.xml(多個)

    在eclipse裡search file(ivy.xml):

    (1)rev="${hadoop-common.version}"  replace rev="${hadoop-common.version}-SNAPSHOT"

    (2)rev="${hadoop-hdfs.version}"  replace rev="${hadoop-hdfs.version}-SNAPSHOT"

2.修改buid.xml

          <unzip

         -- --      src="${common.ivy.lib.dir}/hadoop-hdfs-${hadoop-hdfs.version}.jar"

         +++     src="${common.ivy.lib.dir}/hadoop-hdfs-${hadoop-hdfs.version}-SNAPSHOT.jar"

         dest="${build.dir}">

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.