大数据相关知识

news2024/11/17 7:55:35

1、大数据整体简介

1、1 简介

百度百科这样写道

大数据(big data),IT行业术语,是指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。

其实大数据可以理解为大的数据。什么叫大的数据,首先数据量大,种类多,增长快,价值密度低,需要分析处理得出有价值的数据。我们技术人员一般讲大数据是指大数据技术,例如Hadoop等技术。

特点
1.数据量大
Volume:表示大数据的数据体量巨大。

数据集合的规模不断扩大,已经从 GB 级增加到 TB 级再增加到 PB 级,近年来,数据量甚至开始以 EB 和 ZB 来计数。例如微信,淘宝等网站的数据,全球几十亿人的数据都要处理。

2.数据时效性
Velocity:表示大数据的数据产生、处理和分析的速度在持续加快。

加速的原因是数据创建的实时性特点,以及将流数据结合到业务流程和决策过程中的需求。数据处理速度快,处理模式已经开始从批处理转向流处理。例如我们每天都要聊微信,每时每刻都要视频,这个数据都要实时进行传输,时效性在不断加快。

3.数据多样性
Variety:表示大数据的数据类型繁多。

传统 IT 产业产生和处理的数据类型较为单一,大部分是结构化数据。随着传感器、智能设备、社交网络、物联网、移动计算、在线广告等新的渠道和技术不断涌现,产生的数据类型无以计数。例如图片,视频等非结构化数据,都需要进行存储。

4.数据价值低
Value:表示大数据的数据价值密度低。

大数据由于体量不断加大,单位数据的价值密 度在不断降低,然而数据的整体价值在提高。以监控视频为例,在一小时的视频中,有用的数据可能仅仅只有一两秒,但是却会非常重要。现在许多专家已经将大数据等同于黄金和石油,这表示大数据当中蕴含了无限的商业价值。例如淘宝可以利用大数据来做推荐,百度可以利用大数据做竞价排名等。


1、2 相关技术

Hadoop 是一个提供分布式存储和计算的开源软件框架,它具有无共享、高可用(HA)、弹性可扩展的特点,非常适合处理海量数量。

  • Hadoop 是一个开源软件框架
  • Hadoop 适合处理大规模数据
  • Hadoop 被部署在一个可扩展的集群服务器上

 Hadoop 是大数据批量处理架构,由 HDFS 负责静态数据的存储,并通过 MapReduce 将计算逻辑分配到各数据节点进行数据计算和价值发现.之后以 HDFS 和 MapReduce 为基础建立了很多项目,形成了 Hadoop 生态圈.

Spark 则是UC Berkeley AMP lab (加州大学伯克利分校AMP实验室)所开源的类Hadoop MapReduce的通用并行框架, 专门用于大数据量下的迭代式计算.是为了跟 Hadoop 配合而开发出来的,不是为了取代 Hadoop

flume是一个可分布式日志收集系统,为hadoop相关组件之一。

 2、Hadoop简介

Hadoop 三大核心组件
HDFS(分布式文件系统) -—— 实现将文件分布式存储在集群服务器上
MAPREDUCE(分布式运算编程框架) —— 实现在集群服务器上分布式并行运算
YARN(分布式资源调度系统) —— 帮用户调度大量的 MapReduce 程序,并合理分配运算资源(CPU和内存)

1、HDFS


定义
HDFS (Hadoop Distributed File System) ,它是一个文件系统,用于存储文件,通过目录树来定位文件;其次,它是分布式的,由很多服务器联合起来实现其功能,集群中的服务器有各自的角色。
HDFS 的使用场景:适合一次写入,多次读出的场景,且不支持文件的修改。适合用来做数据分析,并不适合用来做网盘应用。
优缺点
优点:

( 1 )高容错性
        ①数据自动保存多个副本。它通过增加副本的形式,提高容错性。
        ②某一个副本丢失以后,它可以自动恢复。
(2)适合处理大数据
        ①数据规模:能够处理数据规模达到 GB 、 TB 、甚至 PB 级别的数据;
        ②文件规模:能够处理百万规模以上的文件数量,数量相当之大。
