百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术资源 > 正文

spark+python环境搭建(spark 搭建)

off999 2024-10-15 12:05 32 浏览 0 评论

最近项目需要用到spark大数据相关技术,周末有空spark环境搭起来...

目标

spark,python运行环境部署在linux服务器
个人通过vscode开发
通过远程python解释器执行代码

准备

腾讯云服务器一台
个人笔记本一台
vscode
spark3.2,anaconda3,jdk1.8


spark安装


# 下载spark安装包
wget https://dlcdn.apache.org/spark/spark-3.2.1/spark-3.2.1-bin-hadoop3.2.tgz

# 创建安装目录/export/server
mkdir /export/server

# 安装包解压
tar -zxvf spark-3.2.1-bin-hadoop3.2.tgz -C "/export/server"

# 创建spark安装目录软连接
ln -s /export/server/spark-3.2.1-bin-hadoop3.2/ /export/server/spark

# 进入spark可执行程序目录,执行pyspark
cd /export/server/spark/bin; ./pyspark => JAVA_HOME is not set
提示jdk未安装,下一步进行jdk安装...


jdk安装


# 将准备好的jdk安装包jdk-8u161-linux-x64.tar.gz解压至/export/server目录
tar -zxvf /home/dev/jdk-8u161-linux-x64.tar.gz -C /export/server

# 创建jdk安装目录软连接
ln -s jdk1.8.0_161/ jdk8

# 添加JAVA_HOME环境变量
vi /etc/profile,添加
 export JAVA_HOME=/export/server/jdk8
 export PATH=$PATH:$JAVA_HOME/bin

# 再次执行/export/server/spark>bin/pyspark => env: python3: No such file or directory
提示python3没有安装,下一步进行python3安装...


Anaconda3安装(即python)


# 下载anaconda3安装包
wget https://repo.anaconda.com/archive/Anaconda3-2022.05-Linux-x86_64.sh

# 安装anoconda3
sh Anaconda3-2022.05-Linux-x86_64.sh
在安装过程中的交互提示依次输入: enter => yes => /export/server/anaconda3 => yes
直到安装完成

# 重新登录终端看见(base)开头表示安装成功

# vi /etc/profile,添加
 export PYSPARK_PYTHON=/export/server/anaconda3/bin/python

# 再次执行/export/server/spark>bin/pyspark => pyspark启动成功,进入交互页面

# 输入python测试代码:
>>>
>>> sc.parallelize([1,2,3,4,5]).map(lambda x: x+1).collect()
[2, 3, 4, 5, 6] #运行结果

# pyspark运行时,在新开的终端检查4040端口监听情况
netstat -anp|grep 4040
tcp6 0 0 :::4040 :::* LISTEN -
每一个Spark程序在运行的时候, 会绑定到Driver所在机器的4040端口上.
如果4040端口被占用, 会顺延到4041...,可通过浏览器访问 4040端口

验证


# 通过spark-submit执行.py脚本,执行官方sample:
/export/server/spark>bin/spark-submit \
/export/server/spark/examples/src/main/python/pi.py 10

# 自定义脚本helloworld.py:
print("hello,world!")

# 通过spark-submit执行
/export/server/spark>bin/spark-submit /export/demo/helloworld.py
hello,world!  # 输出


PySpark库安装


conda create -n pyspark python=3.9 #创建虚拟环境pyspark
conda activate pyspark #切换虚拟环境为pyspark

# 检查虚拟环境pyspark的python解释器路径
type python => python is /export/server/anaconda3/envs/pyspark/bin/python

vi /etc/profile编辑
PYSPARK_PYTHON=/export/server/anaconda3/envs/pyspark/bin/python

pip install pyspark -i https://pypi.tuna.tsinghua.edu.cn/simple #安装PySpark

# 验证PySpark
/export/server>python
>>> import pyspark  # import pyspark不报错,表示pyspark库安装成功


本地vscode开发远程代码、使用远程解释器执行配置


本地免密访问服务器配置:将本地的公钥(C:\\Users\\your account\\.ssh\\id_rsa.pub)内容
配置在需要免密访问的linux服务器用户的$HOME/.ssh/authorized_keys文件中

vscode安装remote development插件,重启vscode

vscode添加远程ssh targets:
a) 点击ssh targets "+"
b) 在弹出框输入 ssh username@ip 回车
c) 在弹出的下拉项中选择 C:\\Users\\your account\\.ssh\\config
d) 编辑config文件
    Host xxx   #无需编辑
    HostName xxx  #无需编辑
    User xxx #无需编辑
    ForwardAgent yes  # 需要新增
    IdentityFile C:\\Users\\your account\\.ssh\\id_rsa  #需要新增
 
vscode安装python插件

vscode添加远程python解释器:
a) Ctrl + Shift + p打开命名面板
b) 输入Python: Select Interpreter选择解释器
c) 输入远程python解释器路径: /export/server/anaconda3/envs/pyspark/bin/python

