我正在尝试在linux服务器上运行配置单元,但不断出现以下错误:
Caused by: ERROR XSDB6: Another instance of Derby may have already booted the database /home/usr/metastore_db
怎么了?我试着做:
ps aux | grep spark-shell ps aux | grep metastore ps aux | grep derby
但没有显示任何过程。原因是什么?
apeeds0o1#
我发现这是因为spark shell的多个其他示例已经在运行并且已经持有derby db,所以当我启动另一个spark shell并使用rdd.todf()在其上创建Dataframe时,它抛出了错误:解决方案:我运行ps命令来查找spark shell的其他示例:ps-ef | grepSpark壳我用kill命令杀了他们:kill-9 spark shell processid(示例:kill-9 4848)在所有的sparkshell示例都消失之后,我启动了一个新的sparkshell并重新运行了我的Dataframe函数,它运行得很好:)
sdnqo3pr2#
问题是您的hive-site.xml上的以下配置之一存在,或者您没有将文件复制到spark的正确位置avax.jdo.option.connectionurljavax.jdo.option.connectiondrivername配置单元.metastore.uris配置单元.metastore.local配置单元.metastore.warehouse.dir配置单元站点.xm
2条答案
按热度按时间apeeds0o1#
我发现这是因为spark shell的多个其他示例已经在运行并且已经持有derby db,所以当我启动另一个spark shell并使用rdd.todf()在其上创建Dataframe时,它抛出了错误:
解决方案:
我运行ps命令来查找spark shell的其他示例:
ps-ef | grepSpark壳
我用kill命令杀了他们:
kill-9 spark shell processid(示例:kill-9 4848)
在所有的sparkshell示例都消失之后,我启动了一个新的sparkshell并重新运行了我的Dataframe函数,它运行得很好:)
sdnqo3pr2#
问题是您的hive-site.xml上的以下配置之一存在,或者您没有将文件复制到spark的正确位置
avax.jdo.option.connectionurl
javax.jdo.option.connectiondrivername
配置单元.metastore.uris
配置单元.metastore.local
配置单元.metastore.warehouse.dir
配置单元站点.xm