您的位置:首页 > 大数据 > 云计算

大数据与云计算基础知识总结(一)

2017-05-16 09:12 288 查看
1.云计算来源:

Google搜索引擎首先提出,并通过三篇论文为世人所知。

2.云计算定义:

动态扩展,通过网络将虚拟化资源作为服务提供。(Iaas,Paas,Saas)

Iaas:提供硬件资源,AWS,网络服务,基础架构。

Paas:提供服务引擎,接口运行平台。

Saas:软件租用,使用状况。

3.其他云分类:

公有云、私有云、混合云。(分布式存储、分布式计算)

4.大数据作用:

可视化分析、数据挖掘算法、预测性分析、语音引擎、数据质量与管理。

5.关键性技术:

GFS、BigTable、Map-Reduce=>三篇论文是Hadoop的基础。

6.Hadoop的三种模式:

Lucene单机模式、伪分布式模式、完全分布式模式。

三种发行版本:Apache Hadoop、CDH(Cloudera)、HDP(HortonWorks)。

7.Hadoop的优势:

运行方便、健壮性、可扩展性、简单易应用、分布式、高效高容错。

8.大数据的四个特征(4V特性):

海量化、多样化、快速化、价值化。

9.Hadoop1(0.20x,0.21x,1.x)与Hadoop2(0.23x,2.x)的对比:

块大小从64M到128M,增加了Yarn优化计算框架,Federation机制(多个NameNode,共享式存储的HA模式,高可靠性)。

10.Hadoop的产生:

Doug Cutting是Hadoop之父,Hadoop是Apache软件基金会的顶级开源项目。

11.Hadoop组件介绍:

HDFS:分布式文件系统,提供高吞吐量访问应用程序数据;

YARN:集群资源管理框架,用户作业调度和集群资源管理;

MapReduce:基于YARN的大数据集并行处理系统;

Common:支持其他模块通用功能,如序列化,RPC,持久化数据结构等;

Ambari:部署管理和监视的开源框架,提供直观操作工具和健壮性的API;

Hbase:可拓展的分布式列式数据库,支持大表的结构化存储;

Hive:分布式数据仓库系统,提供基于类SQL查询语言;

Mahout:机器学习和数据挖掘领域经典算法实现;

Pig:高级数据流语言和执行环境,用来检索海量数据集;

Spark:快速通用计算引擎,支持多应用的编程模型;

Sqoop:在关系型数据库与Hadoop之间进行数据传输的工具;

Tez:从MR演化而来的通用DAG计算框架,作为底层数据处理引擎;

ZooKeeper:提供Hadoop集群高性能的分布式协调服务。

12.HDFS体系架构:

是主/从(Master/Slave)体系结构,有NameNode和一定数目的DataNode组成。(元数据存储)特点是:一次写入,多次读取。

NameNode的元数据:内存=>edits=>硬盘(fsimage镜像映射);

SecondaryNameNode的运行:请求edits与fsimage=>合并fsimage.ckpt=>返回fsimage。

13.云计算的Iaas平台:

Openstack(Python)、cloudstack(Java)=>虚拟机服务。

14.常见的分布式文件系统:

Windows:FAT32,NTFS;

Linux:EXT3,EXT4;

分布式:GFS(谷歌)、Ceph(性能高不成熟)、Lustre(sun公司)、MogileFs(danga)、mooseFs(性能差)、FastDFS(轻量级)、TFS(淘宝)、GridFS(MongoDB)。

15.副本位置选取原则:

不同机器、不同机架、不同机房、不同地域。

16.YARN的原理:

基本思想是MRv1(缺点:扩展受限、单点故障、难以支持MR之外的计算)。Yarn是通用资源管理平台,为各类计算框架提供资源的管理和调度(离线处理MapReduce、在线处理的Storm、内存计算框架的Spark)。总体上是Master/Slave结构,将节点资源(内存、CPU、磁盘、网络等)抽象为资源容器Container。其中内存是一种“决定生死”的资源,CPU是一种“影响快慢”的资源。

由MR的JobTracker拆分为ResourceManaer和ApplicationMaster。

ResourceManaer由Scheduler调度器和ApplicationsManager应用程序组成。

NodeManager是每个节点上的资源和任务管理器,会处理AM上的Container请求。

17.Yarn的其他技术:

功能:处理客户端请求、启动监控、资源分配与调度。

HDFS的两大技术:RPC协议(远程过程调用)和序列化技术。

RAID(数据磁盘冗杂阵列):RAID 0、RAID 1、RAID 5、RAID 10。

Ssh认证:RSA签字、DSA签字、单机码(认证码)。

DAG计算框架:依赖关系有向无环图。Tez

Yarn的资源分配算法:FIFO(先来先调度)、RAIR(公平调度)、DRF(资源调度)。

18.MapReduce的原理:

作为分布式计算框架,具有键值对的特性,由三部分组成:编程模型、数据处理引擎、运行时环境。主要依赖于合并函数(映射、化简),三个层面进行处理:大数据、抽象模型、构架层次。主要由JobTracker和TaskTracker执行调度和并行操作。

优势:易于编程、良好的扩展性、高容错性、延时较高、不适合实时、流式、DAG依赖计算。

具体流程:作业提交初始化=>任务调度与监控=>任务运行环境准备=>任务执行=>作业完成。(input=>map=>combiner=>shuffle=>reduce)

Map过程(partition是最小处理单元)、Reduce过程(shuffle=>sort=>reduce)。

槽位slot是MR的能力处理衡量的最小单元,=>处理器。

可编程组件:

InputFormat(Split)=>Mapper=>Partitioner=>(shuffle)Reducer(sort)=>OutputFormat。