vscode开发,远程执行验证


vscode选择远程服务器打开目录
vscode中新建helloworld.py文件,并录入print("hello,world!")
vscode中执行helloworld.py#使用的是远程解释器
vscode提升缺少package,linux服务安装python包:
pip install jupyter notebook -i https://pypi.tuna.tsinghua.edu.cn/simple
在vscode中重新运行helloworld.py运行成功


完成,以后就可以开心地编写pyspark代码了,再也不担心本机卡卡卡了(*_*),附完成图一张:

相关推荐

阿里云国际站ECS:阿里云ECS如何提高网站的访问速度?

TG:@yunlaoda360引言:速度即体验,速度即业务在当今数字化的世界中,网站的访问速度已成为决定用户体验、用户留存乃至业务转化率的关键因素。页面加载每延迟一秒,都可能导致用户流失和收入损失。对...

高流量大并发Linux TCP性能调优_linux 高并发网络编程

其实主要是手里面的跑openvpn服务器。因为并没有明文禁p2p(哎……想想那么多流量好像不跑点p2p也跑不完),所以造成有的时候如果有比较多人跑BT的话,会造成VPN速度急剧下降。本文所面对的情况为...

性能测试100集(12)性能指标资源使用率

在性能测试中,资源使用率是评估系统硬件效率的关键指标,主要包括以下四类:#性能测试##性能压测策略##软件测试#1.CPU使用率定义:CPU处理任务的时间占比,计算公式为1-空闲时间/总...

Linux 服务器常见的性能调优_linux高性能服务端编程

一、Linux服务器性能调优第一步——先搞懂“看什么”很多人刚接触Linux性能调优时,总想着直接改配置,其实第一步该是“看清楚问题”。就像医生看病要先听诊,调优前得先知道服务器“哪里...

Nginx性能优化实战:手把手教你提升10倍性能!

关注△mikechen△,十余年BAT架构经验倾囊相授!Nginx是大型架构而核心,下面我重点详解Nginx性能@mikechen文章来源:mikechen.cc1.worker_processe...

高并发场景下,Spring Cloud Gateway如何抗住百万QPS?

关注△mikechen△,十余年BAT架构经验倾囊相授!大家好,我是mikechen。高并发场景下网关作为流量的入口非常重要,下面我重点详解SpringCloudGateway如何抗住百万性能@m...

Kubernetes 高并发处理实战(可落地案例 + 源码)

目标场景:对外提供HTTPAPI的微服务在短时间内收到大量请求(例如每秒数千至数万RPS),要求系统可弹性扩容、限流降级、缓存减压、稳定运行并能自动恢复。总体思路(多层防护):边缘层:云LB...

高并发场景下,Nginx如何扛住千万级请求?

Nginx是大型架构的必备中间件,下面我重点详解Nginx如何实现高并发@mikechen文章来源:mikechen.cc事件驱动模型Nginx采用事件驱动模型,这是Nginx高并发性能的基石。传统...

Spring Boot+Vue全栈开发实战,中文版高清PDF资源

SpringBoot+Vue全栈开发实战,中文高清PDF资源,需要的可以私我:)SpringBoot致力于简化开发配置并为企业级开发提供一系列非业务性功能,而Vue则采用数据驱动视图的方式将程序...

Docker-基础操作_docker基础实战教程二

一、镜像1、从仓库获取镜像搜索镜像:dockersearchimage_name搜索结果过滤:是否官方:dockersearch--filter="is-offical=true...

你有空吗?跟我一起搭个服务器好不好?

来人人都是产品经理【起点学院】,BAT实战派产品总监手把手系统带你学产品、学运营。昨天闲的没事的时候,随手翻了翻写过的文章,发现一个很严重的问题。就是大多数时间我都在滔滔不绝的讲理论,却很少有涉及动手...

部署你自己的 SaaS_saas如何部署

部署你自己的VPNOpenVPN——功能齐全的开源VPN解决方案。(DigitalOcean教程)dockovpn.io—无状态OpenVPNdockerized服务器,不需要持久存储。...

Docker Compose_dockercompose安装

DockerCompose概述DockerCompose是一个用来定义和管理多容器应用的工具,通过一个docker-compose.yml文件,用YAML格式描述服务、网络、卷等内容,...

京东T7架构师推出的电子版SpringBoot,从构建小系统到架构大系统

前言:Java的各种开发框架发展了很多年,影响了一代又一代的程序员,现在无论是程序员,还是架构师,使用这些开发框架都面临着两方面的挑战。一方面是要快速开发出系统,这就要求使用的开发框架尽量简单,无论...

Kubernetes (k8s) 入门学习指南_k8s kubeproxy

Kubernetes(k8s)入门学习指南一、什么是Kubernetes?为什么需要它?Kubernetes(k8s)是一个开源的容器编排系统,用于自动化部署、扩展和管理容器化应用程序。它...

取消回复欢迎 发表评论: