记录一下此次python+spark开发环境的搭建
jdk用的环境中已有的
python用的最新的稳定版
安装spark
选择要下载的spark版本,官网会提醒需要的hadoop版本
这里选择的3.0版本
下载完解压即可,注意解压路径不要有空格
把spark配置到环境变量中
安装hadoop
参考:Windows上安装运行Hadoop - pcwen.top - 博客园
下载地址:Index of /dist/hadoop/common
根据参考博客给的github地址
https://github/steveloughran/winutils
这里选择的是git项目中有的,并且符合spark版本的2.8.3版本的hadoop
在路径hadoop-2.8.3\etc\hadoop下修改文件
①core-site.xml(配置默认hdfs的访问端口)
<configuration> <property> <name>fs.defaultFS</name> <value>hdfs://localhost:9000</value> </property> </configuration>
②hdfs-site.xml(设置复制数为1,即不进行复制。namenode文件路径以及datanode数据路径。)
<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.template 名称修改为 mapred-site.xml 后再修改内容(设置mr使用的框架,这里使用yarn)
<configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> </configuration>
④yarn-site.xml(这里yarn设置使用了mr混洗)
<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>
⑤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状态。
执行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跑起来就算成功。
更多推荐
win10 python+spark环境搭建
发布评论