2016-03-30 19 views
6

Üç VM, 1x Master (tek başına), 2x işçiyle w/8G RAM, 2CPU üzerinde Spark 1.6.0 kullanıyorum.Jupyter & PySpark: Birden fazla not defteri nasıl çalıştırılır

aşağıda çekirdek konfigürasyonu kullanıyorum:

{ 
"display_name": "PySpark ", 
"language": "python3", 
"argv": [ 
    "/usr/bin/python3", 
    "-m", 
    "IPython.kernel", 
    "-f", 
    "{connection_file}" 
], 
"env": { 
    "SPARK_HOME": "<mypath>/spark-1.6.0", 
    "PYTHONSTARTUP": "<mypath>/spark-1.6.0/python/pyspark/shell.py", 
    "PYSPARK_SUBMIT_ARGS": "--master spark://<mymaster>:7077 --conf spark.executor.memory=2G pyspark-shell --driver-class-path /opt/vertica/java/lib/vertica-jdbc.jar" 
} 
} 

Şu anda, bu işleri. Pyspark kabuğundaki gibi kıvılcım içeriğini sc & sqlContext kullanabilirim.

Birden çok not defteri kullandığımda sorun geliyor: Benim kıvılcım master'ımda iki tane 'pyspark-shell' uygulaması görüyorum, bu da mantıklı, ancak sadece bir seferde çalışabiliyor. Fakat burada, 'koşmak' bir şeyi yürütmek anlamına gelmez, bir defterde hiçbir şey yapmadığım halde bile, bu 'koşma' olarak gösterilir. Bunu göz önünde bulundurarak, kaynaklarımı defterler arasında paylaşamıyorum, ki bu oldukça üzücü (ikinciyi çalıştırmak için şu anda ilk kabuğunu (= defter çekirdeği) öldürmem gerekiyor).

Nasıl yapılacağı hakkında herhangi bir fikriniz varsa, söyle! Ayrıca, çekirdeklerle çalışmanın yolunun 'en iyi uygulama' olup olmadığından emin değilim, zaten birlikte çalışmak için kıvılcım & jupyter ayarlamaya çalışırken sorun yaşadım.

Thx tüm

+0

@AlbertoBonsanto? :) – eliasah

+0

@eliasah bu konuda emin değilim. Bazı tavsiyeleri almak için hala harika: p – pltrdy

+1

Kıvılcımı paylaşmayı mı düşünüyorsunuz? – eliasah

cevap

0

sorun metastore (Derby) depolamak için Spark tarafından kullanılan bir veri tabanıdır. Derby, hafif bir veritabanı sistemidir ve aynı anda yalnızca bir Spark örneğini çalıştırabilir. Çözüm, çoklu örnekler (postgres, mysql ...) ile başa çıkmak için başka bir veritabanı sistemi kurmaktır. Örneğin, postgre DB'yi kullanabilirsiniz.

  • kıvılcımla postgres kavanoz Ekle/kavanoz
  • kıvılcım için bir kullanıcı, şifre ve db ekle
  • makinenizde
  • üzerinde postgres yükleyin kıvılcım Konfigürasyon bir yapılandırma dosyası (kovanı-site.xml dosyasını) ekleyin

    # download postgres jar 
    wget https://jdbc.postgresql.org/download/postgresql-42.1.4.jar 
    
    # install postgres on your machine 
    pip install postgres 
    
    # add user, pass and db to postgres 
    psql -d postgres -c "create user hive" 
    psql -d postgres -c "alter user hive with password 'pass'" 
    psql -d postgres -c "create database hive_metastore" 
    psql -d postgres -c "grant all privileges on database hive_metastore to hive" 
    
    01:/postgres içinde kovanı bir linux kabuğu üzerinde

Örnek (kovan-site.xml dosyasını değerlerinizin bağlıdır)

kovan-site.xml dosyasını: O eşzamanlılık sorunlarını çözecek nasıl

<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>pass</value> 
</property> 

</configuration>