新书速览|循序渐进Spark大数据应用开发

《循序渐进Spark大数据应用开发》

本书内容

《循序渐进Spark大数据应用开发》结合作者一线开发实践,循序渐进地介绍了新版Apache Spark 3.x的开发技术。全书共10章,第1章和第2章主要介绍Spark的基本概念、安装,并演示如何编写最简单的Spark程序。第3章深入探讨了Spark的核心组件RDD。第4章讲解了Spark集群管理,帮助读者理解任务提交与执行的基本原理。第5章介绍了Spark SQL,这是处理结构化数据的基础工具。第6章展示了Spark Web UI,通过界面化的方式了解Spark集群运行状况。第7章和第8章分别介绍了Spark流式数据处理框架Spark Streaming和Structured Streaming。第9章和第10章则分别介绍了业界流行的机器学习和图计算处理框架MLlib和GraphX。书中各章节还提供了丰富的实战案例和上机练习题,以便读者在学习的同时进行实际操作,迅速提升动手能力。

本书作者

柳伟卫,网名老卫、waylau,在IT公司担任过项目经理、架构师、高级技术顾问等职位,拥有十余年开发经验,具有丰富的软件开发管理及系统架构经验。主导过多个省、国家级大型分布式系统的设计与研发,参与过面向全球的供应链系统服务化改造。在实际工作中,积累了大量的分布式系统、微服务架构以及性能调优经验。业余时间创建了 waylau.com 网站,用于分享个人技术心得。喜欢开源,长期跃于各大开源社区,编著了《跟老卫学HarmonyOS开发》《Netty 实战(精髓)》等近30余本开源技术教程(见 https://waylau.com/books/),广受网友好评,是 CSDN、 开源中国、阿里云开发者、华为开发者等技术社区专家,慕课网、华为开发者联盟社区认证讲师。已出版包括《HarmonyOS应用开发入门》《分布式系统常用技术及案例分析》《Java核心编程》《轻量级Java EE企业应用开发实战》《Node.js+Express+MongoDB+Vue.js全栈开发实战》《Netty原理解析与开发实战》等在内的几十本专著。 

本书读者

《循序渐进Spark大数据应用开发》技术先进,案例丰富,适合对Spark大数据应用感兴趣的学生、大数据开发人员及架构师使用,也可作为培训机构和高校大数据课程的教学用书。

本书目录

第 1 章  Spark概述 1

1.1  Spark简介 1

1.1.1  诞生与初始阶段 1

1.1.2  开源与社区建设 2

1.1.3  成为顶级项目 2

1.1.4  版本更新 3

1.2  Spark组成 4

1.2.1  Spark Core 5

1.2.2  集群管理器 5

1.2.3  Spark UI 5

1.2.4  Spark SQL 6

1.2.5  Spark Streaming 6

1.2.6  Structured Streaming 6

1.2.7  MLlib 6

1.2.8  GraphX 7

1.2.9  其他 7

1.3  Spark数据类型 7

1.3.1  RDD 7

1.3.2  DataFrame 8

1.3.3  Dataset 8

1.3.4  数值类型 8

1.3.5  字符串类型 8

1.3.6  日期和时间类型 9

1.3.7  复杂类型 9

1.4  Spark的使用场景 9

1.4.1  批处理 9

1.4.2  实时流处理 9

1.4.3  分布式文件系统 10

1.4.4  机器学习 10

1.4.5  图计算 10

1.5  Spark与Hadoop的联系与区别 11

1.5.1  Hadoop概述 11

1.5.2  Spark的优缺点 11

1.5.3  Spark与Hadoop的关系 12

1.6  本章小结 12

第 2 章  Spark安装及初体验 13

2.1  下载并安装Spark 13

2.1.1  普通安装 13

2.1.2  通过Docker镜像安装 15

2.1.3  验证安装 17

2.2  通过Shell使用Spark 18

2.2.1  使用Scala的Shell 18

2.2.2  使用其他语言的Shell 19

2.3  实战:通过Spark进行词频统计 19

2.3.1  初始化应用 19

2.3.2  创建Spark应用程序 20

2.3.3  准备数据文件 22

2.3.4  运行程序 22

2.4  日志信息详解 23

2.4.1  启动信息 23

2.4.2  资源分配、Spark上下文初始化 25

2.4.3  任务进度和状态 26

2.4.4  应用程序日志 29

2.4.5  完成信息 29

2.5  动手练习 31

练习1:安装和配置Spark 31

练习2:使用Spark读取CSV文件并显示前5行 32

练习3:使用Spark创建不同类型的数据结构 33

练习4:通过Spark进行词频统计 34

2.6  本章小结 36

第 3 章  RDD基础编程 37

3.1  了解RDD的基本概念 37

3.1.1  RDD的定义 37

3.1.2  RDD的特性 38

3.1.3  RDD的操作 38

3.1.4  RDD的依赖关系 38

3.1.5  RDD的容错机制 39

3.1.6  RDD的持久化 40

3.2  创建RDD 40

3.2.1  并行化集合 40

3.2.2  读取外部数据集 40

3.3  操作RDD 41

3.4  实战:transformation操作 42

3.4.1  map 42

3.4.2  filter 44

3.4.3  flatMap 44

3.4.4  sample 45

3.4.5  union 46

3.4.6  distinct 46

3.4.7  groupByKey 47

3.5  实战:action操作 48

3.5.1  collect 48

3.5.2  reduce 49

3.5.3  count 49

3.5.4  first 50

3.5.5  take 50

3.5.6  foreach 51

3.5.7  saveAsTextFile 51

3.6  惰性求值 52

3.7  函数式编程 53

3.8  持久化 53

3.8.1  RDD持久化的基本概念 53

3.8.2  RDD持久化的方法 54

3.8.3  RDD持久化的存储级别 54

3.8.4  RDD持久化的使用场景 54

3.8.5  RDD持久化的注意事项 54

3.8.6  删除数据 55

3.9  实战:持久化 55

3.10  共享变量 57

3.10.1  广播变量 57

3.10.2  累加器 58

3.11  混洗 60

3.11.1  定义与原理 60

3.11.2  混洗流程 61

3.11.3  混洗优化方法 62

3.12  键-值对 62

3.13  动手练习 63

练习1:创建一个RDD并打印其元素(并行化集合) 63

练习2:读取外部数据集并统计单词数量(读取外部数据集) 64

3.14  本章小结 65

第 4 章  Spark集群管理 66

4.1  Spark集群概述 66

4.1.1  Spark集群组件 66

4.1.2  使用Spark集群的注意事项 67

4.1.3  集群管理器类型 68

4.2  提交任务到Spark集群 68

4.2.1  捆绑应用程序的依赖关系 68

4.2.2  使用spark-submit启动应用 69

4.2.3  主节点URL 70

4.2.4  从文件加载配置 71

4.3  启动Spark集群 71

4.3.1  手动启动集群 72

4.3.2  集群启动脚本 72

4.4  Spark集群的高可用方案 73

4.4.1  使用ZooKeeper的备用模式 73

4.4.2  使用本地文件系统的单节点恢复 74

4.5  使用YARN集群 74

4.5.1  在YARN集群管理器上启动Spark 74

4.5.2  添加其他的JAR 75

4.5.3  调试应用 75

4.5.4  使用Spark历史记录服务器替换Spark Web UI 76

4.6  YARN集群的常用配置 77

4.7  YARN集群资源分配和配置 80

4.8  YARN阶段级调度 81

4.8.1  阶段级调度概述 81

4.8.2  注意事项 82

4.9  动手练习 82

练习1:提交任务到Spark集群 82

练习2:启动Spark集群 83

练习3:使用YARN集群 84

练习4:使用Spark进行数据清洗和转换 84

4.10  本章小结 86

第 5 章  Spark SQL 87

5.1  Spark SQL的基本概念及工作原理 87

5.1.1  Spark SQL的基本概念 87

5.1.2  Spark SQL的工作原理 88

5.1.3  Spark RDD与Spark SQL的比较 89

5.1.4  抉择建议 90

5.2  Dataset与DataFrame 90

5.2.1  SQL API与Dataset/DataFrame API 90

5.2.2  RDD、Dataset和DataFrame的优缺点总结 92

5.2.3  RDD、Dataset、DataFrame的相互转换 93

5.3  实战:DataFrame的基本操作 94

5.3.1  创建SparkSession 94

5.3.2  创建DataFrame 95

5.3.3  DataFrame的常用操作 97

5.4  实战:Dataset的基本操作 99

5.4.1  创建SparkSession 99

5.4.2  创建Dataset 100

5.4.3  Dataset的常用操作 101

5.5  实战:使用DataFrame创建临时视图 103

5.5.1  如何创建本地临时视图 104

5.5.2  createTempView与createOrReplaceTempView的异同 105

5.5.3  全局临时视图 105

5.6  实战:RDD转换为Dataset 106

5.6.1  使用反射推断Schema 106

5.6.2  以编程方式构建Schema 107

5.7  Apache Parquet列存储格式 108

5.7.1  什么是列存储格式 108

5.7.2  Parquet文件格式 110

5.8  实战:Apache Parquet数据源的读取和写入 111

5.8.1  读取Parquet文件 111

5.8.2  写入Parquet文件 112

5.8.3  手动指定选项 113

5.9  实战:使用JDBC操作数据库 115

5.9.1  引入JDBC驱动程序 115

5.9.2  初始化表结构和数据 115

5.9.3  读取表数据 117

5.9.4  设置查询条件 118

5.9.5  将数据写入表 119

5.10  实战:读取二进制文件 120

5.10.1  读取二进制文件 120

5.10.2  运行应用 121

5.11  实战:导出数据到CSV文件 122

5.11.1  创建Dataset 122

5.11.2  将Dataset导出到CSV文件 123

5.11.3  运行 124

5.12  Apache ORC文件 124

5.12.1  ORC文件概述 124

5.12.2  ORC支持的数据类型 125

5.12.3  ORC实现 126

5.12.4  矢量化读取器 127

5.12.5  模式合并 127

5.12.6  使用Zstandard压缩 127

5.12.7  使用Bloom过滤器 127

5.12.8  列式加密 128

5.12.9  Hive元存储ORC表转换 128

5.12.10  ORC的常用配置 128

5.13  实战:Apache ORC文件操作示例 129

5.13.1  写入ORC文件 129

5.13.2  读取ORC文件 130

5.14  Apache Hive数据仓库 130

5.14.1  Hive的特性 131

5.14.2  Hive数据组织 131

5.14.3  Hive的数据类型 132

5.14.4  创建、显示、更改和删除表 133

5.14.5  加载数据 136

5.14.6  查询 137

5.15  实战:Apache Hive操作示例 139

5.15.1  Spark集成Hive 139

5.15.2  创建SparkSession 140

5.15.3  建表 141

5.15.4  加载数据 141

5.15.5  查询 141

5.15.6  运行 141

5.16  Apache Avro格式 142

5.16.1  Avro概述 142

5.16.2  Avro的架构与实现 143

5.16.3  Avro类型转换Spark SQL类型 143

5.16.4  Spark SQL类型转换Avro类型 144

5.17  实战:Apache Avro操作示例 145

5.17.1  Spark集成Avro 145

5.17.2  创建SparkSession 147

5.17.3  读取Avro文件 147

5.17.4  写入Avro文件 147

5.18  动手练习 148

练习1:使用DataFrame创建临时视图 148

练习2:对Apache Parquet数据源进行数据的读取和写入 149

练习3:使用DataFrame操作数据库 149

练习4:导出数据到CSV文件 150

5.19  本章小结 150

第 6 章  Spark Web UI 152

6.1  Web UI概述 152

6.1.1  Web UI的组成 152

6.1.2  Web UI的功能 153

6.1.3  Web UI的使用 153

6.1.4  Web UI的优化 153

6.2  启动Web UI 154

6.2.1  Standalone模式 154

6.2.2  YARN模式 154

6.2.3  Kubernetes模式 154

6.2.4  其他集群管理器 155

6.3  Jobs页面 155

6.4  Stages页面 156

6.5  Storage页面 157

6.6  Environment页面 158

6.7  Executors页面 160

6.8  SQL页面 161

6.9  动手练习 162

练习1:启动Web UI并访问 162

练习2:使用Web UI了解集群运行状态 163

6.10  本章小结 164

第 7 章  Spark Streaming 165

7.1  Spark Streaming概述 165

7.1.1  数据集类型 165

7.1.2  统一数据处理 166

7.1.3  Spark Streaming的基本概念 167

7.1.4  Spark Streaming的工作原理 167

7.1.5  Spark Streaming的应用场景 168

7.1.6  Spark Streaming的优势与挑战 168

7.1.7  使用Spark Streaming的依赖 168

7.2  DStream的transformation操作 169

7.2.1  DStream的常用操作 170

7.2.2  DStream的窗口操作 170

7.3  DStream的输入 171

7.3.1  输入源的使用要点 172

7.3.2  基本输入源 172

7.3.3  高级输入源 173

7.3.4  Receiver的可靠性 173

7.3.5  自定义Receiver 173

7.3.6  自定义可靠的Receiver 175

7.4  实战:DStream无状态的transformation操作 176

7.4.1  创建JavaStreamingContext对象 176

7.4.2  创建DStream 176

7.4.3  启动计算 177

7.4.4  单词发送服务器 177

7.4.5  运行 179

7.5  实战:DStream有状态的transformation操作 179

7.5.1  滑动窗口 179

7.5.2  编写滑动窗口示例 181

7.5.3  运行 181

7.6  DStream的输出操作 181

7.6.1  常用的输出操作 182

7.6.2  foreachRDD设计模式 182

7.7  实战:DStream的输出操作 183

7.7.1  将DStream输出到文件 184

7.7.2  运行 184

7.8  Spark Streaming使用DataFrame和SQL操作 185

7.9  Spark Streaming检查点 186

7.9.1  Spark Streaming检查点概念及原理 186

7.9.2  应用场景 187

7.9.3  配置方法 187

7.9.4  优化策略 188

7.9.5  总结与展望 188

7.10  Spark Streaming性能优化 188

7.10.1  数据接收并行度调优 188

7.10.2  批处理时间优化 189

7.10.3  内存管理优化 189

7.10.4  容错性优化 189

7.10.5  其他优化策略 190

7.11  Spark Streaming容错机制 190

7.11.1  Spark Streaming容错机制概述 190

7.11.2  基于文件的数据源容错机制 190

7.11.3  基于Receiver的数据源容错机制 191

7.11.4  驱动程序节点的容错机制 191

7.12  实战:Spark Streaming与Kafka集成 192

7.12.1  Spark Streaming集成Kafka 192

7.12.2  自定义生产者 192

7.12.3  构造消费者 193

7.12.4  启动Kafka服务器 195

7.12.5  运行 196

7.13  动手练习 198

练习1:DStream无状态的transformation操作 198

练习2:DStream有状态的transformation操作(滑动窗口) 199

练习3:编写一个Spark Streaming应用程序 201

7.14  本章小结 203

第 8 章  Structured Streaming 204

8.1  Structured Streaming概述 204

8.1.1  基本概念 204

8.1.2  处理事件时间和延迟数据 206

8.1.3  容错语义 207

8.1.4  Spark Streaming与Structured Streaming的比较 207

8.2  创建流式DataFrame/Dataset 208

8.2.1  从输入源创建DataFrame/Dataset 208

8.2.2  流式DataFrame/Dataset的模式推理与分区 209

8.3  Structured Streaming操作 210

8.3.1  基本操作 210

8.3.2  窗口操作 211

8.3.3  连接操作 211

8.3.4  不支持的DataFrame/Dataset操作 213

8.4  Structured Streaming统计来自Socket数据流的词频 214

8.4.1  创建SparkSession 214

8.4.2  创建DataFrame 214

8.4.3  执行查询 215

8.4.4  运行 215

8.5  实战:Structured Streaming窗口操作 216

8.5.1  在事件时间上执行窗口操作 216

8.5.2  创建SparkSession 217

8.5.3  创建DataFrame 217

8.5.4  执行查询 218

8.5.5  运行 219

8.6  Structured Streaming输出接收器 220

8.6.1  文件接收器 220

8.6.2  Kafka接收器 220

8.6.3  Foreach接收器 220

8.6.4  Console接收器 220

8.6.5  内存接收器 221

8.7  消除重复数据 221

8.7.1  使用唯一身份标识符 221

8.7.2  结合使用水印 221

8.8  状态存储 222

8.8.1  状态存储与恢复 222

8.8.2  状态分片与读写 223

8.8.3  版本管理 223

8.8.4  状态存储的实现 223

8.9  启动流式查询 225

8.9.1  流式查询的参数 225

8.9.2  foreach和foreachBatch 226

8.9.3  流式表API 228

8.9.4  触发器 228

8.9.5  管理流式查询 230

8.10  异步进度跟踪 231

8.10.1  异步进度跟踪的概念与重要性 231

8.10.2  异步进度跟踪的实现机制 232

8.10.3  使用示例 232

8.10.4  使用限制 233

8.11  连续处理 233

8.11.1  启用连续处理 233

8.11.2  连续处理与微批处理的比较 234

8.12  实战:Structured Streaming与Kafka集成 235

8.12.1  Structured Streaming集成Kafka 235

8.12.2  构造消费者 236

8.12.3  运行 237

8.13  动手练习 239

练习1:使用Structured Streaming统计来自Socket数据流的词频 239

练习2:使用Structured Streaming进行窗口操作 240

练习3:使用Structured Streaming与Kafka集成 241

8.14  本章小结 243

第 9 章  MLlib 244

9.1  MLlib概述 244

9.1.1  功能简介 244

9.1.2  重要算法 245

9.1.3  应用状况 245

9.2  机器学习基础知识 246

9.2.1  机器学习的定义 246

9.2.2  机器学习的分类 246

9.2.3  机器学习的基本流程 247

9.2.4  常见的机器学习算法 247

9.3  MLlib的RDD API和DataFrame API 247

9.4  MLlib流水线 248

9.4.1  MLlib流水线的核心概念 248

9.4.2  Pipeline 248

9.5  实战:MLlib的Estimator例子 250

9.5.1  使用MLlib依赖 250

9.5.2  创建SparkSession 250

9.5.3  创建DataFrame 250

9.5.4  使用Estimator 251

9.5.5  运行 252

9.6  实战:MLlib的Transformer例子 253

9.6.1  创建DataFrame 253

9.6.2  使用Transformer 253

9.6.3  运行 254

9.7  实战:MLlib的Pipeline例子 254

9.7.1  准备JavaBean 254

9.7.2  准备训练数据 255

9.7.3  配置Pipeline 256

9.7.4  学习PipelineModel 256

9.7.5  运行 257

9.8  动手练习 257

练习1:使用Spark MLlib中的Estimator进行线性回归模型的训练 257

练习2:使用Spark MLlib中的Transformer进行特征转换 259

练习3:使用Spark MLlib中的Pipeline进行特征转换和模型训练 261

9.9  本章小结 263

第 10 章  GraphX 264

10.1  GraphX概述 264

10.1.1  GraphX的核心概念 264

10.1.2  GraphX的主要功能 265

10.1.3  GraphX的实现原理 265

10.1.4  GraphX的应用场景 265

10.2  属性图 266

10.2.1  属性图的基本结构 266

10.2.2  属性图的存储与处理 266

10.2.3  属性图的图计算功能 267

10.2.4  属性图的优化 267

10.3  实战:GraphX从边构建图 268

10.3.1  初始化JavaSparkContext 268

10.3.2  初始化Edge 268

10.3.3  初始化Graph 269

10.3.4  输出Graph的内容 269

10.3.5  运行 269

10.4  GraphX分区优化 270

10.5  动手练习 271

练习:使用GraphX库 271

10.6  本章小结 272

参考文献 274

编辑推荐

1.《循序渐进Spark大数据应用开发》是一本深入浅出的Spark大数据开发实战指南,专为希望掌握Apache Spark 3.x技术栈的开发者量身定制。《循序渐进Spark大数据应用开发》不仅涵盖了Spark的基础概念和安装步骤,更通过丰富的实战案例和上机练习,引导读者逐步深入理解并掌握Spark的核心组件、集群管理、SQL处理、流式数据处理以及机器学习与图计算等高级功能。

2.作者凭借一线开发经验,精心编排了10个章节的内容,确保读者能够循序渐进地学习Spark的各项关键技术。从最简单的Spark程序编写开始,逐步过渡到复杂的数据处理和分析任务,每一章都充满了实用价值和操作指导。

3.特别值得一提的是,《循序渐进Spark大数据应用开发》提供了24个精心设计的实战案例和26个上机练习题,这些内容旨在帮助读者将理论知识转化为实践技能,快速提升解决实际问题的能力。无论是对于学生、大数据开发人员还是架构师来说,这都是一本不可多得的宝贵资源。

本文摘自《循序渐进Spark大数据应用开发》,获出版社和作者授权发布。

循序渐进Spark大数据应用开发——jd

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/20521.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

一道算法期末应用题及解答

1.印刷电路板布线区划分成为n m 个方格,确定连接方格a 到方格b 的最短布线方案。 在布线时,只能沿直线或者直角布线,为避免交叉,已经布线的方格做了封锁标记,其他线路不允许穿过被封锁的方格,某…

2024内科学综合类科技核心期刊汇总

在已经公布的中国科技核心期刊目录(2024年版)中,5本内科学综合类期刊入选。常笑医学整理了这5本科技核心期刊的详细参数,以及投稿信息,供大家在论文投稿时参考,有需要的赶紧收藏! 1.《临床内科…

【网络】Socket编程TCP/UDP序列化和反序列化理解应用层(C++实现)Json::Value

主页:醋溜马桶圈-CSDN博客 专栏:计算机网络原理_醋溜马桶圈的博客-CSDN博客 gitee:mnxcc (mnxcc) - Gitee.com 目录 1.基于Socket的UDP和TCP编程介绍 1.1 基本TCP客户—服务器程序设计基本框架 ​编辑1.2 基本UDP客户—服务器程序设计基本框…

Spring MVC——针对实习面试

目录 Spring MVC什么是Spring MVC?简单介绍下你对Spring MVC的理解?Spring MVC的优点有哪些?Spring MVC的主要组件有哪些?Spring MVC的工作原理或流程是怎样的?Spring MVC常用注解有哪些? Spring MVC 什么是…

硬件工程师之电子元器件—二极管(10)之可变电容和TVS二极管

写在前面 本系列文章主要讲解二极管的相关知识,希望能帮助更多的同学认识和了解二极管。 若有相关问题,欢迎评论沟通,共同进步。(*^▽^*) 二极管 25. 齐纳二极管的动态阻抗 齐纳阻抗是齐纳二极管在传导电流时的等效串联电阻(E…

2024-11-19 树与二叉树

一、树的定义和基本语术 1.基本概念:从根节点出发,依次长出各个分支,各个分支也能长出下级分支。(根节点无前驱,叶无后继)除根节点外,任何一个结点有且仅有一个前驱。 2.树的基本概念&#xff…

【金融风控项目-08】:特征构造

文章目录 1.数据准备1.1 风控建模特征数据1.2 人行征信数据1.3 据之间的内在逻辑 2 样本设计和特征框架2.1 定义观察期样本2.2 数据EDA(Explore Data Analysis)2.3 梳理特征框架 3 特征构造3.1 静态信息和时间截面特征3.2 未来信息问题3.2.1 未来信息案例3.2.2 时间序列特征的未…

docker基础

一 docker整体架构 docker镜像(image) docker hub类似于maven远程仓库地址: https://hub.docker.com/ 该地址用于搜索并下载地址。 镜像下载命令: docker pull imagename 比如:docker pull to…

Qt 元对象系统

Qt 元对象系统 Qt 元对象系统1. 元对象的概念2. 元对象系统的核心组件2.1 QObject2.2 Q_OBJECT 宏2.3 Meta-Object Compiler (MOC) 3. 信号与槽3.1 基本概念信号与槽的本质信号和槽的关键特征 3.2 绑定信号与槽参数解析断开连接 3.3 标准信号与槽查找标准信号与槽使用示例规则与…

Lua如何连接MySQL数据库?

大家好,我是袁庭新。使用Lua语言如何来连接数据库呢?新哥这篇文章给你安排上。 1 LuaSQL概述 LuaSQL是一个轻量级的Lua到数据库管理系统(DBMS)的接口库,由Kepler Project维护,且是开源的。它提供了一个简…

高级指南:全面解析线上服务器CPU占用过高问题及其解决方案

文章目录 拿到CPU占用高的进程ID通过进程ID拿到CPU占用高的线程ID将线程ID转换为十六进制jstack分析线程栈信息 CPU占用过高的时候要先找出到底是哪个进程下的线程占用内存过高了。 我在线上预先写了一个Java程序,Test.java用于本篇文章实验所用。模拟CPU占用过高时…

单片机智能家居火灾环境安全检测-分享

目录 前言 一、本设计主要实现哪些很“开门”功能? 二、电路设计原理图 电路图采用Altium Designer进行设计: 三、实物设计图 四、程序源代码设计 五、获取资料内容 前言 传统的火灾报警系统大多依赖于简单的烟雾探测器或温度传感器,…

打造网页版Ubuntu环境:群晖NAS部署docker-webtop与远程访问指南

文章目录 前言1. 下载Docker-Webtop镜像2. 运行Docker-Webtop镜像3. 本地访问网页版Linux系统4. 群晖NAS安装Cpolar工具5. 配置异地访问Linux系统6. 异地远程访问Linux系统7. 固定异地访问的公网地址 前言 本文旨在详细介绍如何在群晖NAS部署docker-webtop,并结合c…

Python轴承故障诊断 (19)基于Transformer-BiLSTM的创新诊断模型

往期精彩内容: Python-凯斯西储大学(CWRU)轴承数据解读与分类处理 Pytorch-LSTM轴承故障一维信号分类(一)-CSDN博客 Pytorch-CNN轴承故障一维信号分类(二)-CSDN博客 Pytorch-Transformer轴承故障一维信号分类(三)-CSDN博客 三十多个开源…

STM32设计学生宿舍监测控制系统-分享

目录 前言 一、本设计主要实现哪些很“开门”功能? 二、电路设计原理图 电路图采用Altium Designer进行设计: 三、实物设计图 四、程序源代码设计 五、获取资料内容 前言 本项目旨在利用STM32单片机为核心,结合传感器技术、无线通信技…

英伟达 Isaac Sim仿真平台体验

一、产品名称及版本 Isaac Sim 是由 NVIDIA 开发的一款基于物理模拟的机器人仿真平台,旨在为机器人开发者和研究人员提供一个高效、真实的仿真环境。Isaac Sim 基于 NVIDIA 的 Omniverse 平台,结合了强大的图形渲染、物理引擎和深度学习能力,…

利用寄存器方式,点亮led3最小板

作业:利用寄存器方式,点亮led3小灯 1.通过观察原理图, led3, 是PA8, 一段接3.3v, 一端接io口, 所以PA8端口输出低电平, 就可以让小灯点亮了 2.利用keil创建最小工程 点击跳转博客 3.按照库函数的配置方式 #include "stdint.h" #include "stm32f10x.h" …

Helius:从数据出发,衡量 Solana 的真实去中心化程度

撰文:Lostin,Helius 编译:Yangz,Techub News 摘要 截至 Epoch 685,Solana 有 4514 个节点,包括 1414 个验证者和 3100 个 RPC。没有哪个验证者控制的质押份额超过 3.2%。 中本聪系数(NC&#…

SpringBoot 增量部署发布(第2版)

一、背景介绍 书接上一篇《SpringBoot 增量部署发布_springboot增量部署-CSDN博客》,上一篇内容实现了将静态资源与jar分离,但是即使是打包成**-exec.jar,解压jar文件,可以看到里面包含了static,resource目录&#xf…

一篇保姆式centos/ubantu安装docker

前言: 本章节分别演示centos虚拟机,ubantu虚拟机进行安装docker。 上一篇介绍:docker一键部署springboot项目 一:centos 1.卸载旧版本 yum remove docker docker-client docker-client-latest docker-common docker-latest doc…