前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >pyspark on hpc

pyspark on hpc

原创
作者头像
flavorfan
发布于 2021-12-10 07:45:16
发布于 2021-12-10 07:45:16
1.8K0
举报
文章被收录于专栏:范传康的专栏范传康的专栏

本地内部集群资源有限,简单的数据处理跑了3天。HPC上有很多计算资源,出于先吃锅里的再吃碗里的思想,琢磨先充分利用共有资源。简单调研下,也不是很复杂的事情。

1 方案

spark 用local模式

spark standalone涉及多节点通讯,复杂度高;而多任务并行完全可以规划数据分片,每个独立用一个spark local处理;这样就规避了复杂的集群搭建。通过申请单任务单节点、多cpu、多内存来实现。

让python环境能够找到pyspark

这本质上是通过env环境变量实现,具体实现一个是python设置,一个.bashrc或shell设置。

2 步骤

1) 安装spark(就是解压)

解压spark-3.1.2-bin-hadoop3.2.tgz到用户目录下,比如/users/username/tools/spark/spark

我用了一个软连接,考虑到后面切换不同的版本

代码语言:txt
AI代码解释
复制
cd /users/[username]/tools/
tar -zxvf spark-3.1.2-bin-hadoop3.2.tgz
ln -s spark-3.1.2-bin-hadoop3.2 spark

2)在python代码中配置,以使用pyspark

下面构建环境及测试代码可以在py文件和jupyter中测试通过。

代码语言:txt
AI代码解释
复制
import os
import sys
os.environ["PYSPARK_PYTHON"] = "/users/[username]/miniconda3/bin/python"
os.environ["SPARK_HOME"] = "/users/[username]/tools/spark"
os.environ["PYLIB"] = os.environ["SPARK_HOME"] + "/python/lib"
sys.path.insert(0, os.environ["PYLIB"] +"/py4j-10.9-src.zip")
sys.path.insert(0, os.environ["PYLIB"] +"/pyspark.zip")

# test code
import random
from pyspark import SparkContext
sc = pyspark.SparkContext(appName="myAppName")
def inside(p):
    x, y = random.random(), random.random()
    return x*x + y*y < 1
NUM_SAMPLES = 1000000
count = sc.parallelize(range(0, NUM_SAMPLES)) \
             .filter(inside).count()
print("Pi is roughly %f" % (4.0 * count / NUM_SAMPLES))
sc.stop()

3)通过bashrc或者脚本配置pyspark

配置myspark.sh

代码语言:txt
AI代码解释
复制
#!/bin/sh
export SPARK_HOME='/users/[username]/tools/spark'
export PYTHONPATH=$SPARK_HOME/python:$PYTHONPATH
export PYSPARK_DRIVER_PYTHON="jupyter"
export PYSPARK_DRIVER_PYTHON_OPTS="notebook"
export PYSPARK_PYTHON="/users//[username]/miniconda3/bin/python"

把这个放入.bashrc,就不需要上述的python配置,无感使用pyspark。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档