100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > windows10下python开发spark应用的环境搭建

windows10下python开发spark应用的环境搭建

时间:2024-05-30 23:58:39

相关推荐

windows10下python开发spark应用的环境搭建

环境搭建主要涉及到3方面,第1是安装,第2是环境变量的配置,第3是验证安装和配置是否成功,总的涉及到以下5个部分。

环境变量配置是在 此电脑 -》 属性 -》 高级系统设置 -》 高级 -》 环境变量 中最下面的系统环境变量中 可以进行设置。

1、java

从官网下载,这里下载的是1.8.0_121版。

环境变量配置:

新增JAVA_HOMEC:\Program Files\Java\jdk1.8.0_121

CLASSPATH 加上 %JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar

PATH 中加上 %JAVA_HOME%\bin 和%JAVA_HOME%\jre\bin

验证:

C:\Users\Administrator>java -versionjava version "1.8.0_121"Java(TM) SE Runtime Environment (build 1.8.0_121-b13)Java HotSpot(TM) 64-Bit Server VM (build 25.121-b13, mixed mode)

2、spark

从spark官网上下载了spark-2.3.4-bin-hadoop2.7.tgz,直接解压到D盘

环境变量:

新增SPARK_HOME D:\spark-2.3.4-bin-hadoop2.7

在Path 中 增加%SPARK_HOME%\bin

切换到D:\spark-2.3.4-bin-hadoop2.7\conf 目录,把文件log4j.properties.template 复制一份,文件名修改为log4j.properties,打开log4j.properties 把这行log4j.rootCategory=INFO, console 中的INFO 改为 WARN,保存,这样在运行程序时,只有WARN级别的消息才会输出到控制台,否则会有大量的INFO信息输出。

3、hadoop

从官网下载hadoop,这里下载的是hadoop-2.7.3.tar.gz 版本,直接解压到 D盘就可以。

然后需要下载hadoop支持模块,下载地址:Introduction-to-Data-Science/hadoop.dll-and-winutils.exe-for-hadoop2.7.3-on-windows_X64-master.zip at master · LemenChao/Introduction-to-Data-Science · GitHub

把其中的 hadoop.dll文件放到C:\Windows\System32 目录下

把winutils.exe 文件放到D:\hadoop-2.7.3\bin 目录下。

注意,以上所有目录都要按照实际的目录来写,你的目录可能和我上面写的不同。

环境变量:

新建HADOOP_HOMEd:\hadoop-2.7.3

在Path中添加%HADOOP_HOME\bin%

4、python

首先要安装好python,我安装的是 3.6.2

C:\Users\Administrator>pythonPython 3.6.2rc2 (v3.6.2rc2:8913311, Jul 8 , 02:12:29) [MSC v.1900 64 bit (AMD64)] on win32Type "help", "copyright", "credits" or "license" for more information.>>>

为了让python可以开发spark应用程序,需要把spark安装文件中的支持文件,拷贝到python的相关目录,也就是把

D:\spark-2.3.4-bin-hadoop2.7\python 中的pyspark目录,拷贝到C:\Python36\Lib\site-packages 这个目录下(我的python安装路径是 C:\Python36)。

然后,通过 pip install py4j 命令,装 py4j 这个模块:

C:\Users\Administrator>pip install py4jCollecting py4jUsing cached /packages/04/de/2d314a921ef4c20b283e1de94e0780273678caac901564df06b948e4ba9b/py4j-0.10.8.1-py2.py3-none-any.whlInstalling collected packages: py4jSuccessfully installed py4j-0.10.8.1

这个Py4J 是一个用 Python 和 Java 编写的库,通过 Py4J,Python程序 能够动态访问 Java虚拟机 中的 Java对象,Java程序 也能够回调 Python对象。

最后,还需要安装一个 psutil模块(安装命令为 pip install psutil),这个模块能更好的支持spark的程序的运行(如果没有安装,在运行spark应用程序时 会提示UserWarning: Please install psutil to have better support with spilling)。