(3)可构建在廉价机器上,通过多副本机制,提高可靠性。
缺点:
( 1 )不适合低延时数据访问,比如毫秒级的存储数据,是做不到的。
(2)无法高效的对大量小文件进行存储。
        ①存储大量小文件的话,它会占用 NameNode 大量的内存来存储文件目录和块信息。这
样是不可取的,因为 NameNode 的内存总是有限的;
        ②小文件存储的寻址时间会超过读取时间,它违反了 HDFS 的设计目标。
(3)不支持并发写入、文件随机修改。
        ①一个文件只能有一个写,不允许多个线程同时写;
        ②仅支持数据 append ( 追加 ) ,不支持文件的随机修改。
核心思想

 1 ) NameNode (nn) :就是 Master , 它是一个主管、管理者。
        ①管理 HDFS 的名称空间;
        ②配置副本策略;
        ③管理数据块(Block) 映射信息;
        ④处理客户端读写请求。
(2) DataNode :就是 Slave 。 NameNode 下达命令, DataNode 执行实际的操作。
        ①存储实际的数据块;
        ③执行数据块的读/ 写操作。
(3) Client :就是客户端。
        ①文件切分。文件上传 HDFS 的时候, Client 将文件切分成一个一个的 Block, 然后进行上传;
        ②与 NameNode 交互,获取文件的位置信息;
        ③与 DataNode 交互,读取或者写入数据;
        ④Client 提供一些命令来管理 HDFS, 比如 NameNode 格式化;
        ⑤Client 可以通过一些命令来访问 HDFS ,比如对 HDFS 增删查改操作;
(4) Secondary NameNode :并非 NameNode 的热备。当 NameNode 挂掉的时候, 它并不能马上替换 NameNode 并提供服务。
        ①辅助 NameNode ,分 担其工 作量 ,比如 定期合 并 Fsimage 和 Edits, 并推送给NameNode ;
        ②在紧急情况下,可辅助恢复 NameNode 。
 重点
HDFS 中的文件在物理上是分块存储 (Block) ,块的大小可以通过配置参数 ( dfs.blocksize)来规定,默认大小在 Hadoop2.x 版本中是 128M ,老版本中是 64M 。

 

思考:为什么块的大小不能设置太小,也不能设置太大?
        (1) HDFS 的块设置太小,会增加寻址时间,程序一直在找块的开始位置;
        (2)如果块设置的太大,从磁盘传输数据的时间会明显大于定位这个块开始位置所需的时间。导致程序在处理这块数据时,会非常慢。
总结 : HDFS 块的大小设置主要取决于磁盘传输速率。

2、MapReduce


定义
MapReduce是一个分布式运算程序的编程框架,是用户开发“基于Hadoop的数据分析应用”的核心框架
MapReduce核心功能是将用户编写的业务逻辑代码和自带默认组件整合成一个完的分布式运算程序,并发运行在一个Hadoop集群上

优缺点
优点:

(1)MapReduce易于编程它简单的实现一些接口,就可以完成一个分布式程序,这个分布式程序可以分布到大量廉价的PC机器上运行。也就是说你写一个分布式程序,跟写一个简单的串行程序是一模一样的。就是因为这个特点使得MapReduce编程变得非常流行。
(2)良好的扩展性
当你的计算资源不能得到满足的时候,你可以通过简单的增加机器来扩展它的计算能力。

(3)高容错性
MapReduce设计的初衷就是使程序能够部署在廉价的PC机器上,这就要求它具有很高的容错性。比如其中一台机器挂了,它可以把上面的计算任务转移到另外一个节点上运行,不至于这个任务运行失败,而且这个过程不需要人工参与,而完全是由Hadoop内部完成的。
(4)适合PB级以上海量数据的离线处理可以实现上千台服务器集群并发工作,提供数据处理能力。

缺点:

(1)不擅长实时计算MapReduce无法像MySQL一样,在毫秒或者秒级内返回结果
(2)不擅长流式计算
流式计算的输入数据是动态的,而MapReduce的输入数据集是静态的,不能动态变化。这是因为MapReduce自身的设计特点决定了数据源必须是静态的不擅长DAG(有向图)计算

