CDH集群上运行pyspark代码之环境安装——windows配置单机spark环境

windows配置单机spark环境

背景介绍:把python代码修改为pyspark,并在CDH集群上运行。
整个工作的流程大致如下:

  1. windows单机python代码,包括探索性数据分析、特征提取以及模型训练。
  2. 在windows上配置PySpark环境,并将python代码改为pyspark
  3. 配置CDH集群的python环境,提交测试
  4. 在Spark集群上训练模型,以及模型工程化做预测

本文主要介绍第二部分,windows上配置PySpark环境

Windows上配置PySpark测试环境

目的:就是将python代码修改为PySpark后,能够在本地用测试数据测试。
环境:

  • windows 7/10
  • Spark 2.1.0
  • Hadoop 2.6.0

安装Spark

从官网下载Spark遇到了无法下载的问题,从这里下载本质是一样的,选择spark-2.1.0-bin-hadoop2.6.tgz

  • 添加环境变量SPARK_HOME,值为安装路径,如D:\spark
  • 在环境变量Path中增加值:%SPARK_HOME%\bin和%SPARK_HOME%\sbin
  • 如果下载的Spark版本>=2.3,建议进一步添加环境变量- -SPARK_LOCAL_HOSTNAME,值为localhost
  • 进入Spark的配置目录conf,复制一个log4j.properties.template文件并命名为log4j.properties,打开log4j.properties文件,进行如下修改
# log4j.rootCategory=INFO, console
log4j.rootCategory=WARN, console
  • 同样在Spark的配置目录conf,复制一个spark-env.sh.template文件并命名为spark-env.sh,打开并增加以下一行代码
SPARK_LOCAL_IP = 127.0.0.1

安装Hadoop

官网下载Hadoop hadoop-2.6.0.tar.gz,下载winutils

  • 添加环境变量HADOOP_HOME,值为安装路径,如D:\hadoop
  • 在环境变量Path中增加值:%HADOOP_HOME%\bin%HADOOP_HOME%\sbin
  • 进入Hadoop的配置目录etc\hadoop,打开文件hadoop-env.cmd,修改Java的安装路径,如果Java安装在Program Files可以通过设置为PROGRA~1解决空格报错的问题,如
set JAVA_HOME=C:\PROGRA~1\Java\jdk1.8.0_121
  • winutilshadoop 2.6.0的bin文件夹覆盖到Hadoop安装目录的bin文件夹,确保其中含有winutils.exe文件
  • 新建tmp\hive文件夹,如D:\tmp\hive,注意:如果Hadoop放在D盘,就在D盘下新建该文件夹。命令行导航到Hadoop的bin目录,执行以下授权操作,如
winutils.exe chmod -R 777 C:\tmp\hive
  • 后在power-shell中输入hadoop version测试是否安装成功

  • 运行spark-shell验证是否成功,应该输入如下内容
    在这里插入图片描述

使用PySpark开发

python环境

把Spark安装路径下的python\pyspark文件夹复制到系统Python的包文件夹下,例如在Anaconda环境中,复制到D:\Anaconda3\Lib\site-packages目录下

安装Python包py4j,在命令行运行pip install py4j,或者离线安装
验证PySpark配置成功,在命令行输入pyspark,应该输出如下内容
在这里插入图片描述

在PyCharm中使用PySpark

测试python代码

from pyspark import SparkContext
from pyspark.sql import SparkSession
from pyspark.sql import Row

import pyspark
import datetime
import json
import os
import sys


spark_name = os.environ.get('SPARK_HOME', None)
if not spark_name:
    raise ValueError('spark环境没有配置好')


data = []

data.append([1480,  1, 1, '0', 'test'])

schema = ['id', 'class_id', 'grade_id', 'classes', 'name']

spark = SparkSession.builder.master("local").appName(
    "test").enableHiveSupport().getOrCreate()
spark.sparkContext.setLogLevel('ERROR')

df_test = spark.createDataFrame(data, schema)
df_test.show()

设置程序运行配置,打开Run->Edit Configuration,按照如下图所示内容新建一个配置,其中环境变量必须加入SPARK_HOMEHADOOP_HOME以及SPARK_LOCAL_HOSTNAME
在这里插入图片描述

参考

Windows平台下单机Spark环境搭建

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值