大数据知识点

Spark:

Spark RDD的概念:

RDD是Spark中最基本的数据抽象,是一个不可变、可分区、里面的元素可并行计算的集合。它代表一个只读的分区记录集合,每个RDD可以分成多个分区,每个分区就是一个数据集片段,并且一个RDD的不同分区可以被保存到集群中不同的节点上,从而可以在集群中的不同节点上进行并行计算。

RDD具有数据流模型的特点,包括自动容错、位置感知性调度和可伸缩性。具体来说,RDD允许用户在执行多个查询时显式地将工作集缓存在内存中,后续的查询能够重用工作集,这极大地提升了查询速度。

检查点机制:

RDD的检查点机制是为了提高容错性和降低故障恢复时间而设置的。通过检查点,可以将RDD的数据保存到持久化存储中,以便在RDD分区丢失或计算节点出现故障时进行恢复。

检查点机制的实现方式是将RDD写入磁盘或其他持久化存储中,并记录其Lineage(血统)关系。

检查点机制可以有效地减少故障恢复时间,并且可以避免全量重算的情况,从而提高计算效率

需要注意的是,检查点机制会增加磁盘I/O和存储开销

Stage:

Spark中的Stage主要是一组并行的任务,每个Stage由一组并行的task组成。这些task是RDD中Partition的执行单元,每个task处理RDD中的一个Partition。

Spark中的Stage有两种类型:宽依赖和窄依赖。窄依赖是指父RDD的每个分区只对应一个子RDD的分区,宽依赖是指父RDD的一个分区对应多个子RDD的分区,这种依赖关系会导致需要shuffle操作,从而使得数据处理效率相对较低。

在Spark中,可以通过合理地组织Stage和task的执行顺序,以及优化宽依赖和窄依赖的处理方式,来提高数据处理效率。

DataFrame:

在Spark中,DataFrame是一种特殊类型的分布式数据表,它以表的形式组织数据,并且包含一组有序的列。与传统的关系型数据库中的表格类似,DataFrame可以包含多种数据类型,如整数、浮点数、字符串等。

与RDD相比,DataFrame提供了更加结构化的数据模型,使得数据处理更加高效和便捷。DataFrame具有以下特点:

  1. 结构化:DataFrame具有明确的列名和数据类型,使得数据处理更加规范和易于理解。
  2. 类型安全:Spark可以检查DataFrame中列的数据类型,并在运行时进行类型转换和验证,避免了类型错误的可能性。
  3. 优化性能:Spark对DataFrame进行了优化,使得数据处理更加高效。
  4. 统一的数据处理方式:Spark中DataFrame的API和SQL API可以互操作,使得数据处理更加灵活和方便。用户可以使用Scala、Python、Java、R等语言编写Spark应用程序,并使用统一的API进行数据处理。

YARN:

YARN的架构:

YARN是Hadoop 2.0中的资源管理系统

YARN的基本架构分为ResourceManager和NodeManager两部分。ResourceManager作为整个集群的全局资源管理器,负责整个集群的资源分配和调度,而NodeManager则负责单个节点上的资源管理和任务执行。

YARN的基本思想:YARN的基本思想是将资源管理和作业调度以及监控的功能拆分为单独的守护进程。这种架构思想是拥有一个全局的ResourceManager(RM)和每个应用程序的·ApplicationMaster(AM)。

YARN的优点:

  1. 更好的扩展性:YARN采用了分布式架构,能够随着集群规模的扩大而实现无缝扩展,从而满足大规模数据处理的需求。

  2. 更高的资源利用率:YARN采用了先进的调度算法和策略,可以根据应用程序的需求和系统资源的情况进行动态调整,从而最大化系统的资源利用率和作业的执行效率。

  3. 更灵活的作业调度:YARN的作业调度采用了有向无环图的方式,可以处理各种类型的计算任务,包括批处理、流处理、图处理

  4. 更强的容错能力:YARN具有自动故障检测和恢复机制

  5. 更丰富的接口和工具:YARN提供了丰富的API接口和工具

YARN的缺点:

YARN的缺点主要包括以下几点:

  1. 资源利用率不均:由于YARN是基于Hadoop的,因此其资源利用率并不高,有些资源可能会被闲置,导致资源浪费。

  2. 配置复杂:YARN的配置相对复杂,需要具备一定的Hadoop基础知识和经验,对于初学者来说可能会有一定的门槛。

  3. 数据局部性差:YARN的资源调度和任务分配是分离的,这会导致数据局部性较差,从而影响数据处理效率。

  4. 社区活跃度不高:尽管YARN是一个相对成熟的大数据处理框架,但其社区活跃度并不高,这可能会影响到YARN的长期发展以及用户的使用体验。

  5. 与其他系统的兼容性差:YARN主要适用于Hadoop生态系统,与其他系统的兼容性可能并不理想,这可能会限制YARN的应用范围。

