报错如下:

核心报错:Another instance of Derby may have already booted the database /root/metastore_db
Spark 默认内置 Derby 数据库来存放 Hive 元数据(metastore_db);Derby 是单进程数据库,只允许一个进程持有数据库锁。
上一次的 spark‑shell 没有正常关闭,后台残留 Java 进程持有了metastore_db目录下的db.lck锁文件;再次启动 Spark 尝试连接同一个 Derby 库时,获取锁失败抛出异常。
解决步骤(按顺序执行)
步骤 1:关闭所有残留 Spark 进程
运行
bash
#查看Java进程
jps
#杀掉所有SparkSubmit / ApplicationMaster进程
kill -9 进程ID
步骤 2:删除 Derby 产生的锁文件(关键)
运行
bash
#进入metastore_db目录删掉锁文件
cd /root/metastore_db
rm -f db.lck
db.lck就是 Derby 的进程锁文件,进程异常退出后该文件不会自动清除,导致后续启动失败。
重新执行就可以了
