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

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

  • 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.支持迭代和增量迭代
对于某些迭代而言,并不是单次迭代产生的下一次工作集中的每个元素都需要重新参与下一轮迭代,有时只需要重新计算部分数据同时选择性地更新解集,这种称为增量迭代

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

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

相关文章

超声波眼镜清洗机清洗眼镜会有伤害吗?适合洗眼镜超声波清洗机

眼镜作为日常生活中不可或缺的辅助视力工具&#xff0c;经常需要清洁保养以确保视力清晰和舒适佩戴。随着科技的发展&#xff0c;超声波眼镜清洗机成为越来越受欢迎的清洁方式。然而&#xff0c;很多人可能会担心使用超声波清洗机是否会对眼镜造成损害。但是可以很可以的告诉大…

设计模式——原型模式(Prototype Pattern)

概述 原型模式(Prototype Pattern)&#xff1a;使用原型实例指定创建对象的种类&#xff0c;并且通过拷贝这些原型创建新的对象。原型模式是一种对象创建型模式。原型模式的工作原理很简单&#xff1a;将一个原型对象传给那个要发动创建的对象&#xff0c;这个要发动创建的对象…

C1-3.4 多个样本的向量化

C1-3.4 多个样本的向量化 1、为什么要用样本的向量化呢&#xff1f; 总结一句话&#xff1a;计算方便 下图是神经网络计算的步骤&#xff0c;右侧 是有一个输入变量a[0]&#xff08;什么是X呢&#xff0c;因为输入层有三个神经元&#xff0c;说明有三个输入变量&#xff0c;…

15 个适用于 Windows 的 PDF 解锁工具大全

PDF&#xff08;便携式文件格式&#xff09;是一种文件格式&#xff0c;用于呈现和交换任何独立于任何软件、硬件或操作系统的可靠访问的文档。Adobe 发明了它&#xff0c;但现在它是由国际标准化组织 (ISO) 维护的开放标准。因此&#xff0c;您现在必须了解这些 PDF 解锁工具。…

【随笔】遗传算法优化的BP神经网络(随笔,不是很详细)

文章目录 一、算法思想1.1 BP神经网络1.2 遗传算法1.3 遗传算法优化的BP神经网络 二、代码解读2.1 数据预处理2.2 GABP2.3 部分函数说明 一、算法思想 1.1 BP神经网络 BP神经网络&#xff08;Backpropagation Neural Network&#xff0c;反向传播神经网络&#xff09;是一种监…

Linux第21步_取消鼠标中键的复制粘贴功能

在ubuntu18.04操作系统中&#xff0c;选中文本后&#xff0c;若按下鼠标中键&#xff0c;就可以执行复制粘贴&#xff0c;相当于 CtrlshiftC 后又按了 CtrlshiftV。在Linux系统中&#xff0c;基本上都是这么配置的。在windows系统中&#xff0c;我们习惯用Ctrl-C复制&#xff0…

普通人想通过抖音赚钱要先知道这4点

1.变现方式 想做抖音首先要想好变现路径以及通过什么方式变现。做抖音就是在经营某一类人群&#xff0c;因为人群绑定了精准标签&#xff0c;系统推送的精准又绑定了变现。所以要明确你经营的目标人群是谁&#xff0c;你在做谁的生意&#xff0c;你要赚谁的钱。他们的年龄、收…

OpenCV-Python的版本介绍及区别

OpenCV-Python版本介绍 OpenCV-Python有多个版本&#xff0c;每个版本都有其特定的功能和改进。以下是一些常见OpenCV-Python版本及其介绍和区别&#xff1a; OpenCV-Python 2.x版本 这是OpenCV-Python的旧版本&#xff0c;支持Python 2.x。它包含了许多传统的计算机视觉功能&…

可盐可甜的红色马甲背心

膨体棉腈面料不易皱&#xff0c;搭配阿兰花菱形镂空设计 真的绝绝子&#xff0c;红色吸睛又美观 随便搭配一件衬衫去穿&#xff0c;自带文艺气息 氛围感直接拉满 出街拍照很出片&#xff0c;时髦又气质 女孩子的甜美&#xff0c;温柔等都可以突显 有喜欢的可以尝试一下哟…

超维空间M1无人机使用说明书——61、ROS无人机物体识别与精准投放

