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

spark集群搭建

spark集群搭建

  • 1. 安装Java
  • 2. 下载Spark
  • 3. 上传文件
  • 4. 配置环境变量
  • 5. 配置Spark集群
  • 6. 将spark分发到其他节点
  • 7. 启动Spark集群
  • 8. 运行Spark应用程序
  • 参考博客

本文主要介绍Spark集群的简单搭建,不需要配置其他服务,对spark感兴趣可以先搭建试试

我的集群规划如下:

haoop101haoop102haoop103
sparkworkerworkermaster

搭建Spark集群需要以下步骤:

1. 安装Java

Spark使用Java开发,所以需要先安装Java。
官网下载地:https://www.oracle.com/java/technologies/downloads/#java8
我这里使用的是jdk-8u333-linux-x64.tar.gz,如果官网慢可以使用我分享的网盘

链接1:百度网盘 提取码:1111
链接2:盼兮网盘 提取码:GuMNm

2. 下载Spark

可以从官网下载Spark的最新版本:https://archive.apache.org/dist/spark/spark-3.4.3/
也可以使用以下命令下载:

wget https://mirrors.tuna.tsinghua.edu.cn/apache/spark/spark-3.4.3/spark-3.4.3-bin-hadoop3.tgz

3. 上传文件

把spark和jdk压缩包上传到/opt/software
在这里插入图片描述

将这两个文件解压到/opt/module

tar -zxvf jdk-8u333-linux-x64.tar.gz -C /opt/module/
tar -zxvf spark-3.4.3-bin-hadoop3.tgz -C /opt/module/

重命名spark-3.4.3-bin-hadoop3为spark-3.4.3

cd /opt/module
mv spark-3.4.3-bin-hadoop3/ spark-3.4.3

4. 配置环境变量

配置java和spark的环境

vim /etc/profile.d/my_env.sh

加入如下文本

#JAVA_HOME
export JAVA_HOME=/opt/module/jdk1.8.0_333
export PATH=$PATH:$JAVA_HOME/bin# SPARK_HOME
export SPARK_HOME=/opt/module/spark-3.4.3
export PATH=$PATH:$SPARK_HOME/bin

然后执行以下命令使配置生效:

source /etc/profile.d/my_env.sh

5. 配置Spark集群

进入spark的conf目录,修改配置文件

cd /opt/module/spark-3.4.3/conf/
cp workers.template workers

在workers文件中添加work节点,加入的内容是服务器的hostname

hadoop101
hadoop102
hadoop103

在集群上的每个节点上创建一个spark-env.sh文件,用于配置Spark集群的环境变量。

cp spark-env.sh.template spark-env.sh

在这里插入图片描述
spark-env.sh文件中添加以下内容:

export SPARK_MASTER_HOST=<master节点的主机名或IP>
export SPARK_MASTER_PORT=<master节点的端口>
export SPARK_WORKER_CORES=<每个工作节点的核心数>
export SPARK_WORKER_MEMORY=<每个工作节点的内存>
export SPARK_WORKER_INSTANCES=<工作节点的实例数>

例如:(我这里是以hadoop103为主节点)

export SPARK_MASTER_HOST=hadoop103
export SPARK_MASTER_IP=192.168.17.136
export SPARK_MASTER_PORT=7077
export SPARK_WORKER_CORES=2
export SPARK_WORKER_MEMORY=2g
export SPARK_WORKER_INSTANCES=2
export JAVA_HOME=/opt/module/jdk1.8.0_333
# export HADOOP_CONF_DIR=/opt/module/hadoop-3.1.3/etc/hadoop
# export HADOOP_HOME=/opt/module/hadoop-3.1.3

6. 将spark分发到其他节点

用scp将hadoop101中的jdk、spark拷贝到hadoop102、hadoop103

scp -r /opt/module/jdk1.8.0_333/ root@hadoop102:/opt/module/jdk1.8.0_333
scp -r /opt/module/jdk1.8.0_333/ root@hadoop103:/opt/module/jdk1.8.0_333
scp -r /opt/module/spark-3.4.3/ root@hadoop102:/opt/module/spark-3.4.3
scp -r /opt/module/spark-3.4.3/ root@hadoop103:/opt/module/spark-3.4.3

环境配置文件也要拷贝

scp -r /etc/profile.d/my_env.sh root@hadoop102:/etc/profile.d/my_env.sh
scp -r /etc/profile.d/my_env.sh root@hadoop103:/etc/profile.d/my_env.sh

