大数据技术原理与应用期末复习(林子雨)

大数据技术原理与应用期末复习(林子雨)

  • Hadoop的特性
  • HBase编程实践
  • NoSQL的四大类型
    • 键值数据库
      • 优点:
      • 缺点:
    • 列族数据库
      • 优点:
      • 缺点:
    • 文档数据库
      • 优点:
      • 缺点:
    • 图数据库
      • 优点:
      • 缺点:
  • NoSQL的三大基石
    • CAP:
    • BASE
      • BASE的基本含义
    • 最终一致性
  • MapReduce的各个执行阶段
  • 关系的自然连接运算
  • Hadoop的局限性与不足
  • Hadoop的改进与提升
    • Hadoop1.0和Hadoop2.0比较
    • 不断完善的Hadoop生态系统
  • Spark生态系统
  • Spark的应用场景
  • 流计算
    • 对于一个流计算来说,需要达到哪些需求
  • Flink的优势

Hadoop的特性

1.高可靠性:
采用冗余数据存储方式,即一个副本发生故障,其他副本可保证正常对外提供服务
2.高效性:
hadoop采用分布式存储和分布式处理,能够高效的处理PB级数据
3.高可扩展性:
可以高效稳定地运行在廉价的计算机集群上,可扩展到数以千计的计算机节点上
4.高容错性:
自动保存数据的多个副本,能将失败的任务重新分配
5.低成本:
采用廉价的计算机集群,成本低
6.运行在linux平台上

HBase编程实践

1.create:创建表
(1)create ‘t1’, {name => ‘f1’, versions => 5}
创建一个t1的表,列族为f1,列族版本号为5
(2)create ‘t1’, {name => ‘f1’},{name=>‘f2’},{name=>‘f3’}
创建t1,列族为f1,f2,f3
或者可以这样写:
create ‘t1’,‘f1’,‘f2’,‘f3’
(3)创建表t1,将表依据分割算法HexStringSplit分布在15个Region里:
create ‘t1’,‘f1’,{unmregions => 15,splitalgo => ‘HexStringSplit’}
(4)创建表,指定切分点:
create ‘t1’,‘f1’,{splits =>[‘10’,‘20’,‘30’,‘40’]}
2.向表t1中行row1和列f1:c1所对应的单元格添加数据value1,时间戳为123455:
put ‘t1’, ‘row1’,‘f1:c1’,‘value1’,123455
3.获得表r1行,c1列,时间范围为[ts1,ts2],版本号为4:
get ‘t1’,‘r1’,{columns => ‘c1’,timerange => [ts1,ts2],versions => 4}
4.流览表信息
(1)流览表“.META.”、列info:regioninfo的数据:
scan ‘.META.’ ,{columns => ‘info:regioninfo’}
(2)流览表 c1列,时间范围是[1234,4321]的数据:
scan ‘t1’ ,{columns => ‘c1’,timerange=>[1234,4321]}
5.修改表的列族模式
(1)向表t1添加列族f1:
alter ‘t1’,name => ‘f1’
(2)删除t1中的f1列:
alter ‘t1’ , name=>‘f1’,method=>‘delete’
(3)设定表t1中列族f1最大为128MB:
alter ‘t1’ ,method=>‘table_att’,max_filessize => ‘134217728’
6.统计表行数:
count ‘t1’
7.显示表的相关信息:
describe ‘t1’
8.使表有效、无效:
enable ‘t1’
disable ‘t1’
9.删除指定表格的数据:
删除表t1、行r1、列c1、时间戳ts1的数据:
delete ‘t1’,‘r1’,‘c1’,ts1
10.删除表:
drop ‘t1’

NoSQL的四大类型

键值数据库

使用一个哈希表

优点:

扩展性好、灵活性好、大量写操作时性能高

缺点:

条件查询效率低,无法存储结构化信息

列族数据库

数据库由多行构成,每行数据库包含多个列族

优点:

查询速度快、可扩展性好、易进行分布式扩展、复杂性低

缺点:

