在hadoop启动的时候,会出现各种各样的问题

来源:互联网 发布:大数据视频教程下载 编辑:程序博客网 时间:2024/06/10 03:25

在hadoop启动的时候,会出现各种各样的问题,NameNode,JobTracker等各个模块都会有莫名奇妙的问题出现,在这里对hdfs的问题进行一下简单的记录

1:HDFS initialized but not 'healthy' yet, waiting...

这个日志会在启动hadoop的时候在JobTracker的log日志文件中出现,在这里就是hdfs出现问题,导致DataNode无法启动,这里唯一的解决方式就是把所有的NameNode管理的路径下的文件删除然后重新执行namenode -format,而删除的地方主要有存放临时数据的tmp路径,存放数据的data路径还有name路径,全部删除之后重新format次问题就解决了

2:在执行hadoop程序的时候出现Name node is in safe mode

这个异常一般就直接会在IDE的控制台输出,这个错误的主要导致原因是,datanode不停在丢失数据,所以此时namenode就强制本身进入safe mode模式,在该模式下对数据只可以进行读操作而不能进行写操作。解决此异常很简单,直接执行命令让namenode离开次模式就可以了。./hadoop dfsadmin-safemode leave


3:原来hadoop一直可以正常启动,有天在启动之后查看namenode的log发现如下in_use.lock (Permission denied)错误日志:

INFO namenode.FSNamesystem: isAccessTokenEnabled=false accessKeyUpdateInterval=0 min(s), accessTokenLifetime=0 min(s)
>> 1INFO metrics.FSNamesystemMetrics: Initializing
>> FSNamesystemMetrics using context
>> object:org.apache.hadoop.metrics.spi.NoEmitMetricsContext
ERROR namenode.FSNamesystem: FSNamesystem initialization failed. java.io.FileNotFoundException:  /var/lib/hadoop-0.20/cache/hadoop/dfs/name/in_use.lock (Permission denied)
>> at java.io.RandomAccessFile.open(Native Method)
>> at java.io.RandomAccessFile.<init>(RandomAccessFile.java:216)
>> at
>> org.apache.hadoop.hdfs.server.common.Storage$StorageDirectory.tryLock(Storage.java:614)
>> at
>> org.apache.hadoop.hdfs.server.common.Storage$StorageDirectory.lock(Storage.java:591)
>> at
>> org.apache.hadoop.hdfs.server.common.Storage$StorageDirectory.analyzeStorage(Storage.java:449)
>> at
>> org.apache.hadoop.hdfs.server.namenode.FSImage.recoverTransitionRead(FSImage.java:304)
>> at
>> org.apache.hadoop.hdfs.server.namenode.FSDirectory.loadFSImage(FSDirectory.java:110)
>> at
>> org.apache.hadoop.hdfs.server.namenode.FSNamesystem.initialize(FSNamesystem.java:372)
>> at
>> org.apache.hadoop.hdfs.server.namenode.FSNamesystem.<init>(FSNamesystem.java:335)
>> at
>> org.apache.hadoop.hdfs.server.namenode.NameNode.initialize(NameNode.java:271)
>> at
>> org.apache.hadoop.hdfs.server.namenode.NameNode.<init>(NameNode.java:467)
>> at
>> org.apache.hadoop.hdfs.server.namenode.NameNode.createNameNode(NameNode.java:1330)
>> at
>> org.apache.hadoop.hdfs.server.namenode.NameNode.main(NameNode.java:1339)
这有两种场景出现,

  1):在原来正常的时候,有一次突然使用了原来不同的用户启动了一次hadoop。这种场景会产生一个in_use.lock 文件夹在你设置的目录中,这时候可以删除这个文件夹直接,然后重新启动

  2):在格式化hadoop的时候和当期启动的用户不是同一个,也会导致该问题。这个时候可以使用格式化hadoop的那个用户重新启动hadoop。也可以解决此错误。

该问题的参考地址:打开链接

 

个人解决方案:发现问题是第一种bug,处理方式是修改文件目录的权限为hadoop,原因是其它用户启动后文件权限变了,hadoop用户再启动无法format

 

4:hadoop /tmp/mapred/system/jobtracker.info could only be replicated to 0 nodes, instead of 1

启动了集群之后发现namenode起来了,但是各个slave节点的datanode却都没起起来。去看namenode日志发现错误日志:

  1. INFO org.apache.hadoop.ipc.Server: IPC Server handler 1 on 9000, call addBlock(/opt/hadoop/tmp/mapred/system/jobtracker.info, DFSClient_502181644) from 127.0.0.1:2278: error: java.io.IOException: File /opt/hadoop/tmp/mapred/system/jobtracker.info could only be replicated to 0 nodes, instead of 1  
  2. java.io.IOException: File /opt/hadoop/tmp/mapred/system/jobtracker.info could only be replicated to 0 nodes, instead of 1  
  3.     at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.getAdditionalBlock(FSNamesystem.java:1271)   
  4.     at org.apache.hadoop.hdfs.server.namenode.NameNode.addBlock(NameNode.java:422)   
  5.     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)   
  6.     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)   
  7.     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)   
  8.     at java.lang.reflect.Method.invoke(Method.java:597)   
  9.     at org.apache.hadoop.ipc.RPC$Server.call(RPC.java:508)   
  10. at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:959)   
  11. at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:955)   
  12. at java.security.AccessController.doPrivileged(Native Method)   
  13. at javax.security.auth.Subject.doAs(Subject.java:396)   
  14. at org.apache.hadoop.ipc.Server$Handler.run(Server.java:953)  