(3)多个应用程序存在依赖关系,后一个应用程序的输入为前一个的输出。在这种情况下,MapReduce并不是不能做,而是使用后,每个MapReduce作业的输出结果都会写入到磁盘,会造成大量的磁盘IO,导致性能非常的低下

 

 

 

3、Yarn
定义
yarn是一种通用的资源管理系统和调度平台。
资源管理系统 :管理集群内的硬件资源,和程序运行相关,比如内存,CPU等。
调度平台:多个程序同时申请计算资源时提供分配,调度的规则(算法)。
通用:不仅仅支持MapReduce程序,理论上支持各种计算程序如spark,flink。yarn不关系程序的计算内容,只关心程序所需的资源,在程序申请资源的时候根据调度算法分配资源,计算结束之后回收计算资源。使用yarn作为资源调度平台的计算框架自身需要提供ApplicationMaster来负责计算任务的调度。

优缺点
优点

(1)将资源管理和作业控制分离,减小JobTracker压力

(2)YARN的设计大大减小了 JobTracker(也就是现在的 ResourceManager)的资源消耗,并且让监测每一个 Job 子任务 (tasks) 状态的程序分布式化了,更安全、更优美。

(3)老的框架中,JobTracker一个很大的负担就是监控job下的tasks的运行状况,现在,这个部分就扔给ApplicationMaster做了而ResourceManager中有一个模块叫做ApplicationsManager(ASM),它负责监测ApplicationMaster的运行状况。

(4)能够支持不同的计算框架

(5)资源管理更加合理

(6)使用Container对资源进行抽象,Container不同于MRv1中的slot,它是一个动态资源划分单位,是根据应用程序的需求动态生成的,比之前以slot数目更合理。

(7)且使用了轻量级资源隔离机制Cgroups进行资源隔离。

(8)Container的设计避免了之前的map slot/reduce slot分开造成集群资源闲置的尴尬情况。

 缺点:

(1)各个应用无法感知集群整体资源的使用情况,只能等待上层调度推送信息。

(2)资源分配采用轮询、ResourceOffer机制(mesos),在分配过程中使用悲观锁,并发粒度小。

(3)缺乏一种有效的竞争或优先抢占的机制。

(4)简化了双层调度器中的全局资源管理器,改为由一个Cell State来记录集群内的资源使用情况,这些使用情况都是共享的数据,以此来达到与全局资源管理器相同的效果。

(5)所有任务访问共享数据时,采用乐观并发控制方法。

核心思想