功能较少、不支持强事务一致性

文档数据库

文档是文档数据库的最小单位

优点:

性能好、灵活性高、复杂性低、数据结构灵活

缺点:

缺乏统一的查询语法

图数据库

优点:

灵活性高、支持复杂的图算法、可用于构建复杂的关系图谱

缺点:

复杂性高,只能支持一定的数据规模

NoSQL的三大基石

CAP:

C:一致性(Consistency),任何一个读操作总是能读到之前完成的写操作的结果,多点数据是一致的
A:可用性(Availability),指快速获取数据,在确定时间内返回操作结果
P:分区容忍性,指一部分节点不能与其他节点通信时,分离的系统也能正常运行
注意:三者只能满足其二

BASE

一个数据库事务具有ACID四个性质
A(Atomicity):原子性,事务必须是原子工作单元,对于数据修改,要么全执行,要么全不执行
C(Consistency):一致性,事务在完成时,必须所有的数据状态保持一致
I(Isolation):隔离性,并发事务所做的修改必须与任何其他并发事务所做的修改隔离
D(Durability):持久性,事务完成之后对系统的影响是永久的

BASE的基本含义

1.基本可用性:
一部分发生问题不可用时,其他部分还可继续正常使用
2.软状态:
指状态可以有一段时间不同步,具有一定滞后性
3.最终一致性
数据保持一致(最新)

最终一致性

从服务端来看:
更新如何复制分布到整个系统,以保持数据最终一致性
从客户端来看:
在高并发的数据访问下,后续操作能否获取最新数据

MapReduce的各个执行阶段

1.MapReduce框架使用InputFormat模块做Map前的处理,验证是否符合输入定义,将文件分为多个InputSplit,InputSplit是MapReduce对文件中信息进行处理和运算的输入单位,并没有对文件进行实际切分,只是记录了数据的位置和长度,是逻辑切分
2.因为是逻辑切分不是物理切分,所以还需要通过RecordReader根据InputSplit中的信息来处理具体记录,加载数据并将其转换为适合Map任务读取的键值对,输入给Map
3.Map任务根据用户自定义的映射规则,输出一系列<key,value>作为中间结果
4.对map输出进行一定的分区、排序、合并、归并、等,得到<key,value-list>形式的中间结果,交给reduce处理,这个过程称为shuffle
5.reduce以<key,value-list>作为输入,执行用户定义的逻辑,输出结果交给OutputFormat模块
6.OutputFormat模块验证输出目录是否存在,以及文件类型,都满足就输出到分布式文件系统

关系的自然连接运算

可以使用Map过程把来自R的每个元组<a,b>装换成<b,<R,a>>,其中键就是b,值就是<R,a>
例如:
在这里插入图片描述

Hadoop的局限性与不足

1.抽象层次低。功能实现需要手工编写代码来完成,一个简单的功能需要写大量的代码
2.表达能力有限。MapReduce把复杂分布式编程工作高度抽象为Map和Reduce两个函数,降低了开发人员开发复杂度,也带来了表达能力有限的问题,实际生产环境中一些是无法用简单的Map和Reduce来完成的
3.开发者需要自己管理作业之间的依赖关系。一个作业只包含Map和Reduce两个阶段,通常的实际应用问题需要大量的作业进行协作才能完成,存在复杂的依赖关系,MapReduce并没有提供依赖关系的管理机制
4.难以看到程序的整体逻辑。没有更高层次的抽象机制对程序整体逻辑进行设计
5.执行迭代操作效率低。每次迭代都要执行Map、Reduce任务,这个过程的数据来自HDFS,每次数据又存到HDFS,反复的读写降低了迭代操作的效率
6.资源浪费。Reduce任务需要等到Map执行完才能开始,这样让费资源
7.实时性差。只适用于离线批处理数据,无法支持交互式数据、实时数据处理

Hadoop的改进与提升

Hadoop1.0和Hadoop2.0比较

