您的位置:首页 > 运维架构

运行hadoop程序遇到的一些问题及解决方案

2015-08-24 18:22 465 查看
hadoop版本2.2.0

在安装完hadoop后经常遇到的一些问题有:

1、发现datanode启动不起来

可能原因:格式化namenode后datanode和namenode的版本ID不一致

解决方式:

找到namenode下面的VERSION文件的clusterID、

namespaceID,拷贝到datanode去,路径name/current/VERSION

如果不知道namenode和datanode路径可以去hdfs-site.xml配置文件中找

2、hadoop编程:解决eclipse能运行,打包放到集群上ClassNotFoundException

我遇到了这个问题,网上找到一篇比较详细的解决方案

http://www.aboutyun.com/thread-7086-1-1.html


3、运行mapreduce程序发现错误如下:

15/08/26 23:39:36 INFO mapreduce.Job: Job job_1440646718285_0001 failed with state FAILED due to:
Application application_1440646718285_0001 failed 2 times due to Error launching appattempt_1440646718285_0001_000002. Got exception: org.apache.hadoop.yarn.exceptions.YarnException: Unauthorized request to start container. 

This token is expired. current time is 1440675475888 found 1440647375821

        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)

        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)

        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)

        at java.lang.reflect.Constructor.newInstance(Constructor.java:526)

        at org.apache.hadoop.yarn.api.records.impl.pb.SerializedExceptionPBImpl.instantiateException(SerializedExceptionPBImpl.java:152)

        at org.apache.hadoop.yarn.api.records.impl.pb.SerializedExceptionPBImpl.deSerialize(SerializedExceptionPBImpl.java:106)

        at org.apache.hadoop.yarn.server.resourcemanager.amlauncher.AMLauncher.launch(AMLauncher.java:122)

        at org.apache.hadoop.yarn.server.resourcemanager.amlauncher.AMLauncher.run(AMLauncher.java:249)

        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)

        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)

        at java.lang.Thread.run(Thread.java:745)

. Failing the application.


解决方法:出现这个问题一般是因为hadoop集群中出现了时间不一致问题,同步时间,再运行,ok

4、需注意输出路径必须是不存在的路径,否则程序会报错

map/reduce程序会自己创建输出目录,如果目录已经存在,程序会报错,这个问题对于新手来说很容易犯

5、发现nameNode启动起来了,dataNode也启动起来了但是文件系统没起来

nameNode与DataNode可以互相ssh到,也可以互相ping通,hadoop dfsadmin -report 发现节点没有挂上,在节点上执行hadoop fs 命令发现无法执行,提示:

ls: No Route to Host from  hadoop02/10.252.48.153 to hadoop01:8020 failed on socket timeout exception: java.net.NoRouteToHostException:
No route to host; For more details see:  http://wiki.apache.org/hadoop/NoRouteToHost


问题原因:防火墙没关,执行service iptables stop 关闭nameNode和dataNode的防火墙后在nameNode上hadoop dfsadmin -refreshNodes 刷新节点即可发现dataNode
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: