大数据存储与处理:PPT要点&大题

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1.大数据:指的是所涉及的数据集规模已经超过了传统数据库软件的获取、存储、管理和分析的能力。

2.大数据的产生:三个阶段:运营式系统阶段,被动存储在数据库中;用户原创内容阶段,web2.0,主动;感知式系统阶段,感知式系统的广泛使用。

3.物联网架构:三层,感知层、网络层、应用层。

关系:物联网,移动互联网再加上传统互联网,每天都在产生海量数据,而大数据又通过云计算的形式,将这些数据筛选处理分析,提取出有用的信息,这就是大数据分析。

4.大数据存储系统的分类:

分布式数据库,存储结构化数据如Spanner, Oceanbase, RDS;

分布式文件系统,存储非结构化数据,如HDFS、GFS、TFS;

NoSQL(Not Only SQL)数据库:键值存储,如Redis,类似Hash表,存储半结构化数据,常用于分布式缓存;列存储,如HBase、Bigtable,结构松散,单表操作,不支持多表连接。

5.大数据的三大关键问题:存储(容量-NAS等、吞吐量-RAID)、计算(多核、并行)、容错。

容错:数据容错、计算任务容错(故障检测、计算数据定位与获取、任务迁移)。RAID0:并行磁盘;RAID1:镜像冗余;RAID10:1+0;RAID5:校验冗余。

6.Hadoop的特点:扩容能力、成本低(普通机器)、高效率(在数据所在的节点并行计算)、可靠性(冗余、自动重新部署失败任务)。

缺点:用Java实现,Java的IO处理虽然没有性能瓶颈,但是对于CPU密集型的任务是一个麻烦,因此,有些算法效率不会提高很多。

7.进程:Master Node:Namenode、Secendary Namenode、Jobtracker;Slave Node:Tasktracker、Datanode.

8.MapReduce流程:把(job的)输入拆分成固定大小的splits,每个split(默认对应1个block的大小)对应一个map task,分发到各节点→map过程(本地):把原数据转换为键值对的形式,并去除不需要/错误的数据;每个map任务有一个内存缓冲区(100mb),写入数据达80%时spill(先在缓冲区预排序)到本地磁盘,键值对按key排列组合(sort&Combiner:一次简单的reduce,合并相同的key)→送入(其他结点)进行reduce,reduce获取map输入的过程是同步多线程进行的(copy&merge)。

job:包括数据、M/R程序、配置信息。把job拆分成map和reduce tasks. TaskTracker每隔3秒向JobTracker发送心跳询问有没有任务可做,如果有,让其派发任务给它执行。

9.作业调度:默认先进先出FIFO;支持公平调度(支持多个队列,每个队列可配

置一定的资源量,同一队列中的作业公平共享队列中所有资源)、容量/计算能力调度(多队列,每个队列中FIFO,对同一用户提交的作业所占资源量进行限定)。

1.Google为什么不采用传统的技术,而是mapreduce、bigtable、GFS,功能分别是什么?

(1)GFS:Google特有的环境与负载需要。Google主要处理的数据如爬取的网页、访问日志,计算如词频计算、倒排索引等,特点是单个运算简单、数量庞大、数据相对独立。

GFS是一种分布式文件系统,用集群方式提升系统整体容量,支持高吞吐量(顺序读写、数据存储的基本单元大)。基于大量安装有Linux操作系统的普通PC 构成的集群系统,整个集群系统由一台Master(通常有几台备份)和若干台ChunkServer构成。GFS中文件被分成固定大小的Chunk,分别存储在不同的ChunkServer 上,每个Chunk有多份(通常为3份)拷贝,也存储在不同的ChunkServer上。Master负责维护GFS中的Metadata,即文件名及其Chunk 信息。客户端先从Master上得到文件的Metadata,根据要读取的数据在文件中的位置与相应的ChunkServer通信,获取文件数据。