组件Hdoop1.0的问题Hadoop2.0的改进
HDFS单一名称节点,存在单点失效问题设计了HDFS HA,有名称节点热备份机制
HDFS单一命名空间,无法实现资源隔离设计了HDFS联邦,管理多个命名空间
Mapreduce资源管理效率低新的资源管理框架YARN

不断完善的Hadoop生态系统

组件功能解决Hadoop中存在的问题
Pig处理大规模数据的脚本语言,用户只需写几条简单的语句,系统会自动转换为MapReduce作业解决了抽象层次低,需手工写大量代码问题
Oozie工作流和协作服务引擎,协调Hadoop上运行的不同任务解决了无依赖管理机制
Tez支持DAG作业,对作业操作进行重新分解和组合,形成一个大的DAG作业,减少不必要的操作提高了效率
Kafka分布式发布订阅消息系统,不同类型的分布式系统可以接入Kafka,实现hadoop各个组件之间的不同类型数据的实时高效交换解决了hadoop各组件间没有数据交换中介这个问题

Spark生态系统

spark专注于数据的处理分析,数据存储还是要借助于Hadoop分布式文件系统HDFS
1.Spark Core
包含了spark的基本功能,如内存计算、任务调度、部署模式、故障恢复、存储管理等,主要面向批量数据处理,spark建立在RDD(统一的抽象弹性分布式数据集)之上,使其可以以一致的方式应对不同的大数据处理场景
2.Spark SQL
允许开发人员直接处理RDD,同时可查询Hive、HBase等外部资源,能统一处理关系表和RDD,使得开发人员不需要自己编写Spark应用程序,可使用SQL语句查询
3.Spark Streaming
支持高吞吐量、可容错处理的实时数据流处理,其核心思路是将流数据分解成一系列短小的批处理作业,每个短作业都可以使用Spark Core进行快速处理,支持多种数据流,如Kafka、Flume、TCP套接字等
4.Structured Streaming
基于Spark SQL引擎构建的、可扩展且容错的流处理引擎,可编写流处理程序,简化了使用者的难度
5.MLlib(机器学习)
提供了常用的机器学习算法的实现,包括聚类、分类、回归、协同过滤等,降低了机器学习的门槛
6.GraphX(图计算)
是Spark常用于图计算的API,可认为是Pregel在Spark上的重写及优化了,有丰富的功能和运算符,可用在海量数据上

Spark的应用场景

应用场景时间跨度其他框架Spark生态中的组件
复杂的批量数据处理小时级MapReduce、HiveSpark Core
基于历史数据的交互式查询分钟级、秒级Impala、Dremel、DrillSpark SQL
基于实时数据流的数据处理毫秒级、秒级Storm 、S4Spark Streaming、Structured Streaming
基于历史数据的数据挖掘MahoutMLlib
图结构数据的处理Pregel、HamaGraphX

流计算

对于一个流计算来说,需要达到哪些需求

1.高性能
每秒处理几十万条
2.海量式
支持TB级别,甚至是PB级别的数据规模
3.实时性
必须保证一个较低的时延,达到秒级别,甚至是毫秒级别
4.分布式
支持大数据的基本架构,必须能够平滑扩展
5.易用性
能够快速进行开发和部署
6.可靠性
能可靠地处理流数据

Flink的优势

1.同时支持高吞吐、高延迟、高性能
2.同时支持流处理和批处理
对于Flink而言,批量数据是流数据的一个子集,批处理被视作一种特殊的流处理,因此可用同一套引擎来处理流数据和批量数据
3.高度灵活的流式窗口
窗口是若干元素的集合,窗口可以是时间驱动的,也可以是数据驱动的,窗口可以分为翻滚窗口、滚动窗口、会话窗口
4.支持有状态计算
5.具有良好的容错性
6.具有独立的内存管理
7.支持迭代和增量迭代
对于某些迭代而言,并不是单次迭代产生的下一次工作集中的每个元素都需要重新参与下一轮迭代,有时只需要重新计算部分数据同时选择性地更新解集,这种称为增量迭代

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

模拟瑞幸小程序购物车

