mac os 编译 hadoop 2.2.0
Mac OS 上编译hadoop 2.2.0 一、需要下载安装maven、protobuf、cmake (brew install) 安装make:通过AppStore安装好Xcode之后,打开Xcode,菜单Xcode » Open Developer Tool »More Developer Tools,这时Safari出现了,开始注册填写信息然后进入Apple Developer的下载站点,搜索Command Line Tools把它下载下来,建议使用迅雷 for mac,下载好了安装,它会给我们提供命令行工具包括make
目前的2.2.0 的Source Code 压缩包解压出来的code有个bug 需要patch后才能编译。否则编译hadoop-auth 会出错误。
解决办法如下:
修改下面的pom文件。该文件在hadoop源码包下寻找:
hadoop-common-project/hadoop-auth/pom.xml
打开上面的的pom文件,在54行加入如下的依赖:
<dependency>
<groupId>org.mortbay.jetty</groupId>
<artifactId>jetty-util</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mortbay.jetty</groupId>
<artifactId>jetty</artifactId>
<scope>test</scope>
</dependency>
二、错误处理 运行 clean install package -Pdist -P-cbuild -DskipTests -Dtar 报各种错误 1、报错[ERROR] Failed to execute goal org.codehaus.mojo:native-maven-plugin:1.0-alpha-7:javah (default) on project hadoop-common: Error running javah command: Error executing command line. Exit code:1 -> [Help 1] 修改hadoop-common-project/hadoop-common/pom.xml 文件中,env.JAVA_HOME改为java.home 2、报错 /hadoop-2.2.0-src/hadoop-common-project/hadoop-common/src/main/native/src/org/apache/hadoop/security/JniBasedUnixGroupsNetgroupMapping.c:77:26: error: invalid operands to binary expression (‘void’ and ‘int’) [exec] if(setnetgrent(cgroup) == 1) { [exec] ~~~~~~~~~~~~~~~~~~~ ^ ~ [exec] 1 error generated. [exec] make[2]: *** [CMakeFiles/hadoop.dir/main/native/src/org/apache/hadoop/security/JniBasedUnixGroupsNetgroupMapping.c.o] Error 1 [exec] make[1]: *** [CMakeFiles/hadoop.dir/all] Error 2 [exec] make: *** [all] Error 2 [ERROR] Failed to execute goal org.apache.maven.plugins:maven-antrun-plugin:1.6:run (make) on project hadoop-common: An Ant BuildException has occured: exec returned: 2 -> [Help 1] 修改mvn3的配置文件:/opt/local/share/java/maven3/settings.xml 在