(2)BigTable:GFS是文件系统,不适合结构化数据的存储和访问;不适合使用RDBMS,不能满足要求海量结构化数据存储需求:存储数据的多样性与复杂性、海量的处理请求、高吞吐和高并发、成本与控制力、稀疏(很多列无数据且只经常访问少量)。

是一种(非关系型、NoSQL)分布式数据库。是一个经过排序后的分布式的、稀疏的、多维映射表,数据以键/值映射的形式组织,数据索引由Row/Column Key 和Timestamp组成。

(3)MapReduce:PR算法需要执行行列数以亿为单位的矩阵相乘,单机运算所需的时间过长。

是一种编程模型,用于大规模数据集的并行运算。把一个大的计算任务拆分成若干小的子计算任务,分发给节点上的机器并行运算,最后合并子任务的运算结果得到最终结果。

2.大数据的特点:

3V:大量(Volume),多样(Variety),速度(Velocity)--4V:Value(价值)。Variety:由结构化数据和非结构化数据组成,后者多样(图片、视频等)。Value:价值密度低、商业密度高。

3.互联网上哪些产品是Saas、Paas、Iaas服务?

(1)SaaS 软件即服务:提供了完整的可直接使用的应用程序。厂商将应用软件

统一部署在自己的服务器上,客户可以根据自己实际需求,通过互联网向厂商定购所需的应用软件服务,按定购的服务多少和时间长短向厂商支付费用,如Google Apps, Microsoft “Software+Services”.

(2)PaaS平台即服务:将软件研发的平台作为一种服务。把客户开发的的应用程序部署到供应商的云计算基础设施上去。如IBM IT factory, Google App Engine.

(3)IaaS 基础设施即服务:将基础设施(计算资源和存储)作为服务出租。用户能够部署和运行任意软件,包括操作系统和应用程序。如Amazon EC2, IBM Blue Cloud,.

4.HDFS和传统文件系统的区别、冗余机制、如何保证完整性、一致性(可靠性);HDFS是为以流式数据访问模式存储超大文件而设计的文件系统。模式:一次写入、多次读取,写入后不能修改,无数据一致性问题。程序采用“数据就近”原则分配节点执行。因为运行在普通的硬件上,硬件错误是常态,因此需要冗余。文件切分成块block(默认大小64M),以块为单位,每个块有多个副本存储在不同的机器上,副本数可在文件生成时指定(默认3)。

可靠性:冗余备份策略、机架感知、心跳机制、安全模式、校验和、回收站、元数据备份。校验和:每个block对应一个校验和,客户端读取数据时可以校验,如果错误则读取其他副本。安全模式:副本数量不足的block达到一定比例时,进入safe mode,此时不能写/删除。机架感知:block副本同机架内尽量只有1份。元数据备份:可将元数据备份到多个目录(通常一本地、一远程-通过NFS)以及Secondary Namenode。心跳机制:3秒一次、10分钟不可用。

适合:存储并管理PB级数据、处理非结构化数据、注重数据处理的吞吐量且对延迟不敏感。

不适合:存储小文件、大量的随机读、需要对文件的修改、多用户写入。NameNode是主节点,存储文件的元数据:文件名,文件目录结构,文件属性,数据块的长度、校验和、时间戳,以及每个文件的块列表以及块所在的DataNode等,保存在内存。保存文件,block ,datanode之间的映射关系。周期性地从集群中的每个Datanode接收心跳信号和块状态报告(blockreport)。Secondary Namenode:把namespace image与edit log合并,防止edit log变得过大;一般运行在独立的机器上:需要大量CPU资源和同样多的内存;正常运行时并不执行namenode的功能。

DataNode在本地文件系统(磁盘)存储文件块数据,以及块数据的校验和。维护了block id到datanode本地文件的映射关系。

DataNode启动后向NameNode注册,通过后,周期性(1小时)的向NameNode上报所有的块信息(blockreport)。心跳是每3秒一次,如果超过

相关文档
最新文档