Spark&Hadoop报错合集
准备把分布式编程中遇到的问题以及本人解决该问题的方法记录下来。持续更新
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