Linux suse x86_64 环境上部署Hadoop启动失败原因分析_Hadoop,ERP及大数据讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  Hadoop,ERP及大数据讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 3821 | 回复: 0   主题: Linux suse x86_64 环境上部署Hadoop启动失败原因分析        上一篇   下一篇 
cc
注册用户
等级:中校
经验:1900
发帖:195
精华:0
注册:2011-7-25
状态:离线
发送短消息息给cc 加好友    发送短消息息给cc 发消息
发表于: IP:您无权察看 2016-4-12 15:00:52 | [全部帖] [楼主帖] 楼主

一、问题症状:

在安装Hadoop的时候报类似如下的错误:

# A fatal error has beendetected by the Java Runtime Environment: 
 
 # 
 
 # SIGFPE (0x8) atpc=0x40008026, pid=31393, tid=2283477936 
 
 # 
 
 # JRE version:6.0_29-b08 
 
 # Java VM: JavaHotSpot(TM) Client VM (20.4-b01 mixed mode linux-x86 ) 
 
 # Problematic frame: 
 
 # C [ld-linux.so.2+0x8026] double+0xb6 
 
 # 
 
 # If you would like tosubmit a bug report, please visit: 
 
 # http://java.sun.com/webapps/bugreport/crash.jsp
 
 # The crash happenedoutside the Java Virtual Machine in native code. 
 
 # See problematic framefor where to report the bug.


 

二、问题原因:

Hadoop依赖的本地库与操作系统不兼容,需要在本地重新编译依赖的so包。

 

三、解决过程:

1. 在$HADOOP_HOME目录下执行以下语句来编译:

ant -Dcompile.native=true compile-native


2. 由于ant使用了maven来做编译,而maven需要连网下载依赖的jar包,由于我们的环境是通过代理上网的,所以在执行上面的命令时会有报错,应要先设置ant的代理上网环境变量:

export ANT_OPTS="-Dhttp.proxyHost=10.3.1.6-Dhttp.proxyPort=8080"


3. 上述问题解决后,在编译过程中又提示没有zlib,就是本机没有安装zlib,如果不提示这个错误请忽略以下这个过程。下面是安装zlib的过程,从官方网站下载zlib库,下载地址如下。

http://zlib.net/zlib-1.2.8.tar.gz

 

mkdir zlib
 
 cp zlib-1.2.8.tar.gz zlib
 
 gzip –d zlib-1.2.8.tar.gz
 
 tar xvf zlib-1.2.8.tar
 
 cd zlib-1.2.8
 
 ./configure
 
 make
 
 sudo make install


上面的过程就完成了zlib的安装,

当使用wget命令下载时,若要使用代理,则可以参考如下命令:

wget -e http-proxy=10.3.1.6:8080 --proxy=on -c http://zlib.net/zlib-1.2.8.tar.gz


4. 然后再执行步骤1的命令,就完成了hadoop本地库的编译,编译产生的新本地库在以下目录:

$HADOOP_HOME/build/native/**ux-amd64-64/lib


5. 将上述目录下的文件全部copy到namenode的以下目录:

cd $HADOOP_HOME/build/native/**ux-amd64-64/lib
 
 cp * $HADOOP_HOME/lib/native/**ux-amd64-64


同时还需要copy上述的包到各个datanode的相应目录下:

cd $HADOOP_HOME/lib/native/**ux-amd64-64
 
 scp * aihadoop@10.3.3.142:~/hadoop/hadoop-1.0.0/lib/native/Linux-amd64-64/
 
 scp * aihadoop@10.3.3.143:~/hadoop/hadoop-1.0.0/lib/native/Linux-amd64-64/


6. 然后在namenode上执行以下命令启动hadoop:

./start-all.sh


7. 输出日志大概如下,表示启动成功:

aihadoop@SUSE-141:~/hadoop/hadoop-1.0.0/bin>./start-all.sh
 
 Warning: $HADOOP_HOME is deprecated.
starting namenode, logging to /home/aihadoop/hadoop/hadoop-1.0.0/libexec/../logs/hadoop-aihadoop-namenode-suse-141.out
 
 10.3.3.143: starting datanode, logging to/home/aihadoop/hadoop/hadoop-1.0.0/libexec/../logs/hadoop-aihadoop-datanode-suse10t143.out
 
 10.3.3.142: starting datanode, logging to /home/aihadoop/hadoop/hadoop-1.0.0/libexec/../logs/hadoop-aihadoop-datanode-suse-142.out
 
 10.3.3.141: starting secondarynamenode, logging to/home/aihadoop/hadoop/hadoop-1.0.0/libexec/../logs/hadoop-aihadoop-secondarynamenode
 -suse-141.out
 
 starting jobtracker, logging to/home/aihadoop/hadoop/hadoop-1.0.0/libexec/../logs/hadoop-aihadoop-jobtracker-suse-141.out
 
 10.3.3.143: starting tasktracker, logging to/home/aihadoop/hadoop/hadoop-1.0.0/libexec/../logs/hadoop-aihadoop-tasktracker-suse10t143.
 out
 
 10.3.3.142: starting tasktracker, logging to/home/aihadoop/hadoop/hadoop-1.0.0/libexec/../logs/hadoop-aihadoop-tasktracker-suse-142.
 out


8. 最后记得要把$HADOOP_HOME/build目录删除掉,否则启动后访问页面会出现404错误。







--转自



赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论