零·引子
环境配置是个挺烦人的活,麻烦不说还没有成就感。特别是那种安装麻烦的软件,一个小小的依赖问题就可能把你卡出翔。 十月份的时候Hadoop2.2 Release了,新版本基于Yarn框架。在0.2x时代就听过这个名头,貌似牛B闪闪的样子。 于是花了一天多的时间进行安装,结果在启动时就不详地报一个警告:
WARN org.apache.hadoop.util.NativeCodeLoader: Unable to load native-hadoop library for your platform… using builtin-java classes where applicable
在网上查了一下发现Apache官网提供的是32位编译的,在64位服务器上会有问题。而且这坑货官方竟然没有提供64位版本,要使用得自己编译。 于是就有了下面这漫漫的填坑之路。
壹·依赖环境准备
这部分看起来容易,但是收集这些依赖才是真正让人崩溃事。
经过一次次编译失败,翻遍了谷歌、百度之后终于凑齐了下面这些包。我想问:这是召唤神龙的节奏吗。
下面的服务器环境都基于Centos的,其它发行版Linux可能会有不同。
1.GCC、CMake、openssl、JDK,这几个没啥好说的,你懂的。
2.hadoop-2.2.0-src.tar.gz(http://hadoop.apache.org/releases.html#Download)
3.apache-ant-1.9.2-bin.tar.gz(http://ant.apache.org/bindownload.cgi)
4.apache-maven-3.0.5-bin.tar.gz(http://maven.apache.org/download.cgi)
注意:此处最新的3.1.1版有Bug,缺少依赖包。详细说明如下所示:
https://cwiki.apache.org/confluence/display/MAVEN/AetherClassNotFound
5.findbugs-2.0.2.tar.gz(http://sourceforge.jp/projects/sfnet_findbugs/releases/)
注意:sourceforge.com被墙,只能进sourceforge.jp,这TMD什么世道?
6.protobuf-2.5.0.tar.gz(https://code.google.com/p/protobuf/downloads/list)
7.zlib-devel-1.2.3-3.x86_64.rpm
http://rpm.pbone.net/index.php3/stat/4/idpl/8192688/dir/startcom_5/com/zlib-devel-1.2.3-3.x86_64.rpm.html
贰·依赖环境配置
安装没啥好说的了,大部分都是tar包,解开就能用。只有protobuf需要make一下。
配置好环境后不要忘了source /etc/profile一下,否则不会生效。
下面的图是环境变量配置明细:
叁·编译
安装好了上面的依赖后就可以编译了。
mvn package -Pdist,native,docs -DskipTests -Dtar
然后就是漫长的等待,真的很漫长(用小时来做单位的)。当你看到一串SUCCESS的时候,那么恭喜你成功了。
是不是有种泪奔的感觉,这一刻你的眼眶有没有湿润?
不是因为编译这东西有多大成就感,完全是因为这个过程太折磨人了。
肆·生成打包文件
到这一步就简单了,在/data/java/tools/hadoop-2.2.0-src/hadoop-dist/target/目录下,可以看到编译好的hadoop-2.2.0.tar.gz包静静的趴在那里,现在你可以进行安装了。
安装过程待续。。。
这些依赖包已经下载到本地学习盘符里。