Spark&Hadoop报错合集

作者: shad0w_walker(admin) 分类: 分布式 发布时间: 2017-03-23 13:55 ė 6 没有评论

准备把分布式编程中遇到的问题以及本人解决该问题的方法记录下来。持续更新


Spark运行报错

WARN TaskSchedulerImpl: Initial job has not accepted any resources; check your cluster UI to ensure that workers are registered and have sufficient resources

问题原因:
worker的内存不足

解决方法:
减小executor-memory和driver-memory的值,要小于机器的物理内存

 

java.io.NotSerializableException: scala.collection.immutable.MapLike$$anon$2

问题原因:

mapValues方法产生了一个无法序列化的对象

解决方法:

Map.mapValues(xxx).map(identity)

其中identity是把传入参数原封不动返回的函数


Spark启动报错

运行start-all.sh失败后会把启动log记录下来,注意查看log内容

Exception in thread “main” java.lang.NoClassDefFoundError: org/apache/hadoop/conf/Configuration

问题原因:
环境变量没有配置好

解决方法:
1.检查java的环境变量
2.检查spark-env.sh中的环境变量,如果是without hadoop版本的spark,请确认HADOOP_CONF_DIR是否设置正确

 


Hadoop启动报错

hdfs.DFSClient:Exception in createBlockOutputStream java.net.NoRouteToHostException:No route to host

问题原因:
master到slave的网络不通

解决方法:
1. 检查hosts文件/etc/hosts
2. 关闭防火墙sudo /etc/init.d/iptables stop

 

hadoop会把临时文件创建到/tmp下,操作系统会定时清理临时文件,造成hdfs出错,要解决这个问题,就在hadoop/etc/hadoop/core-site.xml中指定hadoop.tmp.dir
<property>
<name>hadoop.tmp.dir</name>
<value>file:/home/hadoop/hdfs/tmp</value>
</property>

 

hdfs错误的万能解决方法:推倒重来

rm -r /tmp/hadoop*以及hdfs目录,然后重启hadoop

本文出自shad0w_walker,转载时请注明出处及相应链接。

本文永久链接: https://www.sdwalker.com/archives/687.html

发表评论

电子邮件地址不会被公开。 必填项已用*标注

返回顶部