RDD 的分区和 Shuffle 查看分区 | 学习笔记

简介: 快速学习 RDD 的分区和 Shuffle 查看分区

开发者学堂课程【大数据Spark2020最新课程(知识精讲与实战演练)第二阶段RDD 的分区和 Shuffle 查看分区学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/689/detail/11991


RDD 的分区和 Shuffle 查看分区


内容介绍

一、查看分区的方法

二、验证

 

一、查看分区的方法

本节继续学习 RDD 的分区和 Shuffle 的过程,讲解如何查看分区。

第一种方式通过 webui 的方式:

首先进入 shell 窗口:

image.png

因为有一些分区操作放在集群里更直观。

编写命令如下:

cd/export/servers/spark

bin/spark-shell --master local[6]

//通过 master 指定 spark shell 的交互式窗口,交互式窗口的运行的位置呢,可以指定 local,也可以指定spark//node01等等。为了便于我们的控制,所以呢,我们直接指定 local[6] 就可以,指定6个分区。

打开 spark

image.png

注意:其中的 Spark context available as'sc 创建了一个对象,叫做 SC,类型是 spark context

Spark context Web UI available athttp://172.21.0.11:4040

//sparkshell 为我们提供了一个 ui 4040的端口上。

继续编写代码:

val rdd1 = sc.parallelize(Seq(12345678910))

拿到 RDD 对象:

image.png

通过创建 RDD并不能直接执行 RDD,只能拿到一个 RDD 对象,执行 RDD 需要调用 RDD1中的 action

每一次调用 action,就会生成一个 job 放在集群当中。第二步就是分阶段,每个阶段叫做一个 stages 。接下来先调用 collect。执行,

rdd1.collect()

获取到结果如下:

image.png

然后通过浏览器打开 node01 4040端口:

image.png

此处指 RDD 6个分区,在开启 spark shell 窗口时,指定的 master local[6] 。然后  :quit  退出。

猜测:通过 local[6] 来开启 spark shell ,默认创建一个 ID 时,就会有六个分区。接下来验证想法。

 

二、验证

编写代码:

bin/spark-shell --master local[8]

指定 local[8]

image.png

val rdd1 = sc.parallelize(Seq(12345678910))

image.png

rdd1.collect()

再次进入浏览器打开 node01 4040端口:

image.png

默认分区变为8。证明猜测正确。

第二种查看分区的方法:

rdd1.partitions

rdd1.partitions.size

可以查看集合数量,通过 size 查看有8个分区,partition 这个集合中保留分区的信息。

image.png

查看分区的2种方式:

1.  通过 webui 的方式。

2.   通过partitions的方式。

相关文章
|
缓存 数据安全/隐私保护 Sentinel
断路精灵:探秘Sentinel熔断策略的神奇效果
断路精灵:探秘Sentinel熔断策略的神奇效果
249 0
|
SQL 存储 API
Flink实践:通过Flink SQL进行SFTP文件的读写操作
虽然 Apache Flink 与 SFTP 之间的直接交互存在一定的限制,但通过一些创造性的方法和技术,我们仍然可以有效地实现对 SFTP 文件的读写操作。这既展现了 Flink 在处理复杂数据场景中的强大能力,也体现了软件工程中常见的问题解决思路——即通过现有工具和一定的间接方法来克服技术障碍。通过这种方式,Flink SQL 成为了处理各种数据源,包括 SFTP 文件,在内的强大工具。
397 15
|
11月前
|
Java Apache C++
别再手写RPC了,Apache Thrift帮你自动生成RPC客户端及服务端代码
Thrift 是一个轻量级、跨语言的远程服务调用框架,由 Facebook 开发并贡献给 Apache。它通过 IDL 生成多种语言的 RPC 服务端和客户端代码,支持 C++、Java、Python 等。Thrift 的主要特点包括开发速度快、接口维护简单、学习成本低和多语言支持。广泛应用于 Cassandra、Hadoop 等开源项目及 Facebook、百度等公司。
别再手写RPC了,Apache Thrift帮你自动生成RPC客户端及服务端代码
|
前端开发 应用服务中间件 nginx
docker部署本地前端项目思路
docker部署本地前端项目思路
243 7
|
监控 测试技术 开发者
开发者如何使用微服务引擎MSE
【10月更文挑战第16天】开发者如何使用微服务引擎MSE
751 4
|
分布式计算 Serverless 数据处理
|
数据采集 机器人 测试技术
SeleniumBase在无头模式下绕过验证码的完整指南
本文详细介绍了如何在SeleniumBase的无头模式下绕过验证码,通过使用代理IP(以爬虫代理为例)、设置User-Agent和Cookie等手段提升爬虫效率。文章首先分析了无头模式下面临的验证码挑战,然后提供了具体的策略和代码示例,包括浏览器设置、代理IP配置及模拟用户行为的方法。最后,通过一个访问大众点评网站并绕过验证码的完整代码示例,展示了如何在实际场景中应用这些技术,应对现代网站的反爬虫机制。此外,还提供了一些提高爬虫效率的实用技巧,如代理池轮换、设置合适延迟和分布式爬虫等。
1299 1
|
设计模式 C++ 开发者
C++一分钟之-智能指针:unique_ptr与shared_ptr
【6月更文挑战第24天】C++智能指针`unique_ptr`和`shared_ptr`管理内存,防止泄漏。`unique_ptr`独占资源,离开作用域自动释放;`shared_ptr`通过引用计数共享所有权,最后一个副本销毁时释放资源。常见问题包括`unique_ptr`复制、`shared_ptr`循环引用和裸指针转换。避免这些问题需使用移动语义、`weak_ptr`和明智转换裸指针。示例展示了如何使用它们管理资源。正确使用能提升代码安全性和效率。
299 2
|
分布式计算 Java Scala
spark 与 scala 的对应版本查看、在idea中maven版本不要选择17,弄了好久,换成11就可以啦
spark 与 scala 的对应版本查看、.在idea中maven版本不要选择17,弄了好久,换成11就可以啦
763 2
|
机器学习/深度学习 人工智能 安全
SentinelOne监测中隔离的文件,人工如何取消隔离
SentinelOne 的 Agent 在终端设备上实时监测系统的活动,包括文件操作、网络通信、内存访问等, SentinelOne 使用人工智能和机器学习技术对监测到的活动进行行为分析,识别潜在的威胁,包括已知的恶意软件和未知的零日攻击。 基于行为分析和实时监测,SentinelOne 快速识别出可能的威胁,并进行准确的威胁分类,包括病毒、勒索软件、恶意脚本等。 SentinelOne 可以自动采取响应措施,如隔离受感染的设备、终止恶意进程、删除恶意文件等,以尽快减轻威胁带来的影响。当技术人员发现隔离的文件没有危害时,可以手动隔离。文章阐述了怎么手动撤销的过程。
1621 0
SentinelOne监测中隔离的文件,人工如何取消隔离