是根据渡一袁老师的大师课写的&#xff0c;如有什么地方存在问题&#xff0c;还请大家指出来哟ど⁰̷̴͈꒨⁰̷̴͈う♡&#xff5e; index.html <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta http-e…

新增PostgreSQL数据库管理功能,1Panel开源面板v1.9.3发布

2024年1月15日&#xff0c;现代化、开源的Linux服务器运维管理面板1Panel正式发布v1.9.3版本。 在这一版本中&#xff0c;1Panel新增了PostgreSQL数据库管理功能&#xff0c;并且支持设置PHP运行环境扩展模版。此外&#xff0c;我们进行了30多项功能更新和问题修复。1Panel应用…

如何应对Android面试官->RecyclerView回收复用LayoutManager,实战探探划一下

前言 上章我们讲了右半部分&#xff0c;本章我们讲解左半部分&#xff1b; 如何复用原理 我们在滑动的时候&#xff0c;才会触发 RecyclerView 的回收复用&#xff0c;所以我们从 RecyclerView 的 onTouchEvent 方法入手&#xff1b;我们来看下滑动的时候&#xff0c;是怎么…

SQL实践:利用tag检索文件的多种情况讨论(二)

在上一篇文章SQL实践&#xff1a;利用tag检索文件的多种情况讨论中&#xff0c;我们介绍了在使用外键的方式为数据关联tag后&#xff0c;如何筛选&#xff1a; 如何筛选包含某一个tag的数据如何筛选包含且只包含某一个tag的数据如何筛选包含多个指定tag的数据 这篇文章主要是…

LiveGBS流媒体平台GB/T28181功能-基础配置接入控制白名单黑名单配置控制设备安全接入设备单独配置接入密码

LiveGBS基础配置接入控制白名单黑名单配置控制设备安全接入设备单独配置接入密码 1、白名单配置应用场景2、接入控制2.1、白名单2.2、黑名单 3、搭建GB28181视频直播平台 1、白名单配置应用场景 LiveGBS国标流媒体服务&#xff0c;支持白名单配置。 可在设备注册前&#xff0…

机器学习_梯度下降

文章目录 什么是梯度梯度下降梯度下降有什么用 什么是梯度 计算梯度向量其几何意义&#xff0c;就是函数变化的方向&#xff0c;而且是变化最快的方向。对于函数f(x)&#xff0c;在点(xo,yo)&#xff0c;梯度向量的方向也就是y值增加最快的方向。也就是说&#xff0c;沿着梯度…

使用 Elasticsearch 和 LlamaIndex 进行高级文本检索:句子窗口检索

2023 年是检索增强生成 (RAG) 的一年&#xff0c;人们探索了许多用例&#xff0c;并使用该技术开发了数百种产品。 从 Q/A 聊天机器人到基于上下文的代理&#xff0c;RAG 的使用一直是 LLM 申请快速增长的主要因素。 支持不断发展的社区以及 Langchain 和 LlamaIndex 等强大框架…

Controller层自定义注解拦截request请求校验

一、背景 笔者工作中遇到一个需求&#xff0c;需要开发一个注解&#xff0c;放在controller层的类或者方法上&#xff0c;用以校验请求参数中(不管是url还是body体内&#xff0c;都要检查&#xff0c;有token参数&#xff0c;且符合校验规则就放行)是否传了一个token的参数&am…

Java工具类汇总

&#x1f497;wei_shuo的个人主页 &#x1f4ab;wei_shuo的学习社区 &#x1f310;Hello World &#xff01; ExcelUtils public class ExcelUtils {/*** 注入的具有排序功能的handle*/private static final SortRowWriteHandler SORT_ROW_WRITE_HANDLER new SortRowWriteHan…

linux 网络文件共享服务

存储类型 DAS 直连式存储 SAN 存储区域网络 NAS 网络附近存储 FTP文件传输协议 文件传输协议 FTP 早期的三个应用级协议之一&#xff0c;基于c/s架构 数据传输格式&#xff1a;二进制&#xff08;默认&#xff09;和文本 tcp 21端口&#xff08;权限&#xff0c;…

