当前位置: 首页 > news >正文

已有yarn集群部署spark

已有yarn集群的情况下,部署spark只需要部署客户端。

一、前提条件

  1. 已部署yarn集群,部署方式参考:https://blog.csdn.net/weixin_39750084/article/details/136750613?spm=1001.2014.3001.5502,我部署的hadoop版本是3.3.6
  2. 已安装jdk1.8,如果没安装或版本不对,可参考:https://blog.csdn.net/weixin_39750084/article/details/138674399?spm=1001.2014.3001.5502中的第六部分,客户端部署中jdk的安装。

二、部署spark客户端

下载链接:
https://mirrors.aliyun.com/apache/spark/spark-3.4.3/spark-3.4.3-bin-hadoop3.tgz

mkdir spark
cd spark
wget https://mirrors.aliyun.com/apache/spark/spark-3.4.3/spark-3.4.3-bin-hadoop3.tgz
tar -zxvf spark-3.4.3-bin-hadoop3.tgz
vi /etc/profile#添加以下几行
export HIVE_HOME=/mnt/admin/apache-hive-3.1.3-bin
export HADOOP_HOME=/mnt/admin/hadoop-3.3.6
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64/jre
export HADOOP_CONF_DIR=/mnt/admin/hadoop-3.3.6/etc/hadoop
export YARN_CONF_DIR=/mnt/admin/hadoop-3.3.6/etc/hadoop
export SPARK_HOME=/mnt/admin/spark/spark-3.4.3-bin-hadoop3
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HADOOP_HOME/lib/native
export PATH=$PATH:$HIVE_HOME/bin:$HADOOP_HOME/bin:$JAVA_HOME/bin:$SPARK_HOME/bin#让环境变量生效
source /etc/profile

yarn-site.xml需要配置为以下内容:

<configuration><property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value></property><property><name>yarn.resourcemanager.hostname</name><value>hadoop-hadoop-yarn-rm-0.hadoop-hadoop-yarn-rm.default</value></property><property><name>yarn.resourcemanager.address</name><value>hadoop-hadoop-yarn-rm-0.hadoop-hadoop-yarn-rm.default:8032</value></property><property><name>yarn.resourcemanager.scheduler.address</name><value>hadoop-hadoop-yarn-rm-0.hadoop-hadoop-yarn-rm.default:8030</value></property><property><name>yarn.nodemanager.env-whitelist</name><value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_HOME,PATH,LANG,TZ,HADOOP_MAPRED_HOME</value></property>
</configuration>

这个yarn中不仅要配置address,还需要配置hostname,之前配置好之后,使用pyspark时,只要master用local就可以,用yarn就不行,就是因为yarn没有设置hostname。

根据自己的需要,还可以配置spark-defaults.conf文件,配置以下内容:

spark.driver.port                  10022
spark.blockManager.port            10023
spark.driver.bindAddress           0.0.0.0
spark.driver.host                  192.168.3.100

10022可以在终端通过echo $PORT1查看,10023可以通过echo $PORT2查看。

三、测试客户端

bin/spark-sql,看能不能正确执行sql语句,能够正常在hdfs中写入等。
在这里插入图片描述
在jupyter中测试是否能正确使用

四、使用pyspark

我是用的cube studio平台的notebook,自带了pyspark,所以我没有额外装了,需要的可以看这篇文章来装pyspark:https://blog.csdn.net/weixin_46560589/article/details/132857521

在jupyter notebook中测试是否能正确使用pyspark,可以使用以下示例代码,前提是已经在hive中创建了表,写入了数据:

import os
from pyspark import SparkContext, SparkConf
from pyspark.conf import SparkConf
from pyspark.sql import SparkSession, HiveContext
"""
SparkSession ss = SparkSession
.builder()
.appName(" Hive example")
.config("hive.metastore.uris", "thrift://localhost:9083")
.enableHiveSupport()
.getOrCreate();
"""
# os.environ['HADOOP_CONF_DIR'] = '/mnt/admin/hadoop-3.3.6/etc/hadoop'
# os.environ['YARN_CONF_DIR'] = '/mnt/admin/hadoop-3.3.6/etc/hadoop'spark = (SparkSession.builder.master("yarn").appName('example-pyspark-read-and-write-from-hive').config("hive.metastore.uris", "thrift://hive-service.default:9083", conf=SparkConf()).enableHiveSupport().getOrCreate())df_load = spark.sql('select * from demo limit 2')
df_load.show()