步骤说明:
1,客户端向ResourceManager中的ApplicationManager提交作业申请,申请jobID。
2,ApplicationManager 返回一个jobID,以及运行的hdfs临时路径(hdfs://… jobID)。
3,客户端将作业的jar包,配置信息等上传到分配的hdfs临时路径(hdfs://… jobID)中。
4,客户端上传文件成功后,向ApplicationManager发送执行作业请求。
5,ApplicationManager将请求转发给Scheduler,申请执行所需资源。
6,调度器将作业放置到相关队列中,当执行到该作业时,开始让ApplicationManager分配Containers。
7,ApplicationManager命令NodeManager使用分配的container资源启动ApplicationMaster。
8,ApplicationMaster启动后去分配的hdfs临时路径(hdfs://… jobID)中读取作业的具体信息,根据分片信息创建map任务,reduce任务。
9,ApplicationMaster向Scheduler请求资源来执行map任务,reduce任务。
10,Scheduler返回申请结果。
11,AppMaster通知NodeManager,启动map,reduce任务。
12,NodeManager启动map,reduce任务。
13,map,reduce任务读取数据,进行逻辑计算。计算过程中如果有map,reduce任务执行失败了,AppMaster负责重启任务。
14,程序执行成功后,AppMaster向Scheduler发送请求,释放资源。

摘抄部分原文链接:https://blog.csdn.net/weixin_43172032/article/details/117759068 

调度策略
  Yarn中有三种资源调度器:FIFO调度器(FIFO Scheduler)、容量调度器(Capacity Scheduler)、公平调度器(Fair Scheduler)。

(1)FIFO调度器

        简介:顾名思义,FIFO调度器把应用放在队列里,按照先进先出的提交顺序执行应用。

        优点:简单,不需要额外配置。

        缺点:不适合共享集群。大应用会占满整个集群的资源,导致小应用长时间等待。

(2)容量调度器

        简介:容量调度器设有一个专门的队列给小作业使用。

        优点:大作业不会占满全部资源,小作业不需要长时间等待大作业完成。

        缺点:整个集群的资源利用率降低了,大作业需要更长的时间来执行。

(3)公平调度器

        简介:公平调度器旨在为所有运行的应用公平地分配资源。

        优点:同时解决了FIFO大作业占满整个集群资源的问题和Capacity小作业队列空闲导致集群资源利用率降低的问题。

        缺点:存在延迟问题,后面的作业需要等待前面的作业让出资源。

具体策略介绍请看:https://blog.csdn.net/m0_37795099/article/details/124211350

原文链接:https://blog.csdn.net/qq_40322236/article/details/128891963

 

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

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

相关文章

C++类的学习1

类的定义一般包括两部分,一是类的属性,二是他所拥有的方法。类的实例化是指给类的加载并初始化过程,比如一个people类,我们具体到每一个人就是类的实例化,此外一个类可以在此类上进行扩展。比如people类,我…

vue项目使用luckyexcel预览excel表格

场景 最近工作中在开发文档上传并能在新窗口打开预览的功能。在此记录下心路历程。 方法 我总共尝试了2种方法预览excel,均可实现。还发现一种方法可以实现,需要后端配合,叫做KKfileview。 1.使用luckyexcel插件实现xlsx的预览 2.使用fi…

组合式升降压PFC的分析方法

1. 组合式升降压PFC的基本原理 组合式升降压PFC采用两组储能元件,基本单元为Cuk,Sepic和Zeta。参考论文《New Efficient Bridgeless Cuk Rectifiers for PFC Applications》中的三种拓扑进行分析。   Cuk型PFC的TypeI如下图所示,正半周Dp一…

Jef-log-tail日志采集工具使用说明

介绍 jef-log-tail是一款基于netty实现的日志采集工具,支持指定目录、指定文件、指定后缀的动态持续日志采集,日常使用场景如:集群部署后将多台主机的日志集中存放到一台日志服务器上,或者将日志统一输出到数据库、redis、kafka、…

STM32实战项目-温湿度传感器

程序功能: 1、软件模拟I2C协议与SHT30数字温湿度传感器通讯; 2、数码管显示环境温湿度; 3、串口打印环境温湿度。 目录 一、硬件电路 二、技术讲解 2.1IIC简介 2.2 IIC总线协议 2.2设备接入 三、SHT30数字温湿度传感器 3.1性能介绍 …

Rollup 实践:插件生态和实用技巧(续)

在前面的文章中,我们已经了解了 Rollup 的性能优化和高级用法。本篇文章将继续探讨 Rollup 的插件生态和实用技巧。 插件生态 Rollup 拥有一个丰富的插件生态,下面我们介绍几个实用的插件: rollup-plugin-terser:使用 Terser 压…

FlowForge 使用教程 团队资源管理

前言 本篇文章结合FF的操作来给大家解释一下,FF在团队管理上都与那些资源可以操作。 团队创建 使用超管第一次登录FF平台,默认什么资源都没有,你只能先去创建一个团队才能继续往下操作。 在FF平台上,团队就代表一个租户,也是一种资源隔离的手段。 创建团队可以通过右上…

Rollup 实践:性能优化和高级用法(续)

在前面的文章中,我们已经了解了 Rollup 的基本概念和配置。本篇文章将继续探讨 Rollup 的性能优化和高级用法。 懒加载 通过 Rollup 的代码分割功能,我们可以实现懒加载,从而减小初始页面加载时间。假设我们有一个动态导入的模块 dynamic.j…

vue项目用后端返回的文件流实现docx和pdf文件预览

前端docx和pdf文件预览实现效果图docx-preview文件预览pdf文件预览写这篇文章的目的,是因为我比较懒,想把代码记录一下,方便日后使用;哈哈,如果你也需要,也可以复制粘贴啊,为了方便自己和需要的…

windows10开发环境下部署kafka消息服务

下载kafka,官方地址https://kafka.apache.org/downloads 百度网盘链接:https://pan.baidu.com/s/1h3iXtfzEIBoajGPId5Dcag?pwd0000 提取码:0000直接把下载的文件解压到某个盘的根目录,要不然后面的命令就会遇到“命令行过长”的报…

linux 系统的一些使用小技巧

实现RedHat非正常关机的自动磁盘修复 先登录到服务器,然后在/etc/sysconfig里增加一个文件autofsck,内容如下: AUTOFSCK_DEF_CHECKyes PROMPTyes 改变文件或目录之最后修改时间(变为当前时间) 执行格式:touch name ( name 可为文件或目录名称…

Matlab vs Python:哪个更适合数据分析和可视化?

当谈到数据分析和可视化时,许多人会思考使用哪种编程语言来实现这一目标。在IT行业,最流行的两种编程语言是Matlab和Python。这两种语言都有广泛的应用,但是对于初学者来说,选择哪种语言可能会有些困难。在本文中,我们…

【ENVI】监督分类

好久没用ENVI了,用起来有点生疏,这里记录一下操作流程。。。 基础数据:从91卫图下载相应地区影像数据。 下载影像推荐:地理空间数据云、91卫图、水经注等。 1、加载tif数据 2、样本选择 (1)在图层管理器…

Baumer工业相机堡盟工业相机如何通过BGAPISDK里的工具函数来计算工业相机的实时帧率(C#)

Baumer工业相机堡盟工业相机如何通过BGAPISDK里函数来计算相机的实时帧率(C#)Baumer工业相机Baumer工业相机的帧率的技术背景Baumer工业相机的帧率计算方式在BufferEvent声明显示FrameID设计显示帧率的函数Baumer工业相机通过BGAPI SDK计算帧率的优势​B…

亚马逊云科技:智能家居时代已来,如何抢滩海外市场的“真空区”?

在充满着不确定性的2022年,电子消费市场一片哀鸿遍野,智能家居行业却如同逆水行舟,显示出稳健的发展之势,宣告着智能家居时代已来。在2023年3月24日举办的“智能家居,出海闭门会”上,为进一步发挥产业带潜力…

微前端--qiankun原理概述

demo放最后了。。。 一、微前端 一》微前端概述 微前端概念是从微服务概念扩展而来的,摒弃大型单体方式,将前端整体分解为小而简单的块,这些块可以独立开发、测试和部署,同时仍然聚合为一个产品出现在客户面前。可以理解微前端是…

2023.04.16 学习周报

文章目录摘要文献阅读1.题目2.摘要3.简介4.Dual-Stage Attention-Based RNN4.1 问题定义4.2 模型4.2.1 Encoder with input attention4.2.2 Decoder with temporal attention4.2.3 Training procedure5.实验5.1 数据集5.2 参数设置和评价指标5.3 实验结果6.结论MDS降维算法梯度…

亚马逊listing如何提高?测评要满足什么条件?

为什么有些大卖就可以卖得很好,而有些卖家始终都做不起来?其中的影响因素之一就是listing,listing页面做得好,转化率自然就提高了。而这其中的原理还需要卖家去具体了解亚马逊的算法。 首先来看一下亚马逊最大的流量搜索&#xf…

第十三届蓝桥杯Web组国赛真题 开学礼物大放送

介绍 又是一年开学季,蓝桥为大家准备了开学礼物,想制作一个页面来宣传一下该活动。 本题需要按照要求完成一个以“开学季”为主题的页面布局。 准备 开始答题前,需要先打开本题的项目代码文件夹,目录结构如下: ├─…

微服务-微服务为什么要用到 API 网关

什么是微服务 微服务架构(通常简称为微服务)是指开发应用所用的一种架构形式。通过微服务,可将大型应用分解成多个独立的组件,其中每个组件都有各自的责任领域。 在处理一个用户请求时,基于微服务的应用可能会调用许多…