Hadoop常见错误
2017-06-20 09:53
309 查看
一:没有dataNode(Live Nodes的数量为0)或者两个nameNode都处于 standby状态?
可能的解决方案:
趟过的坑:clusterID不一致,集群的nameNode和dataNode必须保持一致!
如何使用bin/hadoop namenode -format格式化两次就会出现上面的bug
解决办法:
第一种:拷贝/home/hadoop/data(nameNode的路径)文件夹里的name/current文件夹下的VERSION到/home/hadoop/data/data/current文件夹下(注意其他节点也一样,clusterID要一致)
第二种:删除/home/hadoop/data下的data和name文件夹下的current文件夹(其他节点也需要删除),然后执行一次bin/hadoop namenode -format格式化,会重新生成clusterID。
Bug详情见http://blog.csdn.net/zhangt85/article/details/42078347
需要注意两点:
第一点
先启动 ./start-dfs.sh
再进行 格式化,则成功
第二点:
格式化的时候, 判断是否re_format filesystem 的时候 Y/N 一定要大写的 Y!!!
上面错误的常见异常:
17/06/13 17:17:06 INFO ipc.Client: Retrying connect to server: hadoop05/192.168.3.15:8485. Already tried 8 time(s); retry policy is RetryUpToMaximumCountWithFixedSleep(maxRetries=10, sleepTime=1000 MILLISECONDS)
17/06/13 17:17:06 INFO ipc.Client: Retrying connect to server: hadoop07/192.168.3.17:8485. Already tried 8 time(s); retry policy is RetryUpToMaximumCountWithFixedSleep(maxRetries=10, sleepTime=1000 MILLISECONDS)
17/06/13 17:17:07 INFO ipc.Client: Retrying connect to server: hadoop06/192.168.3.16:8485. Already tried 9 time(s); retry policy is RetryUpToMaximumCountWithFixedSleep(maxRetries=10, sleepTime=1000 MILLISECONDS)
17/06/13 17:17:07 INFO ipc.Client: Retrying connect to server: hadoop05/192.168.3.15:8485. Already tried 9 time(s); retry policy is RetryUpToMaximumCountWithFixedSleep(maxRetries=10, sleepTime=1000 MILLISECONDS)
17/06/13 17:17:07 WARN namenode.NameNode: Encountered exception during format:
org.apache.hadoop.hdfs.qjournal.client.QuorumException: Unable to check if JNs are ready for formatting. 1 exceptions thrown:
192.168.3.16:8485: Call From hadoop01/192.168.3.11 to hadoop06:8485 failed on connection exception: java.net.ConnectException: Connection refused; For more details see: http://wiki.apache.org/hadoop/ConnectionRefused
at org.apache.hadoop.hdfs.qjournal.client.QuorumException.create(QuorumException.java:81)
at org.apache.hadoop.hdfs.qjournal.client.QuorumCall.rethrowException(QuorumCall.java:223)
at org.apache.hadoop.hdfs.qjournal.client.QuorumJournalManager.hasSomeData(QuorumJournalManager.java:232)
at org.apache.hadoop.hdfs.server.common.Storage.confirmFormat(Storage.java:899)
at org.apache.hadoop.hdfs.server.namenode.FSImage.confirmFormat(FSImage.java:171)
at org.apache.hadoop.hdfs.server.namenode.NameNode.format(NameNode.java:940)
at org.apache.hadoop.hdfs.server.namenode.NameNode.createNameNode(NameNode.java:1382)
at org.apache.hadoop.hdfs.server.namenode.NameNode.main(NameNode.java:1507)
17/06/13 17:17:07 INFO ipc.Client: Retrying connect to server: hadoop07/192.168.3.17:8485. Already tried 9 time(s); retry policy is RetryUpToMaximumCountWithFixedSleep(maxRetries=10, sleepTime=1000 MILLISECONDS)
17/06/13 17:17:07 FATAL namenode.NameNode: Failed to start namenode.
org.apache.hadoop.hdfs.qjournal.client.QuorumException: Unable to check if JNs are ready for formatting. 1 exceptions thrown:
192.168.3.16:8485: Call From hadoop01/192.168.3.11 to hadoop06:8485 failed on connection exception: java.net.ConnectException: Connection refused; For more details see: http://wiki.apache.org/hadoop/ConnectionRefused
at org.apache.hadoop.hdfs.qjournal.client.QuorumException.create(QuorumException.java:81)
at org.apache.hadoop.hdfs.qjournal.client.QuorumCall.rethrowException(QuorumCall.java:223)
at org.apache.hadoop.hdfs.qjournal.client.QuorumJournalManager.hasSomeData(QuorumJournalManager.java:232)
at org.apache.hadoop.hdfs.server.common.Storage.confirmFormat(Storage.java:899)
at org.apache.hadoop.hdfs.server.namenode.FSImage.confirmFormat(FSImage.java:171)
at org.apache.hadoop.hdfs.server.namenode.NameNode.format(NameNode.java:940)
at org.apache.hadoop.hdfs.server.namenode.NameNode.createNameNode(NameNode.java:1382)
at org.apache.hadoop.hdfs.server.namenode.NameNode.main(NameNode.java:1507)
2:hadoop 在window系统上运行报错?
注:E:\\Program
Files\\hadoop-2.7.0是我本机解压的hadoop的路径。
稍后再执行,你可能还是会出现同样的错误,这个时候你可能会要怪我了。其实一开始我是拒绝的,因为你进入你的hadoop-x.x.x/bin目录下看,你会发现你压根就没有winutils.exe这个东东。
于是我告诉你,你可以去github下载一个,地球人都知道的地址发你一个。
地址:https://github.com/srccodes/hadoop-common-2.2.0-bin
下载好后,把winutils.exe加入你的hadoop-x.x.x/bin下,当然最好的方法还是配置环境变量:
A、将hadoop(windows平台下编译的hadoop)安装包解压一份到windows的任意一个目录下
B、在window系统中配置HADOOP_HOME指向你解压的安装包目录
C、在windows系统的path变量中加入HADOOP_HOME的bin目录
D、重启电脑
3:A master URL must be set in your configuration报错
Exception in thread "main" org.apache.hadoop.mapred.FileAlreadyExistsException: Output directory hdfs://bi/sortedMR.txt already exists
at org.apache.hadoop.mapreduce.lib.output.FileOutputFormat.checkOutputSpecs(FileOutputFormat.java:146)
at org.apache.hadoop.mapreduce.JobSubmitter.checkSpecs(JobSubmitter.java:267)
at org.apache.hadoop.mapreduce.JobSubmitter.submitJobInternal(JobSubmitter.java:140)
at org.apache.hadoop.mapreduce.Job$10.run(Job.java:1297)
at org.apache.hadoop.mapreduce.Job$10.run(Job.java:1294)
是由于参数不对应引起的,即,讲input文件夹对应到output参数上了。正确的执行jar包的方法为:
1.通过crt把自己的打包好的工程上传到hadoop服务器上。
2.首先确认中间输出结果路径是不存在的,执行删除方法:
bin/hadoop fs -rmr output
3.创建输入路径input,并上传输入文件至该文件夹。
4.执行指令运行jar包wordcount.jar:
bin/hadoop jar wordcount.jar input output
这里要注意参数个数,如果在打包时就已经指定了执行main方法的类,比如WordCount类,那么在执行上述指令时就不要在指定类了,如果写:
bin/hadoop jar wordcount.jar WordCount input output
那么就需要在工程里面修改对应参数:
FileInputFormat.setInputPaths(conf,new Path(args[0])); 0改为1
FileOutputFormat.setOutputPath(conf,new Path(args[1])); 1改为2
最好的方法就是不再加上WordCount这个参数。
可能的解决方案:
趟过的坑:clusterID不一致,集群的nameNode和dataNode必须保持一致!
如何使用bin/hadoop namenode -format格式化两次就会出现上面的bug
解决办法:
第一种:拷贝/home/hadoop/data(nameNode的路径)文件夹里的name/current文件夹下的VERSION到/home/hadoop/data/data/current文件夹下(注意其他节点也一样,clusterID要一致)
第二种:删除/home/hadoop/data下的data和name文件夹下的current文件夹(其他节点也需要删除),然后执行一次bin/hadoop namenode -format格式化,会重新生成clusterID。
Bug详情见http://blog.csdn.net/zhangt85/article/details/42078347
需要注意两点:
第一点
先启动 ./start-dfs.sh
再进行 格式化,则成功
第二点:
格式化的时候, 判断是否re_format filesystem 的时候 Y/N 一定要大写的 Y!!!
上面错误的常见异常:
17/06/13 17:17:06 INFO ipc.Client: Retrying connect to server: hadoop05/192.168.3.15:8485. Already tried 8 time(s); retry policy is RetryUpToMaximumCountWithFixedSleep(maxRetries=10, sleepTime=1000 MILLISECONDS)
17/06/13 17:17:06 INFO ipc.Client: Retrying connect to server: hadoop07/192.168.3.17:8485. Already tried 8 time(s); retry policy is RetryUpToMaximumCountWithFixedSleep(maxRetries=10, sleepTime=1000 MILLISECONDS)
17/06/13 17:17:07 INFO ipc.Client: Retrying connect to server: hadoop06/192.168.3.16:8485. Already tried 9 time(s); retry policy is RetryUpToMaximumCountWithFixedSleep(maxRetries=10, sleepTime=1000 MILLISECONDS)
17/06/13 17:17:07 INFO ipc.Client: Retrying connect to server: hadoop05/192.168.3.15:8485. Already tried 9 time(s); retry policy is RetryUpToMaximumCountWithFixedSleep(maxRetries=10, sleepTime=1000 MILLISECONDS)
17/06/13 17:17:07 WARN namenode.NameNode: Encountered exception during format:
org.apache.hadoop.hdfs.qjournal.client.QuorumException: Unable to check if JNs are ready for formatting. 1 exceptions thrown:
192.168.3.16:8485: Call From hadoop01/192.168.3.11 to hadoop06:8485 failed on connection exception: java.net.ConnectException: Connection refused; For more details see: http://wiki.apache.org/hadoop/ConnectionRefused
at org.apache.hadoop.hdfs.qjournal.client.QuorumException.create(QuorumException.java:81)
at org.apache.hadoop.hdfs.qjournal.client.QuorumCall.rethrowException(QuorumCall.java:223)
at org.apache.hadoop.hdfs.qjournal.client.QuorumJournalManager.hasSomeData(QuorumJournalManager.java:232)
at org.apache.hadoop.hdfs.server.common.Storage.confirmFormat(Storage.java:899)
at org.apache.hadoop.hdfs.server.namenode.FSImage.confirmFormat(FSImage.java:171)
at org.apache.hadoop.hdfs.server.namenode.NameNode.format(NameNode.java:940)
at org.apache.hadoop.hdfs.server.namenode.NameNode.createNameNode(NameNode.java:1382)
at org.apache.hadoop.hdfs.server.namenode.NameNode.main(NameNode.java:1507)
17/06/13 17:17:07 INFO ipc.Client: Retrying connect to server: hadoop07/192.168.3.17:8485. Already tried 9 time(s); retry policy is RetryUpToMaximumCountWithFixedSleep(maxRetries=10, sleepTime=1000 MILLISECONDS)
17/06/13 17:17:07 FATAL namenode.NameNode: Failed to start namenode.
org.apache.hadoop.hdfs.qjournal.client.QuorumException: Unable to check if JNs are ready for formatting. 1 exceptions thrown:
192.168.3.16:8485: Call From hadoop01/192.168.3.11 to hadoop06:8485 failed on connection exception: java.net.ConnectException: Connection refused; For more details see: http://wiki.apache.org/hadoop/ConnectionRefused
at org.apache.hadoop.hdfs.qjournal.client.QuorumException.create(QuorumException.java:81)
at org.apache.hadoop.hdfs.qjournal.client.QuorumCall.rethrowException(QuorumCall.java:223)
at org.apache.hadoop.hdfs.qjournal.client.QuorumJournalManager.hasSomeData(QuorumJournalManager.java:232)
at org.apache.hadoop.hdfs.server.common.Storage.confirmFormat(Storage.java:899)
at org.apache.hadoop.hdfs.server.namenode.FSImage.confirmFormat(FSImage.java:171)
at org.apache.hadoop.hdfs.server.namenode.NameNode.format(NameNode.java:940)
at org.apache.hadoop.hdfs.server.namenode.NameNode.createNameNode(NameNode.java:1382)
at org.apache.hadoop.hdfs.server.namenode.NameNode.main(NameNode.java:1507)
2:hadoop 在window系统上运行报错?
Files\\hadoop-2.7.0是我本机解压的hadoop的路径。
稍后再执行,你可能还是会出现同样的错误,这个时候你可能会要怪我了。其实一开始我是拒绝的,因为你进入你的hadoop-x.x.x/bin目录下看,你会发现你压根就没有winutils.exe这个东东。
于是我告诉你,你可以去github下载一个,地球人都知道的地址发你一个。
地址:https://github.com/srccodes/hadoop-common-2.2.0-bin
下载好后,把winutils.exe加入你的hadoop-x.x.x/bin下,当然最好的方法还是配置环境变量:
A、将hadoop(windows平台下编译的hadoop)安装包解压一份到windows的任意一个目录下
B、在window系统中配置HADOOP_HOME指向你解压的安装包目录
C、在windows系统的path变量中加入HADOOP_HOME的bin目录
D、重启电脑
3:A master URL must be set in your configuration报错
Exception in thread "main" org.apache.hadoop.mapred.FileAlreadyExistsException: Output directory hdfs://bi/sortedMR.txt already exists
at org.apache.hadoop.mapreduce.lib.output.FileOutputFormat.checkOutputSpecs(FileOutputFormat.java:146)
at org.apache.hadoop.mapreduce.JobSubmitter.checkSpecs(JobSubmitter.java:267)
at org.apache.hadoop.mapreduce.JobSubmitter.submitJobInternal(JobSubmitter.java:140)
at org.apache.hadoop.mapreduce.Job$10.run(Job.java:1297)
at org.apache.hadoop.mapreduce.Job$10.run(Job.java:1294)
是由于参数不对应引起的,即,讲input文件夹对应到output参数上了。正确的执行jar包的方法为:
1.通过crt把自己的打包好的工程上传到hadoop服务器上。
2.首先确认中间输出结果路径是不存在的,执行删除方法:
bin/hadoop fs -rmr output
3.创建输入路径input,并上传输入文件至该文件夹。
4.执行指令运行jar包wordcount.jar:
bin/hadoop jar wordcount.jar input output
这里要注意参数个数,如果在打包时就已经指定了执行main方法的类,比如WordCount类,那么在执行上述指令时就不要在指定类了,如果写:
bin/hadoop jar wordcount.jar WordCount input output
那么就需要在工程里面修改对应参数:
FileInputFormat.setInputPaths(conf,new Path(args[0])); 0改为1
FileOutputFormat.setOutputPath(conf,new Path(args[1])); 1改为2
最好的方法就是不再加上WordCount这个参数。
相关文章推荐
- hadoop常见错误
- hadoop常见错误及处理方法
- hadoop常见错误总结与解决办法
- Hadoop常见错误
- hadoop常见错误-hadoop cannot assign requested address
- hadoop集群搭建的常见错误
- hadoop常见错误大全
- Hadoop常见错误总结
- Hadoop 0.23编译常见错误
- Hadoop集群Eclipse开发常见错误积累
- 运行Hadoop作业时一处常见错误以及解决方法
- hadoop运行常见错误
- hadoop常见错误
- Hadoop 0.23编译常见错误
- hadoop常见错误
- Hadoop完全分布式配置及常见错误集合
- 启动hadoop时常见错误
- HADOOP常见错误
- Hadoop 常见错误解决方法(12-13持续整理更新中)
- Hadoop集群Eclipse开发常见错误积累