开始玩hadoop6--装hadoop(ubuntu 和 hadoop 2.6.0 的奇怪错误)

我觉得这篇帖子是我写的最重要的一篇帖子了。哈哈,肯定能帮上你不少忙。

我真的是愁了两天多,全部通宵,一点一点实验出的经验,绝无虚假,我都有亲自做过。

心好痛,对新手就是一种折磨啊。对我这种强迫症就是要把我逼上绝路啊。


经过上一篇补充配置后,其实差别就在于===>我的前一篇的配置应该是hadoop版本2.*之前的,

但是后面的补充配置是hadoop 版本 2.*以后的

所以无论配置还是语法,还是文件操作脚本集合的目录我都推荐使用 2.* 以后的版本


强调一下,这里不是centos ,所以没有etc/sysconfig/network 文件的web配置

ubuntu是在etc/network/下的interface 文件。我看了一下,网上都说要改这个配置。

我不知道是不是真的有人是这样解决的,但是我看了一下这个文件,明显不是啊,内容都是关于网卡,网口信息的

hadoop 用不到这样的硬件网卡配置信息吧?

我建议是,实在解决不了在修改这儿的配置。这儿的配置也要重启才能生效的。



这里我推荐使用的工具是Xshell4 ssh 登陆器,这样就在一台电脑上操作三台电脑的配置,就不用跑来跑去。

之前用的putty 也挺好用的。


2.* 以后 的版本使用的yarn 框架,所以也会导致一些不必要的错误。

比如我之前的hadoop 是配置通过了的,但是到2.* 补充配置后,就怎么都启动不了


大部分问题都处在root 目录下的etc 下的hosts 文件里,

所有的问题结果都一定要翻阅logs 文件夹下的 yarn-luis-resourcemanager.log 文件。

都是简单的英文,而且,错误问题可以直接拷贝出来


1、一直卡顿在running job  那里,一直不跑,但是通过8088 端口查看结果,是任务已经被accepted 但是就是不跑动。

导致这个问题的原因有很多。但是,我不能保证给你提供万能的解决方案。你看看yarn-luis-resourcemanager.log的错误信息

或者如果有的话,看看命令行窗口弹出的错误信息

2、replication 只能复制到0个节点上(不能把任务部署到其他data任务节点上),datanode 没启动

3、如果可以进行map 和 reduce 恭喜你,至少程序是在跑动的。可是如果出现connectionException,连接异常,或者说是

拒绝连接,导致出错 


这里我提供几种可能的错误解决办法:


如果:等待资源?那就把资源(内存弄大一些 ,或者不要在配置里设定内存的大小),我用vm虚拟机设置的是1g内存,没出现这种情况


如果:unknowhost XXXXXXX? 先看看命令行里输入hostname 能不能有结果,然后hostname -i 看看能不能出ip结果。

如果不可以,那就在hosts文件里添加上对应的hostname;

如果都可以,再编辑hosts 文件 把包含XXXXXXX的名字放到对应的ip 的后面,删掉127.0.1.1  

(我也不知道为什么ubuntu会配置这个地址 为 hostname XXXXXX ,一般来说,本地应该是127.0.0.1才是 ,

可是它默认配置的时候末两位都是1.1,好奇怪,但是别管他奇怪,删掉掉它。)


如果:访问拒绝,尤其是跳到了localhost:53652,尤其是跳转到这样一个奇怪的端口上,首先,就把localhost 那一行全部注释掉

其次,还有一个不知道会不会起决定作用的地方,就是我两台slaves 是windows下vm跑的ubuntu ,但是windows我没开telnet 服务

虽然我关了windows防火墙和ubuntu防火墙,为了保险起见,大家还是把telnet 服务打开吧,如果打开出错,那就开启相关的

依赖的服务项目,依赖服务项目都开启了话,telnet就可以打开了。最后把/hdfs-site.xml 文件里添加

<property>

<name>dfs.permissions</name>

<value>true</value>

</property>


如果:datanode 没有启动,这个我实在没有什么别的办法,要么先stop-dfs ,stop-yarn 然后等一分钟,在start-dfs 和start-yarn。

如果还没有启动的话,我的办法就只有先stop-dfs ,stop-yarn 后,我就把slaves 上的hadoop 2.6.0文件夹删了,然后重新拷贝一份过去

这里注意,一定要先确定断开服务后在拷贝,而且有的文件夹是可以删掉的,比如logs 比如 input 比如dfs 下的 name 和 data 文件夹下 的所有文件

比如 tmp 下的 所有文件。删完了在拷贝

再重新格式化namenode 在启动就好了


如果:这里我有个错误;端口写错了,我记得我前面两篇,关于9001 这个端口,我应该是写重复了。

错误在:hdfs.site.xml 

<property>
  <name>dfs.namenode.secondary.http-address</name>
  <value>h5:9001</value>
 </property>

把9001 改成 50090


如果:端口没开启,如果是需要访问特定端口的程序端口没开启,那就把它开启就行了。


一旦改了hosts 文件,一定要重启机器,hosts 文件才能生效,这个过程很麻烦费事,但是不得不做。

我的建议是,你要是嫌麻烦干脆把我上面关于hosts 配置的全部一起做了,然后重启就可以了。

至少我是全部都做了,最后才能跑通程序的。


为了保险起见,我把所有的关于h5,h1,h2 ,都换成了对应的ip地址


嗯,错误就是这么多,如果还有错误,可以把日志信息拷贝出来,放到网上,这样大家也更加清楚你错在哪里,

也可以对症下药。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值