spark+python环境搭建(spark 搭建)
off999 2024-10-15 12:05 32 浏览 0 评论
最近项目需要用到spark大数据相关技术,周末有空spark环境搭起来...
目标
spark,python运行环境部署在linux服务器
个人通过vscode开发
通过远程python解释器执行代码准备
腾讯云服务器一台
个人笔记本一台
vscode
spark3.2,anaconda3,jdk1.8spark安装
# 下载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/pythonvscode开发,远程执行验证
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)是一个开源的容器编排系统,用于自动化部署、扩展和管理容器化应用程序。它...
欢迎 你 发表评论:
- 一周热门
-
-
抖音上好看的小姐姐,Python给你都下载了
-
全网最简单易懂!495页Python漫画教程,高清PDF版免费下载
-
Python 3.14 的 UUIDv6/v7/v8 上新,别再用 uuid4 () 啦!
-
python入门到脱坑 输入与输出—str()函数
-
宝塔面板如何添加免费waf防火墙?(宝塔面板开启https)
-
Python三目运算基础与进阶_python三目运算符判断三个变量
-
(新版)Python 分布式爬虫与 JS 逆向进阶实战吾爱分享
-
飞牛NAS部署TVGate Docker项目,实现内网一键转发、代理、jx
-
慕ke 前端工程师2024「完整」
-
失业程序员复习python笔记——条件与循环
-
- 最近发表
- 标签列表
-
- python计时 (73)
- python安装路径 (56)
- python类型转换 (93)
- python进度条 (67)
- python吧 (67)
- python的for循环 (65)
- python格式化字符串 (61)
- python静态方法 (57)
- python列表切片 (59)
- python面向对象编程 (60)
- python 代码加密 (65)
- python串口编程 (77)
- python封装 (57)
- python写入txt (66)
- python读取文件夹下所有文件 (59)
- python操作mysql数据库 (66)
- python获取列表的长度 (64)
- python接口 (63)
- python调用函数 (57)
- python多态 (60)
- python匿名函数 (59)
- python打印九九乘法表 (65)
- python赋值 (62)
- python异常 (69)
- python元祖 (57)