具体原因还不是很清楚,当防火墙不关闭的时候可能出现,但是当异常宕掉整个系统再重启的时候也会出现。解决办法是master和slave同时重新格式化

5:ERROR mapred.JvmManager: Caught Throwable in JVMRunner. Aborting TaskTracker. 

java.lang.OutOfMemoryError: unable to create new native thread

在运行任务的过程中,计算突然停止,去计算节点查看TaskTracker日志,发现在计算的过程中抛出以上错误,经查证是因为你的作业打开的文件个数超过系统设置一个进程可以打开的文件的个数的上限。更改/etc/security/limits.conf的配置加入如下配置

hadoop soft nproc 10000
hadoop hard nproc 64000

6:namenode 异常

[java] view plaincopy
  1. 2013-08-20 14:10:08,946 INFO org.apache.hadoop.hdfs.server.common.Storage: Cannot access storage directory /var/lib/hadoop/cache/hadoop/dfs/name  
  2. 2013-08-20 14:10:08,947 ERROR org.apache.hadoop.hdfs.server.namenode.FSNamesystem: FSNamesystem initialization failed.  
  3. org.apache.hadoop.hdfs.server.common.InconsistentFSStateException: Directory /var/lib/hadoop/cache/hadoop/dfs/name is in an inconsistent state: storage directory does not exist or is not accessible.  
  4.     at org.apache.hadoop.hdfs.server.namenode.FSImage.recoverTransitionRead(FSImage.java:316)  
  5.     at org.apache.hadoop.hdfs.server.namenode.FSDirectory.loadFSImage(FSDirectory.java:104)  
  6.     at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.initialize(FSNamesystem.java:427)  
  7.     at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.<init>(FSNamesystem.java:388)  
  8.     at org.apache.hadoop.hdfs.server.namenode.NameNode.initialize(NameNode.java:277)  
  9.     at org.apache.hadoop.hdfs.server.namenode.NameNode.<init>(NameNode.java:497)  
  10.     at org.apache.hadoop.hdfs.server.namenode.NameNode.createNameNode(NameNode.java:1298)  
  11.     at org.apache.hadoop.hdfs.server.namenode.NameNode.main(NameNode.java:1307)  
  12. 2013-08-20 14:10:08,948 ERROR org.apache.hadoop.hdfs.server.namenode.NameNode: org.apache.hadoop.hdfs.server.common.InconsistentFSStateException: Directory /var/lib/hadoop/cache/hadoop/dfs/name is in an inconsistent state: storage directory does not exist or is not accessible.  
  13.     at org.apache.hadoop.hdfs.server.namenode.FSImage.recoverTransitionRead(FSImage.java:316)  
  14.     at org.apache.hadoop.hdfs.server.namenode.FSDirectory.loadFSImage(FSDirectory.java:104)  
  15.     at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.initialize(FSNamesystem.java:427)  
  16.     at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.<init>(FSNamesystem.java:388)  
  17.     at org.apache.hadoop.hdfs.server.namenode.NameNode.initialize(NameNode.java:277)  
  18.     at org.apache.hadoop.hdfs.server.namenode.NameNode.<init>(NameNode.java:497)  
  19.     at org.apache.hadoop.hdfs.server.namenode.NameNode.createNameNode(NameNode.java:1298)  
  20.     at org.apache.hadoop.hdfs.server.namenode.NameNode.main(NameNode.java:1307)  
0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 纹眉没有修复霜怎么办 衣服搞到走珠露香水洗不掉怎么办 涂牙膏把脸烧伤怎么办 月经血排不出来怎么办 猫眼角膜掉了一块怎么办 腰酸痛直不起腰怎么办 白血病移植后复发了怎么办 斐讯k2红灯常亮怎么办 洗衣机把烟洗了怎么办 吸烟吸的恶心想吐怎么办 显示双方信息的明细怎么办 电脑关不了机了怎么办 xp系统关不了机怎么办 灯的开关闭不了怎么办 灯的开关按不动怎么办 灯开关按不动了怎么办 灯的开关摁不动怎么办 微信群500人满了怎么办 作业帮搜不到题目怎么办呢 金融社保卡密码忘了怎么办 工作未完想从国企辞职怎么办 宫腔粘连术后流血多怎么办 宫腔粘连术后一直流血怎么办? cad图框放不下图怎么办 简历假的入职怎么办 脱贫攻坚怎么看怎么办怎么干 吃的下没力气怎么办 恢复留查公示后怎么办 微语简报删了怎么办 小学生未完成作业作为老师怎么办 抽调人员想回原单位怎么办 扫码支付没成功怎么办 成都电表卡丢了怎么办 社保未满15年怎么办 60岁社保没交满15年怎么办 柴油车dpf是亮了怎么办 贴双眼皮贴眼睛肿了怎么办 送孩子赴澳洲家长怎么办签证? 开指过程中发烧怎么办 大水口热流道有料花怎么办 奶奶疼外孙胜过孙子怎么办