栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

win10 python+spark环境搭建

win10 python+spark环境搭建

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

jdk用的环境中已有的

python用的最新的稳定版

 

安装spark

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

这里选择的3.0版本

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

把spark配置到环境变量中

 

安装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.3etchadoop下修改文件

①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:Javajdk1.8.0_73

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

在cmd中运行命令 hdfs namenode -format

进入hadoop-2.8.3sbin目录

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

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

cd D:hadoophadoop-2.8.3

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

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

执行stop-all.cmd关闭Hadoop。 

把hadoop加到环境变量

 

写个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)

执行结果

 

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

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/774953.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号