默認情況下,Spark在Hive和Hadoop之上運行,並將其數據庫轉換指令存儲在Derby中 - 一個輕量級數據庫系統。 Derby一次只能運行一個Spark實例,因此當您啓動第二個筆記本並開始運行Spark命令時,它會崩潰。
爲了解決這個問題,您可以將Spark的Hive安裝連接到Postgres而不是Derby。
如果您尚未安裝,請安裝postgres。
然後下載postgresql-9.4.1212.jar
從https://jdbc.postgresql.org/download.html
移動這個.jar文件到/libexec/jars/
目錄,在星火安裝(假設你正在運行的Java 1.8又名java8)。
例如:/usr/local/Cellar/apache-spark/2.0.1/
(在Mac上,你可以找到在哪裏火花通過在命令行中鍵入brew info apache-spark
安裝)
接下來在/libexec/conf
目錄爲您星火安裝創建蜂房的site.xml。
例如:/usr/local/Cellar/apache-spark/2.0.1/libexec/conf
這可以通過文本編輯器來完成 - 只要保存文件以「.XML」的延伸。
蜂房site.xml中應包含以下內容:
<configuration>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:postgresql://localhost:5432/hive_metastore</value>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>org.postgresql.Driver</value>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>hive</value>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>mypassword</value>
</property>
</configuration>
「蜂巢」和「輸入mypassword」可以與任何對你有意義的更換 - 但必須與下一步相匹配。
最後創建Postgress一個用戶名和密碼:在命令行中運行以下命令 -
psql
CREATE USER hive;
ALTER ROLE hive WITH PASSWORD 'mypassword';
CREATE DATABASE hive_metastore;
GRANT ALL PRIVILEGES ON DATABASE hive_metastore TO hive;
\q
多數民衆贊成它,你就大功告成了。 Spark現在應該同時運行多個Jupyter筆記本。