Python pycharm(windows版本)部署spark環境


參考博文:
https://www.cnblogs.com/nucdy/p/6776187.html

一、 部署本地spark環境

1.下載並安裝好jdk1.8,配置完環境變量。

2.Spark環境變量配置

  • 下載:http://spark.apache.org/downloads.html

    我下載的是spark-2.3.0-bin-hadoop2.7.tgz,spark版本是2.3,對應的hadoop版本是2.7.

  • 解壓
  • 配置系統環境變量:

    將F:\spark-2.3.0-bin-hadoop2.7\bin添加到系統Path變量,同時新建SPARK_HOME變量,變量值為:F:\spark-2.3.0-bin-hadoop2.7

3.Hadoop相關包的安裝(參考:https://www.cnblogs.com/wuxun1997/p/6847950.html ;https://blog.csdn.net/kaluoye/article/details/77984882

 spark是基於hadoop之上的,運行過程中會調用相關hadoop庫,如果沒配置相關hadoop運行環境,會提示相關出錯信息,雖然也不影響運行。

    我下載的是hadoop-2.7.6.tar.gz.

  • 解壓
  • 配置系統環境變量:

    將相關庫添加到系統Path變量中:F:\hadoop-2.7.6\bin;同時新建HADOOP_HOME變量,變量值為:F:\hadoop-2.7.6。

    下載window下適應的包,包含了hadoop.dll和winutils。資源:http://pan.baidu.com/s/1jHVuaxg,下載解壓后全部拷貝到hadoop解壓后對應的bin文件夾。

  • 配置hadoop的四個XML文件,我的路徑為F:\hadoop-2.7.6\etc目錄下

core-site.xml

<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://localhost:9000</value>
    </property>    
</configuration>

hdfs-site.xml

<configuration>
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
    <property>    
        <name>dfs.namenode.name.dir</name>    
        <value>file:/hadoop/data/dfs/namenode</value>    
    </property>    
    <property>    
        <name>dfs.datanode.data.dir</name>    
        <value>file:/hadoop/data/dfs/datanode</value>  
    </property>
</configuration>

mapred-site.xml

<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
</configuration>

yarn-site.xml

<configuration>
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    <property>
        <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
        <value>org.apache.hadoop.mapred.ShuffleHandler</value>
    </property>
</configuration>
  • 啟動windows命令行窗口,進入hadoop-2.7.6\bin目錄,執行下面2條命令,先格式化namenode再啟動hadoop
F:\hadoop-2.7.6\bin>hadoop namenode -format

  此步會報錯:Hadoop Error: JAVA_HOME is incorrectly set.

  原因:由於我的jdk安裝在c盤的programe files 目錄下,JAVA_HOME 的值有空格,啟動不了,可以把JAVA_HOME 改成C:\progra~1\XXX

  (參考:https://blog.csdn.net/wen3011/article/details/54907731)

  • 進入hadoop的sbin目錄,運行start-all.cmd
F:\hadoop-2.7.6\sbin>start-all.cmd

  

F:\hadoop-2.7.6\sbin>jps
4944 DataNode
5860 NodeManager
3532 Jps
7852 NameNode
7932 ResourceManager

  通過jps命令可以看到4個進程都拉起來了,到這里hadoop的安裝啟動已經完事了。

  接着我們可以用瀏覽器到localhost:8088看mapreduce任務,到localhost:50070->Utilites->Browse the file system看hdfs文件。

  如果重啟hadoop無需再格式化namenode,只要stop-all.cmd再start-all.cmd就可以了。

  上面拉起4個進程時會彈出4個窗口:DataNode;NameNode;NodeManager;ResourceManager,可以查看詳細。

二、Python環境

  Spark提供了2個交互式shell, 一個是pyspark(基於python), 一個是spark_shell(基於Scala). 這兩個環境其實是並列的, 並沒有相互依賴關系, 所以如果僅僅是使用pyspark交互環境, 而不使用spark-shell的話, 甚至連scala都不需要安裝.

  • 啟動pyspark驗證

    在windows下命令行中啟動pyspark,如圖:

三、在pycharm中配置開發環境   

1.配置Pycharm

打開PyCharm,創建一個Project。然后選擇“Run” ->“Edit Configurations”

 選擇 “Environment variables” 增加SPARK_HOME目錄與PYTHONPATH目錄。

  • SPARK_HOME:Spark安裝目錄

  • PYTHONPATH:Spark安裝目錄下的Python目錄

2.測試程序

# -*- coding: utf-8 -*-
__author__ = 'kaylee'

import os
import sys

os.environ['SPARK_HOME']="F:\spark-2.3.0-bin-hadoop2.76"
sys.path.append("F:\spark-2.3.0-bin-hadoop2.7\python")

try:
    from pyspark import SparkContext
    from pyspark import SparkConf
    print('Successfully imported Spark Modules')
except ImportError as e:
    print('Can not import Spark Modules', e)
sys.exit(1)

如果程序可以正常輸出: "Successfully imported Spark Modules"就說明環境已經可以正常執行。

注意,有一步很容易漏:

Settings->Project Structure->Add Content Root->F:\spark-2.3.0-bin-hadoop2.7\python\lib\py4j-0.10.6-src.zip

 

注意:

可能會報沒有 py4j ( 它是python用來連接java的中間件)

可以用命令安裝:pip install py4j


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM