2016-03-30 12 views
6

मैं स्पार्क 1.6.0 का उपयोग तीन वीएम, 1 एक्स मास्टर (स्टैंडअलोन), 2 एक्स श्रमिक डब्ल्यू/8 जी रैम, 2 सीसीयू प्रत्येक पर कर रहा हूं।जुपीटर और पायस्पार्क: एकाधिक नोटबुक कैसे चलाएं

मैं नीचे गिरी विन्यास का उपयोग कर रहा:

{ 
"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" 
} 
} 

वर्तमान में, यह काम करता है। मैं स्पार्क संदर्भ sc & sqlContext आयात के बिना, पाइस्पार्क खोल में उपयोग कर सकता हूं।

समस्या तब आती है जब मैं एकाधिक नोटबुक का उपयोग करता हूं: मेरे स्पार्क मास्टर पर मैं दो 'pyspark-shell' ऐप्स देखता हूं, जो कि थोड़े समझ में आता है, लेकिन केवल एक ही समय में चला सकता है। लेकिन यहां, 'रनिंग' का मतलब कुछ भी निष्पादित करने का नहीं है, भले ही मैं नोटबुक पर कुछ भी नहीं चलाता, यह 'चल रहा' के रूप में दिखाया जाएगा। यह देखते हुए, मैं अपने संसाधनों को नोटबुक के बीच साझा नहीं कर सकता, जो काफी दुखी है (मुझे वर्तमान में दूसरा खोलने के लिए पहले खोल (= नोटबुक कर्नेल) को मारना है)।

यदि आपके पास ऐसा करने के बारे में कोई विचार है, तो मुझे बताएं! इसके अलावा, मुझे यकीन नहीं है कि जिस तरह से मैं कर्नेल के साथ काम कर रहा हूं वह 'सर्वोत्तम अभ्यास' है, मुझे पहले से ही स्पार्क & जुपीटर को एक साथ काम करने में परेशानी थी।

Thx सब

+0

@AlbertoBonsanto कि कैसे संगामिति समस्याओं का समाधान होगा? :) – eliasah

+0

@eliasah यह निश्चित रूप से नहीं होगा। कुछ सलाह पाने के लिए अभी भी बहुत अच्छा है: पी – pltrdy

+1

क्या आप स्पार्क कॉन्टेक्स्ट साझा करना चाहते हैं? – eliasah

उत्तर

0

समस्या स्पार्क द्वारा प्रयोग किया जाता metastore (डर्बी) स्टोर करने के लिए डेटाबेस है। डर्बी एक हल्के वजन डेटाबेस सिस्टम है और एक समय में केवल एक स्पार्क उदाहरण चला सकता है। समाधान बहु उदाहरणों (पोस्टग्रेस, mysql ...) से निपटने के लिए एक और डेटाबेस सिस्टम स्थापित करना है।

उदाहरण के लिए, आप पोस्टग्रेस डीबी का उपयोग कर सकते हैं।

  • चिंगारी में postgres जार जोड़ें/जार
  • चिंगारी conf में एक कॉन्फ़िग फ़ाइल (छत्ता-site.xml) जोड़ें
  • अपने मशीन
  • पर postgres स्थापित चिंगारी के लिए एक उपयोगकर्ता, पासवर्ड और डाटाबेस जोड़े

    # 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 में छत्ता एक linux खोल पर (छत्ता-site.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>pass</value> 
</property> 

</configuration> 
संबंधित मुद्दे