Hbase

Hbase存在的意义:.

HBase是一个高可靠、高性能、面向列、可伸缩的分布式数据库,是谷歌BigTable的开源实现。HBase主要用来存储非结构化和半结构化的松散数据,并且适用于海量数据存储以及分布式计算的场景。

HBase适用于以下场景:

  1. 海量数据存储:适用于TB至PB级以上的数据存储,提供动态伸缩能力,方便用户在性能或容量需要改变时,改变集群资源,轻松构建企业海量数据存储系统。
  2. 实时查询:HBase的列式KV存储机制,适用于企业用户明细数据即席查询,基于主键的低时延点查,响应时延一般为秒级或毫秒级,方便用户对数据的实时分析。

综上所述,HBase存在的意义在于提供了一个稳定可靠、性能卓越、可伸缩、面向列的分布式云存储系统,适用于海量数据存储以及分布式计算的场景。

Hbase的原理:

  1. 数据模型:HBase采用基于列的存储方式,将数据表划分为多个行和列,行称为行键(Row Key),列称为列族(Column Family)。
  2. 数据存储:HBase将数据存储在HDFS中,以HDFS的块为单位进行数据的读写操作
  3. 数据检索:HBase提供基于行键的随机访问方式,用户通过行键可以快速查找到指定的数据项。
  4. 分布式存储:HBase通过分布式存储技术实现了数据的扩展性和可靠性。
  5. 数据复制:HBase采用基于Master-Slave架构的数据复制机制

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

harbor https