centos7配置时间同步网络时间

centos7配置时间同步网络时间 1、安装 NTP 工具。 sudo yum install -y ntp2启动 NTP 服务。 sudo systemctl start ntpd3、将 NTP 服务设置为开机自启动。 sudo systemctl enable ntpd4、验证 date

超5000亿元,2024年国家电网预计电网建设投资总规模

近日&#xff0c;国家电网公司对外透露&#xff0c;2024年将继续加大数智化坚强电网的建设&#xff0c;促进能源绿色低碳转型&#xff0c;推动阿坝至成都东等特高压工程开工建设。围绕数字化配电网、新型储能调节控制、车网互动等应用场景&#xff0c;打造一批数智化坚强电网示…

WEB服务器-Tomcat

3. WEB服务器-Tomcat 3.1 简介 3.1.1 服务器概述 服务器硬件 指的也是计算机&#xff0c;只不过服务器要比我们日常使用的计算机大很多。 服务器&#xff0c;也称伺服器。是提供计算服务的设备。由于服务器需要响应服务请求&#xff0c;并进行处理&#xff0c;因此一般来说…

Relation-Aware Graph Transformer for SQL-to-Text Generation

Relation-Aware Graph Transformer for SQL-to-Text Generation Abstract SQL2Text 是一项将 SQL 查询映射到相应的自然语言问题的任务。之前的工作将 SQL 表示为稀疏图&#xff0c;并利用 graph-to-sequence 模型来生成问题&#xff0c;其中每个节点只能与 k 跳节点通信。由…

shell简单截取curl GET返回的body消息体

目录 需求背景&#xff1a; 示例&#xff1a; 解决方式&#xff1a; 需求背景&#xff1a; 用shell解析 curl命令GET到的消息体&#xff0c;获取body消息体里的某个字段的值,只是个简单的示例&#xff0c;可以在此基础上更改满足自己的需求 示例&#xff1a; curl一个API…

使用CSS计算高度铺满屏幕

前言 今天写项目时出现高度设置百分百却不占满屏幕&#xff0c;第一反应看自己设置的是块级元素还是行级元素。看了几篇博客&#xff0c;发现并不能解决问题。脱离文档流的做法都没考虑&#xff0c;前期模板搭建脱离文档流&#xff0c;后面开发会出现很多问题。 以上图片是我…

【EI会议征稿通知】2024年第三届能源互联网及能源交互技术国际会议(EIEIT 2024)

2024年第三届能源互联网及能源交互技术国际会议(EIEIT 2024) 2024 3rd International Conference on the Energy Internet and Energy Interactive Technology 随着EIEIT前2届的成功举办&#xff0c;我们很荣幸地宣布&#xff0c;2024年第三届能源互联网及能源交互技术国际学术…

HCIA——12题目-1章选择

学习目标&#xff1a; 计算机网络 1.掌握计算机网络的基本概念、基本原理和基本方法。 2.掌握计算机网络的体系结构和典型网络协议&#xff0c;了解典型网络设备的组成和特点&#xff0c;理解典型网络设备的工作原理。 3.能够运用计算机网络的基本概念、基本原理和基本方法进行…

FPGA之LUT

由于FPGA需要被反复烧写,它实现组合逻辑的基本结构不可能像ASIC那样通过固定的与非门来完成,而只能采用一种易于反复配置的结构。查找表可以很好地满足这一要求,目前主流FPGA都采用了基于SRAM工艺的查找表结构。LUT本质上就是一个RAM.它把数据事先写入RAM后,每当输入一个信号就…

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

​ &#x1f34e;个人博客&#xff1a;个人主页 &#x1f3c6;个人专栏&#xff1a;Mybatis ⛳️ 功不唐捐&#xff0c;玉汝于成 ​ 目录 前言 正文 一级缓存&#xff08;Local Cache&#xff09;&#xff1a; 范围&#xff1a; 生命周期&#xff1a; 默认开启&…