大資料筆記spark篇(二):pyspark的安裝
開篇
關於spark的配置其實沒有必要詳細地寫,這邊我放上我學習參考的廈門大學的部落格,拖了n年,我總算把單機版的spark給安裝上了。
環境變數
export JAVA_HOME=/usr/lib/jvm/default-java
export HADOOP_HOME=/usr/local/hadoop
export SPARK_HOME=/usr/local/spark
export PYTHONPATH=$SPARK_HOME/python:$SPARK_HOME/python/lib/py4j-0.10.4-src.zip:$PYTHONPATH
export PYSPARK_PYTHON=python3
export PATH=$HADOOP_HOME/bin:$SPARK_HOME/bin:$PATH
設定好我們是可以直接使用pyspark命令啟動我們的互動介面的
執行模式
Spark的執行模式取決於傳遞給SparkContext的Master URL的值。Master URL可以是以下任一種形式:
* local 使用一個Worker執行緒本地化執行SPARK(完全不併行)
* local[*] 使用邏輯CPU個數數量的執行緒來本地化執行Spark
* local[K] 使用K個Worker執行緒本地化執行Spark(理想情況下,K應該根據執行機器的CPU核數設定)
* spark://HOST:PORT 連線到指定的Spark standalone master。預設埠是7077.
* yarn-client 以客戶端模式連線YARN叢集。叢集的位置可以在HADOOP_CONF_DIR 環境變數中找到。
* yarn-cluster 以叢集模式連線YARN叢集。叢集的位置可以在HADOOP_CONF_DIR 環境變數中找到。
* mesos://HOST:PORT 連線到指定的Mesos叢集。預設介面是5050。
在Spark中採用本地模式啟動pyspark的命令主要包含以下引數:
–master:這個引數表示當前的pyspark要連線到哪個master,如果是local[*],就是使用本地模式啟動pyspark,其中,中括號內的星號表示需要使用幾個CPU核心(core);
–jars: 這個引數用於把相關的JAR包新增到CLASSPATH中;如果有多個jar包,可以使用逗號分隔符連線它們;
比如,要採用本地模式,在4個CPU核心上執行pyspark:
cd /usr/local/spark
./bin/pyspark --master local[4]
cd /usr/local/spark
./bin/pyspark --master local[4] --jars code.jar
Spark獨立應用程式程式設計
from pyspark import SparkContext
sc = SparkContext( 'local', 'test')
logFile = "file:///usr/local/spark/README.md"
logData = sc.textFile(logFile, 2).cache()
numAs = logData.filter(lambda line: 'a' in line).count()
numBs = logData.filter(lambda line: 'b' in line).count()
print('Lines with a: %s, Lines with b: %s' % (numAs, numBs))
儲存後直接python執行就可以了