Hadoop单机环境配置问题

来源:互联网 发布:罗克韦尔plc软件下载 编辑:程序博客网 时间:2024/05/17 17:59

Hadoop环境配置

根据 从零开始最短路径学习Hadoop01----Hadoop的安装配置测试(http://blog.csdn.net/lizhe_dashuju/article/details/9612923)文章提供的方法,在本人实际环境中进行了配置。

 

操作系统为Ubuntu12.04hadoop版本为1.2.1java版本为1.7.0.55,并且我的JAVA安装路径为/usr/local/lib下(与文章中的/usr/java不同,JAVA_HOME值相应变化)。

 

第一次配置时,在进行到 第7步:启动hadoop ,输入jps时,只有4个进程,不存在namenode 和 datanode,所以后面的实例没有成功,但是简单的搜索了一下没有解决了就搁置了。

 

一个月后重新看这篇教程的时候,再次一顿配置操作之后,键入jps,只有一个jps进程!!!WTF,在网上进行各种搜索资料和跟同学的交流后,除了消掉了系统的一些无伤大雅的警告之外,核心问题(jps只有一个进程)依然没有解决。足足花了昨天一天的时间!(这里顺便鄙视一下自己昨天的低效率与状态)

 

今天重新看这个问题的时候,从第3步开始做,首先觉得java路径是不是有问题,设置为/usr/java之后,出错了,再改回/usr/local/lib/下就没有了,一阵测试之后说明对java的配置是正确的,只要各系统变量里的 JAVA_HOMEjava安装路径一致就可以。这样一来第34步就没有什么问题。

 

继续第5步,昨天的一顿配置之后,我已经不能保证配置文件的正确性了,所以删掉了之前的hadoop安装相关,重新安装一次hadoop,按教程配置好之后

 

6步无异常,继续第7步,在start-all.sh之后,jps发现依然是只有4个进程,datanode,namenode没有启动。

 

开始搜索:“start-all.sh namenode未启动"。在链接:http://www.linuxidc.com/Linux/2013-05/83861.htm 中找到了答案,下面直接贴出:

执行start-all.sh的时候发现JPS一下namenode没有启动

每次开机都得重新格式化一下namenode才可以

其实问题就出在tmp文件,默认的tmp文件每次重新开机会被清空,与此同时namenode的格式化信息就会丢失

于是我们得重新配置一个tmp文件目录

首先在home目录下建立一个Hadoop_tmp目录

sudo mkdir ~/hadoop_tmp

然后修改hadoop/conf目录里面的core-site.xml文件,加入以下节点:

<property>

<name>hadoop.tmp.dir</name>

<value>/home/chjzh/hadoop_tmp</value>

<description>A base for other temporary directories.</description>

</property>

注意:我的用户是chjzh所以目录是/home/chjzh/hadoop_tmp

OK了,重新格式化Namenode

hadoop namenode -format

然后启动hadoop

start-all.sh

执行下JPS命令就可以看到NameNode

 

然而在我进行这样的配置之后,依然没有出现6个进程,还是只有4个进程。

 

这次学聪明了,记住:这一定要会看log排查异常!这经我同学告诉我及亲身体验,才发现这句话的伟大。进入hadoop下面的logs文件夹里查看datanode namenode相应的log文件。先看datanodelog文件,这里当时忘了截图了,总之是一个shutdown_msg的信息,说的好像是上面所说的hadoop_tmp文件夹里的文件不存在之类的,网络上搜索发现是文件夹权限问题,chmodchown一阵之后,问题更严重了,网上好像有说某些文件若存在多余的权限也可能导致启动失败,具体的I don’t know why...好在这个文件夹简单,删了重新建立,这次居然好了...所以这里你要问我为什么,我只能说不知道,多尝试几次吧。

 

在经过以上这些环境配置,文件创建,权限修改等变化后,jps

 

非常不错,后面的第8步的实例也正确执行。

前前后后这个环境算是搭了2天多时间才算解决,贴出来希望能有帮助。

 

另外:最开始的时候本人的系统的里安装了Selinux,经常出现start-all.sh之后,出现一阵 permission denied,这个我当时不确定是文件夹权限问题还是Selinux的限制(因为我的Selinxu=permissive,拼写可能不对,不要在意这种细节)。还必须得sudo,之后一阵密码输入,非常麻烦,后来把selinux关闭了:Selinux=disabled。情况就好了。

 

0 0
原创粉丝点击