参考链接:
https://blog.csdn.net/weixin_46560589/article/details/132898417
https://blog.csdn.net/weixin_46560589/article/details/132857521

相关文章:

  • hot100 -- 回溯(上)
  • 利用Python去除PDF水印
  • 前端基础入门三大核心之HTML篇:深入理解重绘与重排 —— 概念、区别与实战演练
  • vue 纵向滚动菜单, 点击滚动到选中菜单
  • 【项目托管git】本地项目托管到 Gitee
  • 机器学习-决策树算法
  • IDEA连接MySQL后如何管理数据库
  • JavaSE——类和对象(二)~~封装
  • 光耦合器的特性和应用概述
  • Mac电脑太卡了怎么办 Mac电脑常见问题 cleanmymacX有必要买吗
  • tensorflow下载
  • 编一个自己的万年历
  • 接口使用实例——数组排序
  • (delphi11最新学习资料) Object Pascal 学习笔记---第13章第1节 (全局数据、栈和堆)
  • Android Audio基础——AudioFlinger回放录制线程(七)
  • CSS3 聊天气泡框以及 inherit、currentColor 关键字
  • Java比较器对数组,集合排序
  • Java面向对象及其三大特征
  • LeetCode541. Reverse String II -- 按步长反转字符串
  • MySQL的数据类型
  • pdf文件如何在线转换为jpg图片
  • SQL 难点解决:记录的引用
  • Sublime Text 2/3 绑定Eclipse快捷键
  • tensorflow学习笔记3——MNIST应用篇
  • Web标准制定过程
  • 搭建gitbook 和 访问权限认证
  • 坑!为什么View.startAnimation不起作用?
  • 模仿 Go Sort 排序接口实现的自定义排序
  • 使用API自动生成工具优化前端工作流
  • 吐槽Javascript系列二:数组中的splice和slice方法
  • ​configparser --- 配置文件解析器​
  • ​草莓熊python turtle绘图代码(玫瑰花版)附源代码
  • #Spring-boot高级
  • #中国IT界的第一本漂流日记 传递IT正能量# 【分享得“IT漂友”勋章】
  • (1/2)敏捷实践指南 Agile Practice Guide ([美] Project Management institute 著)
  • (LeetCode C++)盛最多水的容器
  • (分享)自己整理的一些简单awk实用语句
  • (附源码)springboot 智能停车场系统 毕业设计065415
  • (附源码)ssm失物招领系统 毕业设计 182317
  • (考研湖科大教书匠计算机网络)第一章概述-第五节1:计算机网络体系结构之分层思想和举例
  • (六)什么是Vite——热更新时vite、webpack做了什么
  • (全部习题答案)研究生英语读写教程基础级教师用书PDF|| 研究生英语读写教程提高级教师用书PDF
  • (十六)串口UART
  • (提供数据集下载)基于大语言模型LangChain与ChatGLM3-6B本地知识库调优:数据集优化、参数调整、Prompt提示词优化实战
  • (未解决)jmeter报错之“请在微信客户端打开链接”
  • (一)基于IDEA的JAVA基础12
  • **Java有哪些悲观锁的实现_乐观锁、悲观锁、Redis分布式锁和Zookeeper分布式锁的实现以及流程原理...
  • .[hudsonL@cock.li].mkp勒索加密数据库完美恢复---惜分飞
  • .net core 3.0 linux,.NET Core 3.0 的新增功能
  • .NET DevOps 接入指南 | 1. GitLab 安装
  • .NET MAUI Sqlite程序应用-数据库配置(一)
  • .NET Micro Framework初体验
  • .NET 应用架构指导 V2 学习笔记(一) 软件架构的关键原则
  • .NET/C# 阻止屏幕关闭,阻止系统进入睡眠状态
  • .net和php怎么连接,php和apache之间如何连接