在hadoop启动的时候,会出现各种各样的问题
来源:互联网 发布:大数据视频教程下载 编辑:程序博客网 时间:2024/05/16 05:16
在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日志发现错误日志:
- 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
- java.io.IOException: File /opt/hadoop/tmp/mapred/system/jobtracker.info could only be replicated to 0 nodes, instead of 1
- at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.getAdditionalBlock(FSNamesystem.java:1271)
- at org.apache.hadoop.hdfs.server.namenode.NameNode.addBlock(NameNode.java:422)
- at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
- at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
- 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:508)
- at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:959)
- at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:955)
- at java.security.AccessController.doPrivileged(Native Method)
- at javax.security.auth.Subject.doAs(Subject.java:396)
- at org.apache.hadoop.ipc.Server$Handler.run(Server.java:953)
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 异常
- 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
- 2013-08-20 14:10:08,947 ERROR org.apache.hadoop.hdfs.server.namenode.FSNamesystem: FSNamesystem initialization failed.
- 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.
- at org.apache.hadoop.hdfs.server.namenode.FSImage.recoverTransitionRead(FSImage.java:316)
- at org.apache.hadoop.hdfs.server.namenode.FSDirectory.loadFSImage(FSDirectory.java:104)
- at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.initialize(FSNamesystem.java:427)
- at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.<init>(FSNamesystem.java:388)
- at org.apache.hadoop.hdfs.server.namenode.NameNode.initialize(NameNode.java:277)
- at org.apache.hadoop.hdfs.server.namenode.NameNode.<init>(NameNode.java:497)
- at org.apache.hadoop.hdfs.server.namenode.NameNode.createNameNode(NameNode.java:1298)
- at org.apache.hadoop.hdfs.server.namenode.NameNode.main(NameNode.java:1307)
- 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.
- at org.apache.hadoop.hdfs.server.namenode.FSImage.recoverTransitionRead(FSImage.java:316)
- at org.apache.hadoop.hdfs.server.namenode.FSDirectory.loadFSImage(FSDirectory.java:104)
- at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.initialize(FSNamesystem.java:427)
- at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.<init>(FSNamesystem.java:388)
- at org.apache.hadoop.hdfs.server.namenode.NameNode.initialize(NameNode.java:277)
- at org.apache.hadoop.hdfs.server.namenode.NameNode.<init>(NameNode.java:497)
- at org.apache.hadoop.hdfs.server.namenode.NameNode.createNameNode(NameNode.java:1298)
- at org.apache.hadoop.hdfs.server.namenode.NameNode.main(NameNode.java:1307)
- 在hadoop启动的时候,会出现各种各样的问题
- 在hadoop启动的时候,会出现各种各样的问题
- 在hadoop启动的时候,会出现各种各样的问题
- 在hadoop启动的时候,会出现各种各样的问题
- BIOS短句的解释。。开机自检时出现问题后会出现各种各样的英文短句
- 安装linux时 会出现各种各样的错误,如下处理
- MongoDB-启动的时候出现了问题
- 关于NDoc在生成帮助文档的时候会出现的一些问题
- 在安装数据库SQL2000的时候有时会出现不能远程访问的问题。
- 在使用spring quartze进行任务调度的时候,会出现jobDetail的异常问题
- JS在遍历二维数组的时候会出现无限遍历,卡死的问题
- Angular在页面加载很慢的时候,会出现双花括号的问题
- 各种各样的面试问题
- 各种各样的面试问题
- 解决更改hadoop核心配置文件后会出现DataNode,或者NameNode无法启动的问题
- Spring boot 在执行sql 脚本的时候,会出现中文乱码问题
- 在Eclipse关闭tomcat5.5的时候就会出现Failed shutdown of Apache Portable Runtime的问题的解决方法
- 在往自己的Eclipse/MyEclipse中导外部Android项目的时候有时候会出现一些问题
- pcap文件解析--pcap文件头与包文件头(一)(初级)
- Eclipse的Web工程中类似javax.servletx.**报错问题解决办法
- HTTP以及SOAP协议详解
- linux 多网卡找到对应接口
- 用到 count; group by ; order by ;having 的一个SQL语句
- 在hadoop启动的时候,会出现各种各样的问题
- Android中关于Task的一些认识
- Objective-C学习之解析XML
- Android错误集锦
- apps被拒理由以及翻译
- 【c++】C#调用C++ DLL 托管方式
- svn commit 时报错 svn : MKACTIVITY 403 Forbidden
- 内存泄露检测
- Ubuntu10.10下evolution中发送/接受为灰的解决办法