spark+hadoop错误相关记录:
错误1:java.lang.Exception: Unknown container. Container either has not started ...Yarn
-
在我通过运行spark提交yarn任务,在hadoop平台查看日志报错
java.lang.Exception: Unknown container. Container either has not started ...Yarn
-
在yarn-site.xml配置 注意每个节点都要配置
<property> <name>mapreduce.jobhistory.address</name> <value>linux01:10020</value> </property> <property> <name>mapreduce.jobhistory.webapp.address</name> <value>linux01:19888</value> </property>
linux01为master节点名字
-
在hadoop 的sbin 目录下执行命令
mr-jobhistory-daemon.sh start historyserver
-
通过
jps
查看可以看到JobHistoryServer
错误2:Caused by: org.apache.hadoop.yarn.exceptions.YarnException: Unauthorized request to start container. This token is expired. current time is ....
-
这个提示token过期问题,很有可能是集群中的时间不统一造成的:
# 我发现集群中的一台机器是EDT类型,更改EDT为CST具体操作 mv /etc/localtime /etc/localtime.bak ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime date
-
时间同步 每台机器都执行
yum install ntpdate -y ntpdate time.windows.com
错误3:ERROR Executor: Exception in task 0.0 in stage 3.0 (TID 5)
java.lang.NullPointerException
在windows下单机执行spark程序出现报错,错误定位在 saveAsTextFile 那块。主要是本机C:WindowsSystem32没有hadoop.dll文件
将hadoop下bin目录的hadoop.dll文件复制到C:WindowsSystem32
错误4:java.io.IOException: Could not locate executable nullinwinutils.exe in the Hadoop binaries.
- 或者运行前指定hadoop目录
# 这是因为windows环境变量不兼容的原因 需要下载 winutils.exe 到 C:WindowsSystem32 下
注意错误3和错误4可以直接下载到hadoop的bin 目录下,然后运行代码前面添加如下代码指定hadoop路径
System.setProperty("hadoop.home.dir", "D:\hadoop-2.8.5")