pycharm利用pyspark遠(yuǎn)程連接spark集群的實(shí)現(xiàn)
0 背景
由于工作需要,利用spark完成機(jī)器學(xué)習(xí)。因此需要對(duì)spark集群進(jìn)行操作。所以利用pycharm和pyspark遠(yuǎn)程連接spark集群。這里記錄下遇到的問(wèn)題及方法。
主要是參照下面的文獻(xiàn)完成相應(yīng)的內(nèi)容,但是具體問(wèn)題要具體分析。
1 方法
1.1 軟件配置
spark2.3.3, hadoop2.6, python3
1.2 spark配置
Spark集群的每個(gè)節(jié)點(diǎn)的Python版本必須保持一致。在每個(gè)節(jié)點(diǎn)的$SPARK_HOME/conf/spark-env.sh中添加一行:具體看你的安裝目錄。
export PYSPARK_PYTHON=/home/hadoop/anaconda2/bin/python3
此步驟就是將python添加到spark的配置中。
此時(shí),在服務(wù)器命令行輸入pyspark時(shí),可以正常進(jìn)入spark。
1.3本地配置
1.3.1 首先將spark2.3.3從服務(wù)器拷貝到本地。
注意: 由于我集群安裝的是spark-2.3.3-bin-without-hadoop。但是拷貝到本地后,總是報(bào)錯(cuò)Java gateway process… 。同時(shí)我將hadoop2.6,的包也從服務(wù)器拷貝到本地加載到程序中,同樣報(bào)錯(cuò)。
最后,直接從spark的官網(wǎng)中,下載了spark-2.3.3-bin-hadoop2.6,這回就可以了。
pyspark的版本與spark的版本最好對(duì)應(yīng)。比如pyspark2.3.3,spark2.3.3
# os.environ['SPARK_HOME'] = r"F:\big_data\spark-2.3.3-bin-without-hadoop"(無(wú)用) os.environ['SPARK_HOME'] = r"F:\big_data\spark-2.3.3-bin-hadoop2.6"(有用) # os.environ["HADOOP_HOME"] = r"F:\big_data\hadoop-2.6.5"(無(wú)用) # os.environ['JAVA_HOME'] = r"F:\Java\jdk1.8.0_144"(無(wú)用)
1.3.2
C:\Windows\System32….\hosts(Windows機(jī)器)中加入Spark集群Master節(jié)點(diǎn)的IP與主機(jī)名的映射。需要管理員權(quán)限修改。
其中的spark_cluster就是對(duì)于Master的IP的映射名。(直接寫IP一樣可以,映射名是為了方便)
1.3.3
添加剛剛下載解壓好的spark的python目錄到pycharm的project structure
1.3.4
新建py文件,編輯Edit Configurations添加SPARK_HOME變量
注意: 在實(shí)際中,這個(gè)不添加好像也可以。只需要在程序中加載了spark_home.比如os.envion(…spark…)
2 測(cè)試
import os from pyspark import SparkContext from pyspark import SparkConf # os.environ['SPARK_HOME'] = r"F:\big_data\spark-2.3.3-bin-without-hadoop" os.environ['SPARK_HOME'] = r"F:\big_data\spark-2.3.3-bin-hadoop2.6" # os.environ["HADOOP_HOME"] = r"F:\big_data\hadoop-2.6.5" # os.environ['JAVA_HOME'] = r"F:\Java\jdk1.8.0_144" print(0) conf = SparkConf().setMaster("spark://spark_cluster:7077").setAppName("test") sc = SparkContext(conf=conf) print(1) logData = sc.textFile("file:///opt/spark-2.3.3-bin-without-hadoop/README.md").cache() print(2) print("num of a",logData) sc.stop()
3 參考
PyCharm+PySpark遠(yuǎn)程調(diào)試的環(huán)境配置的方法
Spark下:Java gateway process exited before sending the driver its port number等問(wèn)題
估計(jì)每個(gè)人遇到的問(wèn)題不一樣,但是大同小異,具體問(wèn)題具體分析。
到此這篇關(guān)于pycharm利用pyspark遠(yuǎn)程連接spark集群的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)pyspark遠(yuǎn)程連接spark集群內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Win10搭建Pyspark2.4.4+Pycharm開(kāi)發(fā)環(huán)境的圖文教程(親測(cè))
- windows下pycharm搭建spark環(huán)境并成功運(yùn)行 附源碼
- PyCharm搭建Spark開(kāi)發(fā)環(huán)境的實(shí)現(xiàn)步驟
- pycharm編寫spark程序,導(dǎo)入pyspark包的3中實(shí)現(xiàn)方法
- PyCharm搭建Spark開(kāi)發(fā)環(huán)境實(shí)現(xiàn)第一個(gè)pyspark程序
- PyCharm+PySpark遠(yuǎn)程調(diào)試的環(huán)境配置的方法
- pycharm連接spark教程
相關(guān)文章
Python實(shí)現(xiàn)獲取當(dāng)前目錄下文件名代碼詳解
這篇文章主要介紹了Python實(shí)現(xiàn)獲取當(dāng)前目錄下文件名,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-03-03用uWSGI和Nginx部署Flask項(xiàng)目的方法示例
這篇文章主要介紹了用uWSGI和Nginx部署Flask項(xiàng)目的方法示例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-05-05Python實(shí)現(xiàn)的簡(jiǎn)單萬(wàn)年歷例子分享
這篇文章主要介紹了Python實(shí)現(xiàn)的簡(jiǎn)單萬(wàn)年歷例子分享,需要的朋友可以參考下2014-04-04Python實(shí)現(xiàn)提取語(yǔ)句中的人名
這篇文章主要為大家介紹一個(gè)小工具:可以將語(yǔ)句中的人名提取出來(lái)。文中的示例代碼簡(jiǎn)潔易懂,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2022-01-01Python3之字節(jié)串bytes與字節(jié)數(shù)組bytearray的使用詳解
今天小編就為大家分享一篇Python3之字節(jié)串bytes與字節(jié)數(shù)組bytearray的使用詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-08-08