数据湖仓一体(五)安装spark
上传安装包到/opt/software目录并解压
[bigdata@node106 software]$ tar -zxvf spark-3.3.1-bin-hadoop3.tgz -C /opt/services/
重命名文件
[bigdata@node106 services]$ mv spark-3.3.1-bin-hadoop3 spark-3.3.1
配置环境变量
[bigdata@node106 ~]$ sudo vim /etc/profile.d/bigdata_env.sh
export SPARK_HOME=/opt/services/spark-3.3.1
export $PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$ZK_HOME/bin:$KAFKA_HOME/bin:$SEA_HOME/bin:$HIVE_HOME/bin:$SPARK_HOME/bin
分发环境变量
[bigdata@node106 bin]$ sudo ./bin/xsync /etc/profile.d/bigdata_env.sh
刷新环境变量,5台机器上执行
[bigdata@node106 ~]$ source /etc/profile
配置spark-env.sh
HADOOP_CONF_DIR=/opt/services/hadoop-3.3.5/etc/hadoop
YARN_CONF_DIR=/opt/services/hadoop-3.3.5/etc/hadoop
export SPARK_DIST_CLASSPATH=$(hadoop classpath)
export SPARK_HISTORY_OPTS="
-Dspark.history.ui.port=18080
-Dspark.history.fs.logDirectory=hdfs://mycluster:8020/spark-history
-Dspark.history.retainedApplications=30"
配置spark-defaults.conf
spark.master yarn
spark.eventLog.enabled true
spark.eventLog.dir hdfs://mycluster:8020/spark-history
spark.serializer org.apache.spark.serializer.KryoSerializer
spark.yarn.archive hdfs://mycluster:8020/spark-archive/spark-archive.zip
spark.sql.warehouse.dir hdfs://mycluster:8020/user/hudi/warehouse
spark.serializer org.apache.spark.serializer.KryoSerializer
spark.sql.extensions org.apache.spark.sql.hudi.HoodieSparkSessionExtension
spark.sql.catalog.spark_catalog org.apache.spark.sql.hudi.catalog.HoodieCatalog
spark.kryo.registrator org.apache.spark.HoodieSparkKryoRegistrar
spark.hadoop.yarn.timeline-service.enabled false
spark.executor.cores 4
spark.executor.memory 3g
spark.executor.memoryOverhead 1g
spark.driver.memory 2g
spark.driver.memoryOverhead 1g
#启动动态分配
spark.dynamicAllocation.enabled true
#启用Spark shuffle服务
spark.shuffle.service.enabled true
#Executor个数初始值
spark.dynamicAllocation.initialExecutors 2
#Executor个数最小值
spark.dynamicAllocation.minExecutors 2
#Executor个数最大值
spark.dynamicAllocation.maxExecutors 4
#Executor空闲时长,若某Executor空闲时间超过此值,则会被关闭
spark.dynamicAllocation.executorIdleTimeout 60s
#积压任务等待时长,若有Task等待时间超过此值,则申请启动新的Executor
spark.dynamicAllocation.schedulerBacklogTimeout 1s
spark.yarn.queue hive
spark.yarn.historyServer.address=node106:18080
spark.history.ui.port=18080
spark.history.fs.logDirectory=hdfs://mycluster:8020/spark-history
创建日志文件
[bigdata@node106 conf]$ hdfs dfs -mkdir /spark-history
创建运行依赖的文件夹
[bigdata@node106 conf]$ hdfs dfs -mkdir /spark-archive
上传mysql驱动包,hudi依赖的包
[bigdata@node106 software]$ cp mysql-connector-java-8.0.18.jar /opt/services/spark-3.3.1/jars/
[bigdata@node106 software]$ cp hudi-spark3.3-bundle_2.12-0.14.1.jar /opt/services/spark-3.3.1/jars/
压缩jar包并上传到hdfs
[bigdata@node106 jars]$ zip spark-archive.zip ./*
[bigdata@node106 jars]$ hdfs dfs -put ./spark-archive.zip /spark-archive
上传spark-3.3.1-yarn-shuffle.jar
[bigdata@node106 conf]$ cp $SPARK_HOME/yarn/spark-3.3.1-yarn-shuffle.jar /opt/services/hadoop-3.3.5/share/hadoop/yarn/lib/
配置日志文件
[bigdata@node106 conf]$ cp log4j2.properties.template log4j2.properties
上传hive-site.xml到conf目录下,配置hudi存储目录和spark的server2服务
<property><name>hive.metastore.warehouse.dir</name><value>/user/hudi/warehouse</value></property><property><name>hive.server2.thrift.port</name><value>10001</value></property><property><name>hive.server2.thrift.bind.host</name><value>node106</value></property>
编写spark.sh脚本
[bigdata@node106 bin]$ vim spark.sh
#!/bin/bashif [ $# -lt 1 ]
thenecho "No Args Input...[start,stop]"exit ;
fi
case $1 in
"start")echo ==================== 启动history服务 =========================ssh node106 "$SPARK_HOME/sbin/start-history-server.sh"echo ==================== 启动server2服务 ====================ssh node106 "$SPARK_HOME/sbin/start-thriftserver.sh --master yarn"
;;
"stop")echo ==================== 关闭history服务 =========================ssh node106 "$SPARK_HOME/sbin/stop-history-server.sh"echo ==================== 关闭server2服务 ====================ssh node106 "$SPARK_HOME/sbin/stop-thriftserver.sh --master yarn"
;;
*)echo "Input Args Error...[start,stop]"
;;
esac
授权
[bigdata@node106 bin]$ chmod +x spark.sh
分发到其他机器
[bigdata@node106 bin]$ xsync spark.sh
copy到其他机器
[bigdata@node107 bin]$ scp -r bigdata@node106:/opt/services/spark-3.3.1/ /opt/services/spark-3.3.1/
[bigdata@node108 bin]$ scp -r bigdata@node106:/opt/services/spark-3.3.1/ /opt/services/spark-3.3.1/
启动spark
[bigdata@node106 bin]$ spark.sh start
相关文章:
数据湖仓一体(五)安装spark
上传安装包到/opt/software目录并解压 [bigdatanode106 software]$ tar -zxvf spark-3.3.1-bin-hadoop3.tgz -C /opt/services/ 重命名文件 [bigdatanode106 services]$ mv spark-3.3.1-bin-hadoop3 spark-3.3.1 配置环境变量 [bigdatanode106 ~]$ sudo vim /etc/profile…...
项目收获总结--本地缓存方案选型及使用缓存的坑
本地缓存方案选型及使用缓存的坑 一、摘要二、本地缓存三、本地缓存实现方案3.1 自己编程实现一个缓存3.2 基于 Guava Cache 实现本地缓存3.3 基于 Caffeine 实现本地缓存3.4 基于 Encache 实现本地缓存3.5 小结 四、使用缓存的坑4.1 缓存穿透4.2 缓存击穿4.3 缓存雪崩4.4 数据…...
java使用poi-tl模版引擎导出word之if判断条件的使用
文章目录 模版中if语句条件的使用1.数据为False或空集合2.非False或非空集合 模版中if语句条件的使用 如果区块对的值是 null 、false 或者空的集合,位于区块中的所有文档元素将不会显示,这就等同于if语句的条件为 false。语法示例:{{?stat…...
扩散的魔法:如何打造未来生物打印?
生物打印技术正在快速发展,它允许我们将生物材料、细胞和生长因子等生物活性成分精确地打印成具有特定形状和功能的结构。而扩散现象在生物打印中扮演着至关重要的角色,它影响着打印结构的特性、机械性能、生物功能和形态。为了更好地利用扩散现象&#…...
Bag of mice(概率dp)
https://www.luogu.com.cn/problem/CF148D 思路: 概率dp,设f[a][b]为白鼠为a个,黑鼠为b个时,赢的期望。 f[i][0]1; 1.当先手取到白鼠时 a/(ab); 2.当先手未取到白鼠,先手要向赢,后手也不能取到白鼠&am…...
Python的基础语法——持续更新版
1、type查看数据类型 # 直接输出结果 print(type("Hello")) # 先用变量存储 string_type type("Hello") print(string_type) 2、 类型转化 任何类型可以转化为字符串,但字符串不可以随意转化,要求字符串类内容都是数字 # 类型…...
百度智能云将大模型引入网络故障定位的智能运维实践
物理网络中,某个设备发生故障,可能会引起一系列指标异常的告警。如何在短时间内从这些告警信息中找到真正的故障原因,犹如大海捞针,对于运维团队是一件很有挑战的事情。 在长期的物理网络运维工作建设中,百度智能云通…...
晚上定时编译android系统
1、问题 可能偶然想晚上定时编译android系统 2、解决 at.sh #!/bin/sh# at -f at.sh now1min # at -lset -e set -xecho $SHELLecho at build begin /bin/date >> at_build.log/bin/bash -c source build/envsetup.sh >> at_build.log 2>&1; lunch xxx-us…...
轻薄鼠标的硬核选购攻略,很多人都在“高性价比”鼠标上栽跟头了
轻薄款设计的鼠标是目前鼠标市场的出货大头, 也是价格最卷的一类鼠标。 比游戏鼠标或许更卷一些。 这和当前的移动办公趋势关系很大。 这类鼠标主要跟笔记本和iPad搭配。 核心的使用场景是办公。 因此轻薄和静音是这类鼠标的核心卖点。 同时用户并不愿意付出太…...
Python制作签到系统
import datetime sign_in_records {} def sign_in(username): today datetime.date.today() if username not in sign_in_records: sign_in_records[username] [] sign_in_records[username].append(today) print(f"{username} 签到成功&#…...
面试题007-Java-Spring
面试题007-Java-Spring 目录 面试题007-Java-Spring题目自测题目答案1. 简单介绍一下Spring?2. Spring有哪些模块?3. 什么是Spring IoC ?4. 什么是依赖注入?有哪几种方式可以进行依赖注入?5. 什么是Spring AOP ?6. 什…...
后端之路——登录校验前言(Cookie\ Session\ JWT令牌)
前言:Servlet 【登录校验】这个功能技术的基础是【会话技术】,那么在讲【会话技术】的时候必然要谈到【Cookie】和【Session】这两个东西,那么在这之前必须要先讲一下一个很重要但是很多人都会忽略的一个知识点:【Servlet】 什么是…...
【蓄势·致远】 同为科技(TOWE)2024年年中会议
2024年7月2日-8日,同为科技(TOWE)召开2024年年中工作会议。会议回顾上半年总体工作情况,分析研判发展形势,规划部署下半年工作。 为期一周的工作会议,由同为科技(TOWE)创始人、董事长…...
通过git将文件push到github 远程仓库
1.先git clone 代码地址 git clone htttp://github.com/用户名/test.git 2. 添加文件 例如:touch 1.txt 3.将文件添加到暂存区 git add 1.txt 4.提交 git commit -m "commit 1.txt" 5.与远程仓库建立关联 git remote add 远程仓库名 远程仓库…...
如何判断服务器是否被攻击
如何判断服务器是否被攻击 一、异常流量模式 一种判断服务器是否遭到攻击的方法是监控网络流量。异常的流量模式,例如流量突然剧增或减少,都可能是攻击的迹象。通常,大量的入站流量表明分布式拒绝服务(DDoS)攻击的可能…...
泽众一站式性能测试平台P-One监控指标的意义
在当今数字化和信息化高度发展的时代,企业把保障系统稳定运行、优化业务流程和提升用户体验摆在首要位置。然而,在现如今复杂的分布式系统中,各个组件和服务之间的交互频繁且紧密,当系统出现性能瓶颈时,传统的监测手段…...
前端Canvas入门——一些注意事项
创建渐变的三种方法: createLinearGradient() - 线性渐变 createRadialGradient() - 径向渐变(放射性渐变) createConicGradient() - 锥形渐变 这三种的核心观点都是: 创建一个gradient对象,然后调用addColorStop()方法…...
移动互联安全扩展要求测评项
安全物理环境-无线接入点的位置选择 应为无线接入设备的安装选择合理位置,避免过度覆盖和电磁干扰。 无线接入设备的安装位置选择不当,易被攻击者利用,特别是攻击者会通过无线信号过度覆盖的弱点进行无线渗透攻击,因此要选择合理…...
【代码随想录】【算法训练营】【第64天】 [卡码117]软件构建 [卡码47]参加科学大会
前言 思路及算法思维,指路 代码随想录。 题目来自 卡码网。 day 64,周三,继续ding~ 题目详情 [卡码117] 软件构建 题目描述 卡码117 软件构建 解题思路 前提: 思路: 重点: 代码实现 C语言 [卡码…...
【python算法学习1】用递归和循环分别写下 fibonacci 斐波拉契数列,比较差异
问题: fibonacci 斐波拉契数列,用递归和循环的方法分别写,比较递归和循环的思路和写法的差别 最直接的思路,是写递归方法 循环方法的稍微有点绕,我觉得问题主要是出在,总结循环的通项公式更麻烦,难在数学…...
Windows下OpenClaw安装详解:GLM-4.7-Flash模型联调全流程
Windows下OpenClaw安装详解:GLM-4.7-Flash模型联调全流程 1. 为什么选择OpenClawGLM-4.7-Flash组合 去年我在处理个人知识管理时,发现每天要重复执行大量机械操作:整理网页摘录、归类PDF文档、生成日报摘要。尝试过各种自动化工具后&#x…...
Java 企业级应用:基于 SpringBoot 集成 Pixel Dream Workshop 构建内容中台
Java 企业级应用:基于 SpringBoot 集成 Pixel Dream Workshop 构建内容中台 1. 企业内容中台的业务场景与挑战 现代企业面临内容生产的三大痛点:创意产出效率低、设计资源不足、多平台适配成本高。以电商行业为例,一个中型电商平台每月需要…...
YOLOv11赋能卡证检测矫正:新一代目标检测模型实战应用
YOLOv11赋能卡证检测矫正:新一代目标检测模型实战应用 最近在做一个卡证信息自动录入的项目,发现最头疼的不是后面的文字识别,而是第一步——把歪歪扭扭、角度各异的证件图片给“摆正”了。传统的图像处理方法,比如霍夫变换找直线…...
零基础玩转OpenClaw:星图Qwen3-32B镜像的10个入门级自动化案例
零基础玩转OpenClaw:星图Qwen3-32B镜像的10个入门级自动化案例 1. 为什么选择OpenClawQwen3-32B组合? 去年冬天,当我第一次听说OpenClaw这个开源自动化框架时,内心是既兴奋又忐忑的。兴奋的是终于有一个能在本地电脑上实现AI自动…...
为Jetson AGX添加自定义硬件:手把手编写设备树节点驱动LED与PPS
Jetson AGX硬件扩展实战:从设备树节点到LED与PPS驱动开发 在嵌入式开发领域,Jetson AGX Xavier凭借其强大的计算能力和丰富的接口资源,成为工业控制、机器人视觉等高性能场景的首选平台。但要让这块开发板真正发挥潜力,掌握自定义…...
保姆级教程:在Ubuntu 22.04上用RTX 4090复现DepthAnything V2(含Open3D点云可视化避坑指南)
保姆级教程:在Ubuntu 22.04上用RTX 4090复现DepthAnything V2(含Open3D点云可视化避坑指南) 深度估计技术正在重塑计算机视觉领域,而DepthAnything V2凭借其轻量级架构和精细的深度预测能力,成为当前最受关注的开源模型…...
多策略融合改进蜣螂算法:Fuch混沌初始化与自适应变异优化MATLAB实现
1. 蜣螂算法基础与改进需求 蜣螂优化算法(Dung Beetle Optimizer, DBO)是受自然界蜣螂行为启发而设计的一种新型群体智能算法。它通过模拟蜣螂的滚球、繁殖、觅食和偷窃四种核心行为,实现了对解空间的高效探索。但在处理高维复杂函数优化问题…...
爬虫对抗:ZLibrary 反爬机制实战分析(第二版)
摘要: 本文从爬虫工程化角度,详细分析 ZLibrary 站点的常见反爬策略,包括 IP 限流、Cookie 校验、请求头检测、人机验证、接口签名等,并给出对应的 Python 实战对抗思路与代码示例。本文仅用于网络安全技术学习与反爬防护研究&…...
macOS Monterey安装OpenClaw:对接Qwen3-32B镜像全记录
macOS Monterey安装OpenClaw:对接Qwen3-32B镜像全记录 1. 为什么选择OpenClaw与Qwen3-32B组合 去年冬天第一次接触OpenClaw时,我正被重复性的文件整理工作折磨得焦头烂额。当时试过几个自动化工具,要么功能太局限,要么需要把数据…...
一维卷积与RNN的融合策略:高效处理长序列数据的实战指南
1. 为什么需要融合一维卷积与RNN? 在处理长序列数据时,我们常常面临两个关键挑战:局部模式识别和长期依赖建模。一维卷积神经网络(CNN)擅长捕捉局部特征,比如音频信号中的音素或文本中的短语模式࿱…...