5、验证

分2步,首先是直接用pyspark来登录,然后编写交互式代码来实现wordcount,然后是直接在python中编写spark代码,这2种方式会有些不同。

为了验证,需要先在D盘下创建一个文件 word.txt,内容如下:

hello hadoophadoop spark pythonflink storm sparkmaster slavefirstsecond thridkafka scikit-learnflumehive spark-streaminghbase

(1)pyspark

输入pyspark后,进入spark环境,输出的最后1行:SparkSession available as 'spark' 的意思是说,进入spark环境后,系统会自动创建一个类型为 SparkSession 的 spark对象,可以直接引用。

C:\Users\Administrator>pysparkPython 3.6.2rc2 (v3.6.2rc2:8913311, Jul 8 , 02:12:29) [MSC v.1900 64 bit (AMD64)] on win32Type "help", "copyright", "credits" or "license" for more information.19/11/06 16:23:28 WARN Utils: Service 'SparkUI' could not bind on port 4040. Attempting port 4041.Welcome to____ __/ __/__ ___ _____/ /___\ \/ _ \/ _ `/ __/ '_//__ / .__/\_,_/_/ /_/\_\ version 2.3.4/_/Using Python version 3.6.2rc2 (v3.6.2rc2:8913311, Jul 8 02:12:29)SparkSession available as 'spark'.

>>> f = spark.sparkContext.textFile("d:\\word.txt")>>> wordcount = f.flatMap(lambda w: w.split(" ")).map(lambda word: (word,1)).reduceByKey(lambda a,b: a+b)>>> wordcount.foreach( print )[Stage 4:> (0 + 2) / 2]('hadoop', 2)('python', 1)('storm', 1)('master', 1)('thrid', 1)('scikit-learn', 1)('hive', 1)('spark-streaming', 1)('hello', 1)('spark', 2)('flink', 1)('slave', 1)('first', 1)('second', 1)('kafka', 1)('flume', 1)('hbase', 1)>>>

(2)python

进入python后,并不会像上面那么创建spark对象,因为现在并没有进入到spark环境中,只是调用spark的功能,所以要通过

from pyspark import SparkContext 先引入SparkContext 类型,然后sc = SparkContext( 'local', 'test') 来创建一个sc对象,在通过sc对象的 textFile 方法来读取文件。

C:\Users\Administrator>pythonPython 3.6.2rc2 (v3.6.2rc2:8913311, Jul 8 , 02:12:29) [MSC v.1900 64 bit (AMD64)] on win32Type "help", "copyright", "credits" or "license" for more information.>>> from pyspark import SparkContext>>> sc = SparkContext( 'local', 'WordCount')Setting default log level to "WARN".To adjust logging level use sc.setLogLevel(newLevel). For SparkR, use setLogLevel(newLevel).>>> textFile = sc.textFile("d:\\word.txt")>>> wordCount = textFile.flatMap(lambda line: line.split(" ")).map(lambda word: (word,1)).reduceByKey(lambda a, b : a + b)>>> wordCount.foreach(print)[Stage 0:> (0 + 1) / 1]D:\spark-2.3.4-bin-hadoop2.7\python\lib\pyspark.zip\pyspark\shuffle.py:59: UserWarning: Please install psutil to have better support with spilling[Stage 1:> (0 + 1) / 1]D:\spark-2.3.4-bin-hadoop2.7\python\lib\pyspark.zip\pyspark\shuffle.py:59: UserWarning: Please install psutil to have better support with spilling('hello', 1)('hadoop', 2)('spark', 2)('python', 1)('flink', 1)('storm', 1)('master', 1)('slave', 1)('first', 1)('second', 1)('thrid', 1)('kafka', 1)('scikit-learn', 1)('flume', 1)('hive', 1)('spark-streaming', 1)('hbase', 1)>>>

至此,python开发spark程序的环境,就搭建好了。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。