然后在hadoop102、hadoop103上source 一下

source /etc/profile.d/my_env.sh

7. 启动Spark集群

在master(hadoop103)节点上执行以下命令启动Spark集群:

cd /opt/module/spark-3.4.3/
./sbin/start-all.sh

在这里插入图片描述
现在就可以通过hadoop103的ip:8080访问spark的web页面
在这里插入图片描述

然后可以在工作节点上执行以下命令启动/停止工作节点:

./sbin/stop-worker.sh spark://<master节点的主机名或IP>:<master节点的端口>
./sbin/start-worker.sh spark://<master节点的主机名或IP>:<master节点的端口>

例如:

# 停止主节点工作流
./sbin/stop-worker.sh spark://master:7077

可以看到hadoop103节点的工作流已经停止
在这里插入图片描述

8. 运行Spark应用程序

可以使用以下命令在集群上运行Spark应用程序:

spark-submit --master spark://<master节点的主机名或IP>:<master节点的端口> --class <应用程序的入口类> <应用程序的Jar包>

例如:

spark-submit --master spark://master:7077 --class com.example.MyApp my-app.jar

以上是基本的Spark集群搭建步骤,你可以根据实际需要进行更详细的配置和优化。

参考博客

  • Centos7上安装配置Spark
  • CentOS7 搭建Spark集群环境

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • wpf datagrid通过点击单元格 获取行列索引2.0
  • 适用于 Visual Studio 的 C++ 万能头
  • 密码生成器(HTML+CSS+JavaScript)
  • Java MR Map Reduce 模型
  • 综合能源充电站有序充电策略
  • 【数据集】遥感影像建筑物变化检测对比实验常用数据集分享
  • 基于Thymeleaf、bootstrap、layUI 混合前端应用
  • 为什么帕金森病患者的症状有时会出现波动性?
  • Godot《躲避小兵》实战之为游戏添加音效
  • 【IoTDB 线上小课 06】列式写入=时序数据写入性能“利器”?
  • 智能ai写作哪个好用?这几款工具让你的写作更加高效
  • .NET 给NuGet包添加Readme
  • 个性化营销:数字化时代的致胜法宝
  • 【C语言】常见文件操作
  • RK3588开发笔记-pdm接口ES7201音频采集调试记录
  • 自己简单写的 事件订阅机制
  • 【391天】每日项目总结系列128(2018.03.03)
  • Android 初级面试者拾遗(前台界面篇)之 Activity 和 Fragment
  • C学习-枚举(九)
  • Docker 1.12实践:Docker Service、Stack与分布式应用捆绑包
  • express + mock 让前后台并行开发
  • java 多线程基础, 我觉得还是有必要看看的
  • Linux学习笔记6-使用fdisk进行磁盘管理
  • Service Worker
  • Spring Boot MyBatis配置多种数据库
  • vue:响应原理
  • 京东美团研发面经
  • 入门级的git使用指北
  • 时间复杂度与空间复杂度分析
  • 通过来模仿稀土掘金个人页面的布局来学习使用CoordinatorLayout
  • 用jquery写贪吃蛇
  • linux 淘宝开源监控工具tsar
  • 国内唯一,阿里云入选全球区块链云服务报告,领先AWS、Google ...
  • 数据可视化之下发图实践
  • ​VRRP 虚拟路由冗余协议(华为)
  • #includecmath
  • $.ajax()方法详解
  • (c语言)strcpy函数用法
  • (k8s中)docker netty OOM问题记录
  • (libusb) usb口自动刷新
  • (STM32笔记)九、RCC时钟树与时钟 第一部分
  • (二)七种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB
  • (二十五)admin-boot项目之集成消息队列Rabbitmq
  • (附源码)springboot青少年公共卫生教育平台 毕业设计 643214
  • (南京观海微电子)——示波器使用介绍
  • (三)Honghu Cloud云架构一定时调度平台
  • (十三)Java springcloud B2B2C o2o多用户商城 springcloud架构 - SSO单点登录之OAuth2.0 根据token获取用户信息(4)...
  • (限时免费)震惊!流落人间的haproxy宝典被找到了!一切玄妙尽在此处!
  • (一)模式识别——基于SVM的道路分割实验(附资源)
  • .apk 成为历史!
  • .net core 依赖注入的基本用发
  • .NET MAUI Sqlite程序应用-数据库配置(一)
  • .NET Micro Framework初体验(二)
  • .Net 路由处理厉害了
  • .NET/C# 避免调试器不小心提前计算本应延迟计算的值