harbor https部署 准备docker-compose安装https 证书harbor安装访问harbor推镜像到harbor 准备 192.168.112.99,harbor,centos7 192.168.112.3,测试机,centos7 docker版本:docker-ce 20.10.16(部署参考&a…

Redis主从+哨兵集群(基于CentOS-8.0)高可用部署方案

目录 一、环境描述 二、Redis 主从集群部署 2.1 Redis下载 2.2 Redis解压 和移动文件 2.4 编译、安装Redis 2.6 新建 bin 和 etc 文件夹 2.7 分发Redis 2.8 配置 2.8.1 主节点配置 2.8.2 从节点配置 2.9 启动Redis服务 2.10 验证主从服务 2.11 查看节点角色信息 2…

有序矩阵中第 K 小的元素

题目链接 有序矩阵中第 K 小的元素 题目描述 注意点 每行和每列元素均按升序排序找到一个内存复杂度优于 O(n) 的解决方案 解答思路 使用二分查找,思路为: (1)因为左上角的元素值更小,右下角的元素值更大&#xf…

初识 Elasticsearch 应用知识,一文读懂 Elasticsearch 知识文集(5)

🏆作者简介,普修罗双战士,一直追求不断学习和成长,在技术的道路上持续探索和实践。 🏆多年互联网行业从业经验,历任核心研发工程师,项目技术负责人。 🎉欢迎 👍点赞✍评论…

【Mybatis】说一下 mybatis 的一级缓存和二级缓存

​ 🍎个人博客:个人主页 🏆个人专栏:Mybatis ⛳️ 功不唐捐,玉汝于成 ​ 目录 前言 正文 一级缓存(Local Cache): 范围: 生命周期: 默认开启&…

C++实战Opencv第一天——win11下配置vs,opencv环境和运行第一个c++代码(从零开始,保姆教学)

OpenCV(Open Source Computer Vision Library)是一个开源的计算机视觉和机器学习软件库,它提供了大量的通用算法和功能,用于处理图像和视频数据。C 通常提供比 Python 更高的执行速度,对于需要高性能处理的任务&#x…

椋鸟C语言笔记#34:文件的随机读写、文件读取结束或失败的判定、缓冲区

萌新的学习笔记,写错了恳请斧正。 目录 文件的随机读写 fseek 使用实例 ftell 使用实例 rewind 文件读取结束或失败的判定 feof ferror 典型使用方式 文件缓冲区 fflush 文件的随机读写 文件的随机读写是指我们可以控制文件位置指示器(光标…

QT 文本框的绘制与复选框组键

.cpp文件 #include "widget.h" #include "ui_widget.h"#include<QDebug> Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this);//更改窗口标题setWindowTitle("我爱xyy");//更改图标setWindow…

使用VSCode内的jupyter编写R语言:绘制中国省份地区热力图

R语言绘制中国省份地区热力图教程 1、R语言的安装和编辑器的选择 对于一门从未接触过的编程语言&#xff0c;相信大家的吐槽点和我一样&#xff1a;又要安装软件&#xff0c;配置环境&#xff01;其实R语言的安装和环境配置并不复杂&#xff0c;只需要安装两部分内容&#xf…

IC验证——perl脚本ccode_standard——c代码寄存器配置标准化

目录 1 脚本名称 2 脚本路径 3 脚本参数说明 4 脚本操作说明 5 脚本代码 1 脚本名称 ccode_standard 2 脚本路径 /scripts/bin/ccode_standard 3 脚本参数说明 次序 参数名 说明 1 address (./rfdig&#xff1b;.&#xff1b;..&#xff1b;./boot) 指定脚本执行路…

【小笔记】用tsai库实现Rocket家族算法

2024.1.16 Rocket家族算法是用于时间序列分类的强baseline&#xff08;性能比较参考【小笔记】时序数据分类算法最新小结&#xff09;&#xff0c;Rocket/MiniRocket/MultiRocket官方都有开源实现&#xff0c;相比较而言&#xff0c;用tsai来实现有三个好处&#xff1a;1是快速…

WPF应用程序生存期以及相关事件

WPF 应用程序的生存期会通过 Application 引发的几个事件来加以标记&#xff0c;相关事件对应着应用程序何时启动、激活、停用和关闭。 应用程序生存期事件 • 独立应用程序(传统风格的 Windows 应用程序&#xff0c;这些应用程序作为要安装到客户端计算机并从客户端计算机运…

VitePress-01-从零开始的项目创建(npm版)

说明 本文介绍一下 VitePress的项目创建的步骤。 主要用到的命令工具是 npm。 本文的操作步骤是从无到有的创建一个完整的基本的【VitePress】项目。 环境准备 根据官方文档的介绍&#xff0c;截止本文发稿时&#xff0c;需要使用node.js 18 的版本。 可以使用node -v 的命令查…

关于java的封装

关于java的封装 我们在前面的文章中&#xff0c;了解到了类和对象的知识&#xff0c;以及做了创建对象的时候对内存的分析&#xff0c;我们本篇文章来了解一下面向对象的三大基本特征之一&#xff0c;封装&#x1f600;。 一、初识封装 封装就好比&#xff0c;我们把一些物品…

【操作系统】1. 操作系统概述

文章目录 【 1. 什么是操作系统 】【 2. 操作系统软件的分类 】【 3. 操作系统内核的抽象和特征 】3.1 操作系统内核的抽象3.2 操作系统内核的特征 【 1. 什么是操作系统 】 操作系统是管理硬件资源、控制程序运行、改善人机界面和为应用软件提供服务的一种系统 软件。一个服务…

<软考高项备考>《论文专题 - 71 风险管理(3)》

3 过程2-识别风险 3.1 问题 4W1H过程做什么是识别单个项目风险以及整体项目风险的来源&#xff0c;并记录风险特征的过程。作用:1、记录现有的单个项目风险&#xff0c;以及整体项目风险的来源:2、汇总相关信息&#xff0c;以便项目团队能够恰当地应对已识别的风险。为什么做…

怎么修改或移除WordPress后台仪表盘概览底部的版权信息和主题信息?

前面跟大家分享『WordPress怎么把后台左上角的logo和评论图标移除&#xff1f;』和『WordPress后台底部版权信息“感谢使用 WordPress 进行创作”和版本号怎么修改或删除&#xff1f;』&#xff0c;其实在WordPress后台仪表盘的“概览”底部还有一个WordPress版权信息和所使用的…

项目解决方案:“ZL铁路轨行车辆”实时视频监控系统

目 录 一、建设背景 1.1 政策背景 1.2 现状 二、建设目标 三、建设依据 四、建设原则 4.1经济高效性 4.2系统开放性 4.3系统继承性 4.4系统扩展性 4.5系统经济性 4.6系统安全性 五、系统架构 5.1系统架构图 5.2技术架构 1、DVS 2、中心管理服务…

Java:List相互转换数组

经常我们会遇到前端传服务端值为数组的时候我们需要对其转换成集合便于一些其它操作&#xff0c;删除&#xff0c;匹配等操作&#xff0c;今天我们就总结下数组集合相互转换的方法 1、Object[] objArray arrayList.toArray(); Slf4j public class BaseTest { Testpublic void…

【Java SE语法篇】11.异常

&#x1f4da;博客主页&#xff1a;爱敲代码的小杨. ✨专栏&#xff1a;《Java SE语法》 ❤️感谢大家点赞&#x1f44d;&#x1f3fb;收藏⭐评论✍&#x1f3fb;&#xff0c;您的三连就是我持续更新的动力❤️ 文章目录 1. 异常的概念和体系结构1.1 异常的概念1.2 异常体系…