Spark启动失败 Error initializing SparkContext | FileNotFoundException

在尝试启动spark-shell时遇到因HDFS安全模式无法退出导致的错误。问题源于目录丢失,尝试关闭安全模式、创建目录、修改配置等方法均未成功。最终解决方案是删除HDFS的数据和日志,重新格式化,并手动创建Spark所需的日志目录。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题描述:

在启动spark-shell进行交互式编程,使用命令spark-shell,出现以下报错

 因为命令太简洁,我可以确定命令没有问题。

问题解决过程: 

省流:

集群规模小,导致无法退出safemode,即使暂时/永久关闭也不行。

所以直接备份数据文件到本地(因为没多少),然后删除HDFS的数据和日志,并重新格式化

然后创建spark提示的日志存放目录(这是在安装时设置的,现在重新手动创建)

1、查看错误:

阅读文章:

因为要钱,所以只是发现一个思路,决定试一下,手动创建错误提示中的目录

(这个应该是spark安装时就设置的目录,我猜测:hdfs不知道为什么进去安全模式,目录也丢失,导致无法spark初始化)

2、尝试:在NameNode的网页管理界面上手动创建目录(可跳过

翻译一下,namenode真的进入了安全模式

3、尝试:在NameNode的shell环境手动创建目录(可跳过

很明显失败

4、尝试:暂时关闭安全模式(可跳过

失败了,我不李姐

hdfs dfsadmin -safemode leave

5、尝试:永久关闭安全模式(可跳过

关闭集群,编辑hdfs-site.xml,添加以下内容,同步到集群中,重启集群

又失败了...............

6、关闭hadoop,删除日志和数据文件,格式化hdfs。再创建目录:

所有集群的机子上都得删除data和log,防止它自动复原。

因为这个数据存放和日志在哪里,每个集群都不一样,得看自己的配置(我学习的是尚硅谷的hadoop学习视频,请自己参考)

创建成功

可以进入spark-shell了 

最后:

为什么要删除data和log:

        因为数据中有版本号,需要删除所有的数据和日志。

为什么安全模式无法关闭:

        集群可能是因为比较小,然后有数据缺失,导致了某个逻辑误区,没办法关闭了safemode,无论是用命令还是更改配置,都是无效。至于其中的原理暂不清楚,我没找到关键信息。

为什么之前能用,突然就失去了spark日志存放目录:

我不知道。

我曾经因为没有关闭spark,而直接关闭虚拟机,导致centos连ping都没办法。然后只能重新克隆一份相似的虚拟机,ip和设置,集群才重新能用。

所以我上次特别注意了,先关闭spark,后再关闭hadoop,最后关闭虚拟机,所以我不李姐,我作业还没写完,大写的惨

各位有好的解决方法可以私聊告诉我,或者自己写篇文章发出来,私聊或者评论。

(我不想再经历这份痛苦了,要是是在公司环境,上面有什么重要文件,那就真成被告了。)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值