期待对hadoop的了解。开始了hadoop之旅、
听说没有64安装包,只能编译。
需要软件。
1.安装好了mvn,并且配置好了mvn的环境变量(我开始使用maven版本:3.0.5,发现各种配置不匹配,后找hadoop群里的人问了下,说可能是mvn版本低,需要3.2以上,我使用的是3.2.5,网上很好找)
具体会出现,IOUtil这个类找不到,打开jar包的确么有。
使用国内的镜像 有时候会很慢----居然2023
PING maven.oschina.net (112.124.6.10) 56(84) bytes of data.
64 bytes from 112.124.6.10: icmp_seq=1 ttl=54 time=2023 ms
apache-maven-3.2.5/conf,编辑settings.xml文件
可以选择mvn更新到的目录(我自己从3.0.5换到3.2.5的时候忘记指定了,默认会生成至${user.home}/.m2/repository)。
<localRepository>路径</localRepository>
*修改<mirrors>内容:
<mirror>
<id>nexus-osc</id>
<mirrorOf>*</mirrorOf>
<name>Nexusosc</name>
<url>http://maven.oschina.net/content/groups/public/</url>
</mirror>
*修改<profiles>内容:
<profile>
<id>jdk-1.7</id>
<activation>
<jdk>1.7</jdk>
</activation>
<repositories>
<repository>
<id>nexus</id>
<name>localprivate nexus</name>
<url>http://maven.oschina.net/content/groups/public/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>nexus</id>
<name>localprivate nexus</name>
<url>http://maven.oschina.net/content/groups/public/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</pluginRepository>
</pluginRepositories>
</profile>
2.一些软件
yum install glibc-headers
yum install gcc
yum install gcc-c++
yum install make
yum install cmake
yum install openssl-devel
yum install ncurses-devel
3.jdk(使用sun的jdk比较靠谱,否则javah 还有tools会找不到。)
4.protobuf-2.5.0.tar.gz(需要配置path)
关于为什么要使用这个文件,是因为hadoop2对该文件包有依赖,所以必须先安装上它,否则后面对hadoop的编译有影响
5.zlib-1.2.8.tar.gz(很多编译教程里面并没有说要这玩意,但是我编译的时候会报错,具体信息这哥们里面很详细,http://www.dataguru.cn/thread-274441-1-1.html,)
编译是在遇到ZlibCompressor.c时报错,
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-antrun-plugin:1.7:run (make) on project hadoop-common: An Ant BuildException has occured: exec returned: 2
需要安装zlib软件包
下载解压zlib-1.2.8.tar.gz,然后
./configure
make
make install
http://download.csdn.net/download/qin1174586290/6364757 这个地址下载地址是可用的。
补充:执行Apache Hadoop Pipes这个的时候会报告
Failed to execute goal org.apache.maven.plugins:maven-antrun-plugin:1.8:run (make) on project hadoop-pipes: An Ant BuildException has occured: exec returned: 1
around Ant part ...<exec dir="/usr/hadoopTools/hadoop-2.6.0-src/hadoop-tools/hadoop-pipes/target/native" executable="cmake" failοnerrοr="true">... @ 5:127 in /usr/hadoopTools/hadoop-2.6.0-src/hadoop-tools/hadoop-pipes/target/antrun/build-main.xml
后来才发现其实编译用到了,zlib-devel 安装 yum install zlib-devel
6.过程中还会遇到java的路径
需要修改hadoop-2.6.0-src\hadoop-common-project\hadoop-common\pom.xml 下面的${env.JAVA_HOME} 替换成${JAVA_HOME}即可
7.环境变量
export JAVA_HOME=/usr/lib/jvm/jdk1.7.0_79
export M2_HOME=/usr/hadoopTools/apache-maven-3.2.5
export PATH=${M2_HOME}/bin:/usr/local/protoc/bin:$PATH
export PATH=${JAVA_HOME}/bin:$PATH
8.到hadoop源码文件夹中
执行 mvn package -DskipTests -Pdist,native
也可写成shell。方便执行。重定向到 文件,可以方便查看。
#!/bin/bash
#
mvn -e package -DskipTests -Pdist,native >buildhadoop.txt
-e为详细信息(但是我加了和没加一样,可能我没仔细看)
重定向后节目没显示了,可以重新在开个终端登录,用 tail buildhadoop.txt -f 查看
有时候下载不给力,下载一直卡那,可以中断执行后,重新启动就可以了
终于搞定了。看着hadoop-dist/target/下的东西多少有些兴奋