设为首页 收藏本站
查看: 1691|回复: 0

[经验分享] CentOS6.4编译Hadoop-2.4.0

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2014-7-24 08:51:09 | 显示全部楼层 |阅读模式
因为搭建Hadoop环境的时候,所用的系统镜像是emi-centos-6.4-x86_64,是64位的,而hadoop是默认是32的安装包。这导致我们很多操作都会遇到这个问题(Java HotSpot(TM) 64-Bit Server VM warning: You have loaded library /opt/hadoop-2.4.0/lib/native/libhadoop.so.1.0.0 which might have disabled stack guard. The VM will try to fix the stack guard now.)
为了解决此问题,需要重新编译hadoop。把生成的 hadoop-2.4.0-src/hadoop-dist/target/hadoop-2.4.0/lib/native 覆盖到 /opt/hadoop-2.4.0/lib/native。

以下是具体的编译步骤:

1. 安装下面的软件

[iyunv@hd1 software]# yum install lzo-devel zlib-devel gcc autoconf automake libtool ncurses-devel openssl-deve



2. 安装Maven


[hxiaolong@hd1 software]$ wget http://mirror.esocc.com/apache/m ... en-3.0.5-bin.tar.gz
[hxiaolong@hd1 software]$ tar zxf apache-maven-3.0.5-bin.tar.gz -C /opt

[hxiaolong@hd1 software]$ vi /etc/profile
export MAVEN_HOME=/opt/apache-maven-3.0.5
export PATH=$PATH:$MAVEN_HOME/bin





3. 安装Ant


[hxiaolong@hd1 software]$ wget http://mirror.bit.edu.cn/apache/ ... nt-1.9.4-bin.tar.gz
[hxiaolong@hd1 software]$ tar zxf apache-ant-1.9.4-bin.tar.gz -C /opt

[hxiaolong@hd1 software]$ vi /etc/profile
export ANT_HOME=/opt/apache-ant-1.9.4
export PATH=$PATH:$ANT_HOME/bin




4. 安装Findbugs


[hxiaolong@hd1 software]$ wget http://prdownloads.sourceforge.n ... 0.3.tar.gz?download
[hxiaolong@hd1 software]$ tar zxf findbugs-2.0.3.tar.gz -C /opt

[hxiaolong@hd1 software]$ vi /etc/profile
export FINDBUGS_HOME=/opt/findbugs-2.0.3
export PATH=$PATH:$FINDBUGS_HOME/bin




5. 安装protobuf

[hxiaolong@hd1 software]$ tar zxf protobuf-2.5.0.tar.gz
[hxiaolong@hd1 software]$ cd protobuf-2.5.0
[hxiaolong@hd1 software]$ ./configure
[hxiaolong@hd1 software]$ make
[hxiaolong@hd1 software]$ make install

说实话,上面这种编译、安装方式挺麻烦的。很容易碰到各种依赖问题。这里推荐用yum install来安装。

[iyunv@hd1 protobuf-2.5.0]# yum install protobuf


6. 编译Hadoop

1) 在name节点上先编译hadoop

[hxiaolong@hd1 software]$ wget http://mirrors.cnnic.cn/apache/h ... op-2.4.0-src.tar.gz
[hxiaolong@hd1 software]$ cd hadoop-2.4.0-src

[hxiaolong@hd1 software]$ mvn package -DskipTests -Pdist,native -Dtar

中间过程出错了,错误信息如下:


[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: Execute failed: java.io.IOException: Cannot run program "cmake" (in directory "/home/hxiaolong/software/hadoop-2.4.0-src/hadoop-common-project/hadoop-common/target/native"): error=2, No such file or directory
[ERROR] around Ant part ...<exec dir="/home/hxiaolong/software/hadoop-2.4.0-src/hadoop-common-project/hadoop-common/target/native" executable="cmake" failonerror="true">... @ 4:145 in /home/hxiaolong/software/hadoop-2.4.0-src/hadoop-common-project/hadoop-common/target/antrun/build-main.xml
[ERROR] -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluen ... oExecutionException
[ERROR]
[ERROR] After correcting the problems, you can resume the build with the command
[ERROR]   mvn <goals> -rf :hadoop-common


网上看了下,是因为cmake没安装引起的。安装一下再试。

[iyunv@hd1 hadoop-2.4.0-src]# yum instsall cmake

重新编译,最终成功了。


[hxiaolong@hd1 software]$ mvn package -DskipTests -Pdist,native -Dtar

main:
     [exec] $ tar cf hadoop-2.4.0.tar hadoop-2.4.0
     [exec] $ gzip -f hadoop-2.4.0.tar
     [exec]
     [exec] Hadoop dist tar available at: /home/hxiaolong/software/hadoop-2.4.0-src/hadoop-dist/target/hadoop-2.4.0.tar.gz
   
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 12:41.833s
[INFO] Finished at: Wed Jul 23 03:01:18 UTC 2014
[INFO] Final Memory: 159M/646M
[INFO] ------------------------------------------------------------------------



2) 把编译后的hadoop的native目录copy到/opt/hadoop-2.4.0/lib/

[hxiaolong@hd1 lib]$ rm -rf /opt/hadoop-2.4.0/lib/native
[hxiaolong@hd1 lib]$ cp -R /home/hxiaolong/software/hadoop-2.4.0-src/hadoop-dist/target/hadoop-2.4.0/lib/native /opt/hadoop-2.4.0/lib/

这是非常重要的一个步骤。

3) 把编译后的hadoop的native目录scp其它节点

[iyunv@hd1 lib]# scp -r /home/hxiaolong/software/hadoop-2.4.0-src/hadoop-dist/target/hadoop-2.4.0/lib/native/ hd2:/opt/hadoop-2.4.0/lib/
[iyunv@hd1 lib]# scp -r /home/hxiaolong/software/hadoop-2.4.0-src/hadoop-dist/target/hadoop-2.4.0/lib/native/ hd3:/opt/hadoop-2.4.0/lib/

如果不把重新编译过后的native目录同步到其它节点,那在其它节点也会遇到同样的问题。

4) 验证

[hxiaolong@hd2 native]$ hadoop fs -ls /
Found 1 items
drwxr-xr-x   - hxiaolong supergroup          0 2014-07-23 05:21 /input


OK了,不会报错了。
今天偶然发现这个镜像mirror.bit.edu.cn还蛮快的,而且比较稳定。看了下,是北理的。赞一个~

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-22578-1-1.html 上篇帖子: CentOS6.4上搭建hadoop-2.4.0集群 下篇帖子: hadoop启动后jps 没有namenode
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表