По умолчанию Spark работает поверх Hive и Hadoop и хранит свои инструкции по преобразованиям базы данных в Derby — облегченной системе баз данных. Derby может запускать только один экземпляр Spark за раз, поэтому, когда вы запускаете второй блокнот и запускаете команды Spark, происходит сбой.
Чтобы обойти это, вы можете подключить установку Spark Hive к Postgres вместо Derby.
Заварите установку postgres, если она у вас еще не установлена.
Затем загрузите postgresql-9.4.1212.jar
(при условии, что вы используете java 1.8, также известную как java8) с https://jdbc.postgresql.org/download.html
Переместите этот файл .jar в каталог /libexec/jars/
для вашей установки Spark.
ex: /usr/local/Cellar/apache-spark/2.0.1/
(на Mac вы можете узнать, где установлен Spark, набрав brew info apache-spark
в командной строке)
Затем создайте файл hive-site.xml в каталоге /libexec/conf
для вашей установки Spark.
ex: /usr/local/Cellar/apache-spark/2.0.1/libexec/conf
Это можно сделать с помощью текстового редактора — просто сохраните файл с расширением «.xml».
hive-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>
«hive» и «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 одновременно.
person
coradek
schedule
06.02.2017