用Maven 编译hadoop遇到以下错误:
,半天是个bug,解决方案如下:
Index: hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-common/scripts/saveVersion.sh
===================================================================
--- hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-common/scripts/saveVersion.sh (revision 1304464)
+++ hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-common/scripts/saveVersion.sh (working copy)
@@ -20,13 +20,13 @@
# records the version, revision, branch, user, timestamp, and url
unset LANG
unset LC_CTYPE
-unset LC_TIME
-version=$1
-build_dir=$2
-user=`whoami`
-date=`date`
-dir=`pwd`
-cwd=`dirname $dir`
+unset LC_TIME
+version=$1
+build_dir=$2
+user=`whoami | tr '\n\r' '\n'`
+date=`date`
+dir=`pwd`
+cwd=`dirname $dir`
if git rev-parse HEAD 2>/dev/null > /dev/null ; then
revision=`git log -1 --pretty=format:"%H" ../`
hostname=`hostname`
Index: hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-common/pom.xml
===================================================================
--- hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-common/pom.xml (revision 1304464)
+++ hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-common/pom.xml (working copy)
@@ -105,14 +105,15 @@
</goals>
</execution>
<execution>
- <id>generate-version</id>
- <phase>generate-sources</phase>
- <configuration>
- <executable>scripts/saveVersion.sh</executable>
- <arguments>
- <argument>${project.version}</argument>
- <argument>${project.build.directory}</argument>
- </arguments>
+ <id>generate-version</id>
+ <phase>generate-sources</phase>
+ <configuration>
+ <executable>sh</executable>
+ <arguments>
+ <argument>scripts/saveVersion.sh</argument>
+ <argument>${project.version}</argument>
+ <argument>${project.build.directory}</argument>
+ </arguments>
</configuration>
<goals>
<goal>exec</goal>
这个是patch MAPREDUCE-3540.patch ,修改以上2个文件就可以顺利通过编译了