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

posted @ 2018-05-17 17:40  始怡  阅读(2060)  评论(0编辑  收藏  举报