hadoop1.x问题总结

1.启动hadoopzookeeperhbasejps查看,服务已经都起来了。但是60010界面无法打开。50070正常,50030nodes显示为0.查看日志:error: org.apache.hadoop.hdfs.server.namenode.SafeModeException:Cannot delet/home/hadoop/tmp/mapred/system. Name node is in safe mode.

System.这个文件不存在,执行./hadoop dfsadmin -safemode leave 后,50030正常

但是这样还是不行啊,应该自动可以退出安全模式的,可以查看一下日志,查看一下VERSIONID是否一致。我重启后依然这样,查看了一下VERSION,又重新启动hadoop,竟然正常了,不清楚原因啊,奇怪了。

2.hadoop集群修改时间的后果

时间改动较大一般是hbase节点停止,直接启动即可。Hadoop没发现问题。

3.初次配置运行没什么问题MapReduce的例子也能正常运行,但是等若干天后再次运行时遇到了如下的问题:

hadoop@ubuntu:~$ hadoop/bin/start-all.sh

看不出什么问题,但是

hadoop@ubuntu:~$ jps
12181 Jps
11984 JobTracker
12132 TaskTracker
11557 SecondaryNameNode
hadoop@ubuntu:~$ hadoop/bin/stop-all.sh
stopping jobtracker
localhost: no tasktracker to stop
no namenode to stop
localhost: no datanode to stop
localhost: stopping secondarynamenode

 

问题出在哪里不是很清楚,不过貌似是由于每次start后,关机之前没有运行stop的缘故造成的。下面的方法应该有用:(此处是namespaceID除问题,也可以尝试手动修改namespaceID看是否可行)

1、先运行stop-all.sh

2、格式化namdenode,不过在这之前要先删除原目录,即core-site.xml下配置的<name>hadoop.tmp.dir</name>所指向的目录,删除后切记要重新建立配置的空目录,然后运行hadoop namenode -format

3、运行start-all.sh

 

原因分析:

     通过多次断电重启发现,出现这种情况是因为namenodedatanodetmp下的VERSION内的namespaceID不同。只要关闭服务的时候namespaceID相同,重启就没有问题。而什么原因会导致namespaceID变动,着还有待积累,现总结如下:

1.hadoop启动之后执行过format

 

4.WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable

这是因为你用的hadoop版本是没编译的,所谓没编译是说一些功能包(比如./hadoop dfs -ls /)无法使用,这种未编译的包一般是********.tar.gz格式,应该使用****bin.tar.gz,这是已经编译过的,但是有些增强功能未添加,要使用一些增强功能,需要编译前一个版本(ant)


5.hbase经常自己关掉一个region,最后发现hadoop日志有如下错误

2014-02-22 01:52:00,935 ERROR org.apache.hadoop.security.UserGroupInformation: PriviledgedActionException as:hadoop cause:org.apache.hadoop.hdfs.server.namenode.LeaseExpiredException: No lease on /hbase/.logs/testhd3,60020,1392948100268/testhd3%2C60020%2C1392948100268.1393004989411 File does not exist. Holder DFSClient_hb_rs_testhd3,60020,1392948100268 does not have any open files.
2014-02-22 01:52:00,936 INFO org.apache.hadoop.ipc.Server: IPC Server handler 3 on 9000, call addBlock(/hbase/.logs/testhd3,60020,1392948100268/testhd3%2C60020%2C1392948100268.1393004989411, DFSClient_hb_rs_testhd3,60020,1392948100268, null) from 172.72.101.213:59979: error: org.apache.hadoop.hdfs.server.namenode.LeaseExpiredException: No lease on /hbase/.logs/testhd3,60020,1392948100268/testhd3%2C60020%2C1392948100268.1393004989411 File does not exist. Holder DFSClient_hb_rs_testhd3,60020,1392948100268 does not have any open files.
org.apache.hadoop.hdfs.server.namenode.LeaseExpiredException: No lease on /hbase/.logs/testhd3,60020,1392948100268/testhd3%2C60020%2C1392948100268.1393004989411 File does not exist. Holder DFSClient_hb_rs_testhd3,60020,1392948100268 does not have any open files.
        at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.checkLease(FSNamesystem.java:1631)
        at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.checkLease(FSNamesystem.java:1622)
        at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.getAdditionalBlock(FSNamesystem.java:1538)
        at org.apache.hadoop.hdfs.server.namenode.NameNode.addBlock(NameNode.java:696)
        at sun.reflect.GeneratedMethodAccessor13.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.apache.hadoop.ipc.RPC$Server.call(RPC.java:563)
        at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:1388)
        at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:1384)
        at java.security.AccessController.doPrivileged(Native Method)
        at javax.security.auth.Subject.doAs(Subject.java:396)
        at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1121)
        at org.apache.hadoop.ipc.Server$Handler.run(Server.java:1382)

解决办法,调整xcievers参数
默认是4096,改为8192

vi /home/dwhftp/opt/hadoop/conf/hdfs-site.xml

<property>

<name>dfs.datanode.max.xcievers</name>

<value>8192</value>

</property>



dfs.datanode.max.xcievers 参数说明

一个 Hadoop HDFS Datanode 有一个同时处理文件的上限. 这个参数叫 xcievers (Hadoop的作者把这个单词拼错了). 在你加载之前,先确认下你有没有配置这个文件conf/hdfs-site.xml里面的xceivers参数,至少要有4096:



<property>

<name>dfs.datanode.max.xcievers</name>

<value>4096</value>

</property>



  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值