引言&#xff1a;基于空中物流的项目背景。我们提供了使用基于诗句的物体识别和精准投放、降落。实现原理如下&#xff1a; 1、在ROS下使用机载电脑实现物体识别 2、记载电脑根据反馈的位置发布运动控制指令 3、PX4解析机载电脑发布的命令&#xff0c;作出运动控制 4、设置…

Docker与微服务实战(高级篇)- 【上】

Docker与微服务实战&#xff08;高级篇&#xff09;- 【上】 一、Docker复杂安装详说1.1 Mysql主从复制--原理-【尚硅谷Mysql高级篇】1.2 Mysql主从复制--【一主一从】搭建步骤1.2.1新建--【主服务器】--容器实例--33071.2.2.进入/app/mysql-master/conf目录下新建my.cnf1.2.3.…

【算法】简单的二分查找算法

一个简单的二分查找算法&#xff1a; import java.util.Arrays; public class BinarySearch {public static int rank(int key,int[] a){int lo0;int hia.length-1;while (lo<hi){int midlo(hi-lo)/2;if (key<a[mid])himid-1;else if (key>a[mid])lomid1;else return …

嵌入式linux 编译qt5(以v851s为例)

本文参考Blev大神的博客&#xff1a;Yuzuki Lizard V851S开发板 --移植 QT5.12.9教程&#xff08;群友Blev提供&#xff09; - Allwinner / 柚木PI-V851S - 嵌入式开发问答社区 (100ask.net) 一. 环境准备 1.下载qt5源码&#xff1a;Open Source Development | Open Source …

【Maven】001-Maven 概述

【Maven】001-Maven 概述 文章目录 【Maven】001-Maven 概述一、Maven 概述1、为什么学习 MavenMaven 作为依赖管理工具Maven 作为构建工具其它 2、Maven 介绍3、Maven 软件工作模型图 一、Maven 概述 1、为什么学习 Maven Maven 作为依赖管理工具 依赖管理&#xff1a; Mave…

IDEA集成Gitee(码云)

文章目录 创建新仓库&#xff0c;存放项目拉取Gitee上的项目 1、安装插件 Idea默认不带码云插件&#xff0c;我们第一步要安装Gitee插件。 如图所示&#xff0c;在Idea插件商店搜索Gitee&#xff0c;然后点击右侧的Install按钮。 2、Settings>Version Conttol>Gitee 这里…

数据分析基础

数据运营的概念及意义 数据分析的三个维度 数据总览的作用及提升方法 数据总览的作用及提升方法 数据总览的作用及提升方法小结 影响作品数据的关键因素 影响作品数据的关键因素小结 用户数据的意义与作用 用户数据分析的方法与操作 用户数据分析的方法与操作小结 数据运营小结…

数据仓库 Apache Hive

一、数据分析 1、数据仓库 数据仓库&#xff08;英语&#xff1a;Data Warehouse&#xff0c;简称数仓、DW&#xff09;&#xff0c;是一个用于存储、分析、报告的数据系统。 数据仓库的目的是构建面向分析的集成化数据环境&#xff0c;分析结果为企业提供决策支持&#xff08…

Unity 编辑器篇|(四)编辑器拓展GUI类 (全面总结 | 建议收藏)

目录 1. 前言2. 参数2.1 静态变量2.2 静态函数2.3 委托 3. 功能3.1 按钮&#xff1a;Button、RepeatButton3.2 文本&#xff1a;Label 、TextField 、TextArea 、PasswordField3.3 滑动条&#xff1a;HorizontalScrollbar 、VerticalScrollbar3.4 滑条&#xff1a;VerticalSlid…

表单生成器基于(form-create-designer+ant design vue)

效果展示 1.源码地址&#xff1a; 前端&#xff1a;https://gitee.com/houshixin/form-design-ui 后端&#xff1a;https://gitee.com/houshixin/form-design-web 2.单独使用前端的时候就把请前后台的接口注释就可以 3.都启动的话&#xff1a; 1&#xff09;.先导入数据库 2.表…

C++代码重用:继承与组合的比较

目录 一、简介 继承 组合 二、继承 三、组合 四、案例说明 4.1一个电子商务系统 4.1.1继承方式 在上述代码中&#xff0c;Order类继承自User类。通过继承&#xff0c;Order类获得了User类的成员函数和成员变量&#xff0c;并且可以添加自己的特性。我们重写了displayI…