数据处理引擎:(一个Job划分为Map和Reduce两个阶段,由Task负责执行)

Map Task:Read=>Map=>Collect=>Spill=>Combine

Reduce Task:Shuffle=>Merge=>Sort=>Reduce=>Write

19.ZooKeeper的原理

针对大型分布式系统的可靠性协调系统,能为HDFS、Hbase、MapReduce等组件提供重要功能职称。提高可靠的、可扩展的、分布式的、可配置的协调机制。不足是静态,互锁,不一致行。特征是简单、冗余、有序、快速。

定义:集中式服务、用户维护配置信息、命名服务、分布式同步以及组服务。

ZooKeeper是PTP模式,由Server提供负责,由Leader节点和Follower节点构成。

数据模型:基于树形结构的命名空间,与文件系统类似。根节点是Znode,可以是临时节点也可以是持久性节点,客户端和服务器采用长连接方式,通过心跳保持连接,称之为session。

监听watches(触发器)与Znode的状态变化有关,时间变化一次出发一次,可注册监听。

Stat结构:version+ACL+timestamp+data length。(包含节点地址、节点数据、子节点地址)

Zxid表示每次节点数据变更的同步策略。

实现ACL(访问控制机制)的四种认证:world、auth、digest、ip。

20.HBase的原理

非关系型数据库,如redis/MongoDB等。Hbase的需求是半结构化与非结构化数据,记录稀疏,多版本数据,超大数据量。是在Hadoop上开发面向列的分布式数据库,是典型的NOSQL数据库。特点是:数据量大,面向列,稀疏数据(null值的处理不占存储空间)。基于三个基础:HDFS的底层存储,MR的计算框架,ZooKeeper的协同协议。全部都是字节数据形式存储,以字典序排列。

单元cell的定位:行+列簇+列+版本信息(时间戳Timestamp)。

两个特殊表:ROOT和META。路径:ZooKeeper=>ROOT=>META=>region。

两个对象:HMaster,HRegion Server。管理操作接口。Hregion是分布式存储和负载均衡的最小单元。HFile是最小的存储单元。

HRegion Server=>HRegion=>HStroe=>memstroe,strorefiles(hfile)

两个方法:

compaction合并归类,compact阈值处理。(storeFil
4000
es=>storeFile)

split分割切分,阈值处理。storeFIle=>Region=>two Region

Hlog日志:保证数据恢复,WAL(write ahead log)

数据库原理:CAP原则(一致性、可用性、隔离分区性)

21.Spark生态系统

通过内存并行计算的框架,使用Scala语言实现。在内存中运算,需要时才持久化到磁盘,大大减少了数据处理过程中磁盘的读写,降低了所需时间,提高了效率。

特点:运行速度快,易用性好,通用性强,随处可以运行等等。

适用场景:批量处理,交互式查询,数据流实时处理,图形图像处理。

运行模式:本地模式,集群模式(standalone、On yarn、On mesos、On cloud)。

YARN-Client与YARN-Cluster的联系区别。

与Hadoop的差异:内存运算效率高,容错性高,更通用的算子。

生态圈:以spark core为核心,以HDFS为持久层,以mesos和yarn为调度器,完成job任务。

22.spark生态圈:

Spark core:DAG框架,RDD抽象,移动计算,多线程池,akka通讯框架。

Spark streaming:将实时数据批量处理,容错、实时、扩展性与吞吐量。

Spark SQL:前身是shark,是Hive的spark版本,有个关于RDD的计算。

BlinkDB:海量数据交互式SQL查询,是spark SQL的封装。

MLBase/Mllib:机器学习,其它的如WeKa/Mahout。

GraphX:图和图形并行计算,图形化处理。

SparkR:R开发包,扩展数据处理能力,R语言的扩展。

Tachyon:分布式内存存储,内存缓存处理。

23.RDD(弹性分布式数据集)算子

定义为只读、分区化的记录集合,通俗地讲,RDD是对原始数据进一步的封装。封装的作用:第一使数据访问权限被限制,数据只读,不能被修改;第二数据操作功能被强化,使得实现分布式存储,并发处理,自动容错等功能。

来源:第一是将未被封装的原始数据进行封装操作,根据数据的存在形式,可分为由集合并行化获得或者从外部数据集中获得;第二是由其他RDD通过转换操作获得,可返回新的RDD,并不影响原来的RDD内容。

触发计算的操作为动作(Action)操作,延时计算特性被称为RDD的计算惰性(Lazy)。

RDD类型:包括MappedRDD、HadoopRDD、FilteredRDD。对于一个RDD执行不同变换操作,可能得到不同类型的RDD。

Application:Driver(sparkContext 驱动)+Executor(执行数据)。

Executor:原生数据(输入输出)、RDD(输入、转换、缓存)、共享变量(广播、累加器)。

Operation(操作):Transformation(变换操作)和Action(动作操作)。变换操作用于得到新的RDD,动作操作用于向驱动程序返回值或者将值写入文件。

RDD:负责spark的真正调度。DAG Scheduler和Task Scheduler。(计算单元,基本抽象)

RDD的依赖:变换操作对应两个或者多个RDD之间的关系,即为依赖关系。提供数据的一个或多个RDD成为父RDD,创建得到的RDD为子RDD。分为宽依赖(Shuffle依赖)和窄依赖。

RDD的持久化:检查点(CheckPoint)操作,将使得数据恢复不丢失。

24.端口号

8088 yarn集群状态 50070 HDFS状态 9000 HDFS访问端口

4040 spark运行状态 50075 基于YARN的spark状态

2181 zookeeper端口 60010 hbase端口 8080 spark的端口
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  云计算 大数据