win10 python+spark环境搭建

记录一下此次python+spark开发环境的搭建

jdk用的环境中已有的

python用的最新的稳定版

 

安装spark

win10 python+spark环境搭建_第1张图片

 选择要下载的spark版本,官网会提醒需要的hadoop版本

这里选择的3.0版本

下载完解压即可,注意解压路径不要有空格

把spark配置到环境变量中

win10 python+spark环境搭建_第2张图片

 

安装hadoop

参考:Windows上安装运行Hadoop - pcwen.top - 博客园

下载地址:Index of /dist/hadoop/common

根据参考博客给的github地址

https://github.com/steveloughran/winutils

这里选择的是git项目中有的,并且符合spark版本的2.8.3版本的hadoop

在路径hadoop-2.8.3\etc\hadoop下修改文件

①core-site.xml(配置默认hdfs的访问端口)


    
        fs.defaultFS
        hdfs://localhost:9000
        

②hdfs-site.xml(设置复制数为1,即不进行复制。namenode文件路径以及datanode数据路径。)


    
        dfs.replication
        1
    
        
        dfs.namenode.name.dir    
        file:/hadoop/data/dfs/namenode    
        
        
        dfs.datanode.data.dir    
        file:/hadoop/data/dfs/datanode  
    

③将mapred-site.xml.template 名称修改为 mapred-site.xml 后再修改内容(设置mr使用的框架,这里使用yarn)


    
        mapreduce.framework.name
        yarn
    

④yarn-site.xml(这里yarn设置使用了mr混洗)


    
        yarn.nodemanager.aux-services
        mapreduce_shuffle
    
    
        yarn.nodemanager.aux-services.mapreduce.shuffle.class
        org.apache.hadoop.mapred.ShuffleHandler
    

⑤hadoop-env.cmd

设置JAVA_HOME的值(如果这里使用了带空格的路径将会报错!)

set JAVA_HOME=C:\Java\jdk1.8.0_73

进入hadoop-2.8.3\bin目录,格式化hdfs

在cmd中运行命令 hdfs namenode -format

进入hadoop-2.8.3\sbin目录

在cmd中运行命令start-all.cmd

出现找不到hadoop文件的错误时,可以在start-all.cmd文件上方加入hadoop文件所在位置目录

cd D:\hadoop\hadoop-2.8.3

7.在浏览器地址栏中输入:http://localhost:8088查看集群状态。

8.在浏览器地址栏中输入:http://localhost:50070查看Hadoop状态。

win10 python+spark环境搭建_第3张图片

执行stop-all.cmd关闭Hadoop。 

把hadoop加到环境变量

win10 python+spark环境搭建_第4张图片

 

写个demo试试

#加这两行是因为运行报错 “py4j.protocol.Py4JError: org.apache.spark.api.python.PythonUtils.getEncryptionEnabled”
import findspark
findspark.init()
###
from pyspark import SparkConf, SparkContext

if __name__ == '__main__':
    conf = SparkConf().setAppName("aaa").setMaster("local")
    sc = SparkContext(conf=conf)
    # 访问本地文件
    inputFile = "file:///D:/TestFile/test.txt"
    #文件内容
    #first line
    #second line
    #third line
    #
    textFile = sc.textFile(inputFile)
    wordCount = textFile.flatMap(lambda line: line.split(" ")).map(lambda word: (word, 1)).reduceByKey(
        lambda a, b: a + b)
    wordCount.foreach(print)

执行结果

win10 python+spark环境搭建_第5张图片

 

以上是参考网上的一些博客完成的操作,还有不少不明白的地方需要研究,不过demo跑起来就算成功。

你可能感兴趣的:(大数据,python,spark)