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

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阈值处理。(storeFiles=>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的端口

你可能感兴趣的:(大数据)