windows下安装spark + hadoop + pyspark

选择版本

里面有各种依赖的关系
第二种方法:下载:在spark官网的最后一行蓝色,有老版本下载的链接
文件有两个:

Spark runs on Java 8/11, Scala 2.12/2.13, Python 3.6+ and R 3.5+. Python 3.6 support is deprecated as of Spark 3.2.0. Java 8 prior to version 8u201 support is deprecated as of Spark 3.2.0. For the Scala API, Spark 3.2.1 uses Scala 2.12. You will need to use a compatible Scala version (2.12.x).

一些重要的细节

  • hadoop不支持windows,需要安装一个插件,但是这个插件他更新的不太频繁……凑合着用
  • 建议大家用JDK8 + hadoop2.7+ spark3.X + python3.7,各个版本互相有依赖
    • python3.9太高了,建议3.7
    • 对于spark3.X, jdk7太低,jdk12+太高,会出现hadoop成功而spark无法运行,就是支持的最低版本,而不是无脑最新(这个很重要!!!!!!JDK必须是8/11)

安装Java

  • 到官网下载JDK
    • 有一个问题:spark不支持最新的JDK,所以建议直接JDK8(似乎有说法高版本JDK带旧版本JDK?反正不支持就是了)
  • 安装在没有空格的文件夹里面
    • 有空格不然找不到
  • 查看spark对JDK的依赖关系,选择spark版本支持的JDK(spark兼容性的确比较差)
  • 写入JAVA_HOME为java根路径
  • path写入 %JAVA_HOME%/bin
  • cmd执行set PATH=C
  • 退出以后cmd执行:
    • path
    • java -version

如果正常提示Java有环境的话java 环境配置完成

下载hadoop

  • 官网下载hadoop(下载带bin的、binary,大概200M)

  • 写入到没有空格的文件夹里面

  • 选择winutils支持的hadoop和Spark版本

  • 写入HADOOP_HOME为hadoop根路径

  • path写入 %HADOOP%/bin和%HADOOP%/sbin(可选)

  • 下载winutils。替换bin(这个文件很小)

    • 这个软件更新很慢,我看的时候是3.0版本,建议大家用2.7版本
  • cmd执行set PATH=C

  • 退出cmd以后执行:

    • path
    • hadoop
    • start-all(不推荐,因为很多程序都用start-all)
    • JPS

当有5个进程同时启动,hadoop配置完成

下载spark

  • 官网下载spark
    • 有两个版本,第一个版本是带hadoop支持的,sparkXXX - hadoopXXX,还有不支持的,sparkXXX。下载支持的。
  • 写入到没有空格的文件夹里面
  • 写入SPARK_PATH作为spark根路径
  • path写入%SPARK_HOME%/bin
  • cmd执行set PATH=C
  • 复制一份spark.dll到hadoop下面(可能需要,也可能不需要)
  • 退出cmd以后执行:
    • path
    • spark-shell

如果有结果配置完成

报错信息:

  • 如果找不到Path,那么就是JDK环境变量有问题。
  • spark起来是不需要hadoop的,以报错分成两部分:
    • hadoop是否起来,是否配置成功
    • spark是否成功
  • 提示:none/bin/XXX,没有配置成功hadoop_room
  • 最小的内存是512M,不然起不来JVM,windows下配置一些:(查看报错第一行)
    • 如果起来可以配置,
    _JAVA_OPTIONS: -Xmx800M
    
    如果指定不到内存不够会报错
  • 3.0.2版本的scala兼容性似乎有点问题,没有配置成功
  • 如果是找不到类,那么是JDK版本对不上。
    • 提示XX类找不到,那就死JDK的版本低或者高了

PYTHON调用spark

  • pip安装pyspark和findspark
  • 写入%SPARK_HOME%/python和%SPARK_HOME%\python\lib\py4j-0.10.9-src.zip(以防万一)
  • 测试下:
# 必须预先配置findspark
import findspark
findspark.init()


import pyspark
from pyspark.sql import SparkSession

SparkSession.Builder.appName('aaa').getOrCreate()
# 自己找一个文件试试
df = sc.read.csv(r'F:\1.csv', encoding='GBK')
df.show()

执行以后如果成功没有报错,说明正确
提示:

  • 在运行之前退出,有这么几种可能:JDK环境变量没配
    • cmd测试下spark-shell,看是否成功,错误的话可以看报错信息
  • 如果提示:TypeError: an integer is required (got type bytes),那么就是PYTHON版本不对
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值