🔍一、云计算基础
1、云计算的概念、特点、关键技术
概述(维基百科):云计算是一种基于互联网的计算方式,通过这种方式,共享的软硬件资源和信息可以按需求提供给计算机和其他设备,它就像我们日常生活中用水和用电一样,按需付费,而无需关心水、电是从何而来的一种资源管理模式。
特点:①资源池弹性可扩张 ②按需提供资源服务 ③网络化的资源接入 ④虚拟化 ⑤可靠性和安全性
关键技术:①虚拟化 ②分布式存储 ③分布式计算 ④多租
2、云计算的分类
按技术路线分为 ①资源整合型 ②资源切分型
3、云计算的部署模式
①公有云 ②私有云 ③混合云 ④社区云
4、云计算的服务模式:IaaS、PaaS、SaaS分别是什么,具体含义要清楚
①IaaS:基础设施即服务
IaaS把计算和存储资源不经封装地直接通过网络以服务的形式提供的用户使用。
IaaS为上层云计算服务提供必要的硬件资源,同时在虚拟化技术的支持下,IaaS层可以实现硬件资源的按需配置,创建虚拟的计算、存储中心,使得其能够把计算单元、存储器、I/O设备、带宽等计算机基础设施,集中起来成为一个虚拟的资源池来对外提供服务(如硬件服务器租用)。
②Paas:平台即服务
PaaS将计算和存储资源经封装后,以某种接口和协议的形式提供给用户调用,资源的使用者不再直接面对底层资源。
PaaS既要为SaaS层提供可靠的分布式编程框架,又要为IaaS层提供资源调度,数据管理,屏蔽底层系统的复杂性等,同时PaaS又将自己的软件研发平台作为一种服务开放给用户。PaaS的关键技术包括并行编程模型、海量数据库、资源调度与监控、超大型分布式文件系统等分布式并行计算平台技术。
③SaaS:软件即服务
SaaS将计算和存储资源封装为用户可以直接使用的应用并通过网络提供给用户,SaaS面向的服务对象为最终用户,用户只是对软件功能进行使用,无需了解任何云计算系统的内部结构,也不需要用户具有专业的技术开发能力。
SaaS 层部署在PaaS和IaaS平台之上,同时用户可以在PaaS平台上开发并部署SaaS服务,SaaS面向的是云计算终端用户,提供基于互联网的软件应用服务。随着网络技术的成熟与标准化,SaaS 应用近年来发展迅速。典型的SaaS 应用包括Google Apps、Salesforce等。
5、物联网的概念
物联网是通过射频识别(RFID)装置、红外感应器、全球定位系统、激光扫描器等信息传感设备,按约定的协议,把任何物品与互联网相连接,进行信息交换和通信,以实现智能化识别、定位、跟踪、监控和管理的一种网络。
6、物联网和云计算、大数据的关系
云计算、大数据和物联网代表了IT领域最新的技术发展趋势,三者既有区别又有联系
7、了解云计算的数据中心是什么,有什么特点
定义:数据中心是用于存放计算机系统和与之配套的网络、存储等设备的综合系统,数据中心需要具备冗余的数据通信连接、环境控制设备、监控设备以及各种安全装置。
特点:大规模、高密度、低成本、绿色化、自动化、容灾方式
8、主流云计算平台的主要云产品名称及作用
亚马逊(EC2、S3、EBS、SimpleDB等)
①Amazon的云计算平台弹性计算云EC2(elastic compute cloud)可以为用户或开发人员提供一个虚拟的集群环境,既满足了小规模软件开发人员对集群系统的需求,减小维护的负担,又有效解决了设备闲置的问题
②Amazon的S3云存储服务
Google(App Engine,Picasa)
①App Engine 是基于Google数据中心的开发、托管Web应用程序的平台。通过该平台,程序开发者可以构建规模可扩展的Web应用程序,而不用考虑底硬件基础设施的管理。
②Google的Picasa相册
③Google Apps也是主流的协作云产品
微软(SkyDrive)
①SkyDrive网络硬盘
🔦二、大数据基础
1、常用的数据计量单位及其换算
2、大数据的概念,了解大数据的来源及其多样性
概念:维基(Wiki)百科给出的大数据概念是:在信息技术中,“大数据”是指一些使用目前现有数据库管理工具或者传统数据处理应用很难处理的大型而复杂的数据集。其挑战包括采集、管理、存储、搜素、共享、分析和可视化。
来源:随着人类活动的进一步扩展,数据规模急剧膨胀,包括金融、汽车、零售、餐饮、电信、能源、政务、医疗、体育、娱乐等在内的各行业累积的数据量越来越大,数据类型也越来越多、越来越复杂,已经超越了传统数据管理系统、处理模式的能力范围,于是“大数据”这样一个概念才会应运而生。
多样性:大数据的信息量是海量的,这个海量并不是某个时间端点的量级总结,而是持续更新,持续增量。由于大数据产生的过程中诸多的不确定性,使得大数据的表现形态多种多样。
3、大数据的5V特征
大体量(Volume)。需要采集、处理、传输的数据容量大,数据量可从数百TB到数百PB甚至EB的规模。
多样化(Variety)。大数据所处理的数据类型早已不是单一的文本数据或者结构化的数据库中的表,而是包括各种格式和形态的数据,数据结构种类多,复杂性高。
时效性(Velocity)。很多大数据需要在一定时间限度下得到及时处理,处理数据的效率决定企业的生命。
准确性(Veracity)。大数据处理的结果要保证一定的准确性。
大价值(Value)。大数据包含很多深度的价值,通过强大的机器学习和高级分析对数据进行“提纯”,能够带来巨大商业价值。
4、科学研究的4个范式
①实验 ②理论 ③计算 ④数据
5、大数据对思维方式的影响
①全样而非抽样 ②效率而非精确 ③相关而非因果
6、大数据的处理流程
(数据采集、数据存储与管理、数据处理与分析、数据呈现)
①数据采集 ②数据存储与管理 ③数据处理与分析 ④数据呈现
7、大数据的关键技术
①分布式存储
②分布式处理
8、主要的大数据处理系统及代表产品
①批处理系统:Hadoop、Spark
②数据查询分析计算系统:HBase、Hive、Cassandra、Dremel、Spark、Hana
③流计算系统:Facebook的Scribe、Apache的Flume、Twitter的Storm、Yahoo的S4、UCBerkeley的Spark Streaming
④迭代计算系统:Haloop、iMapReduce、Twister、Spark
⑤图计算系统:Google公司的Pregel、Pregel的开源版本Giraph、微软的Trinity、Berkeley AMPLab的GraphX以及高速图数据处理系统PowerGraph。
⑥内存计算系统:分布式内存计算系统Spark、全内存式分布式数据库系统Hana、Google的可扩展交互式查询系统Dremel。
9、云计算之父、大数据之父
云计算之父—约翰·麦卡锡(John McCarthy)
大数据之父—吉姆·格雷(Jim Gray)
🔑三、虚拟化与容器技术
1、虚拟化的概念、特征
概念:
广义地定义虚拟化技术:虚拟化技术就是一种逻辑简化技术,实现物理层向逻辑层的变化。
特征:
①分区:在单一物理服务器上同时运行多个虚拟机
②隔离:在同一服务器上的虚拟机之间相互隔离
③封装:虚拟机以文件夹方式保持,可以转换成.ovf/ova的文件来移动和复制该虚拟机
④相对于硬件独立:无需修改即可在任何服务器上运行虚拟机
2、虚拟化的好处
虚拟化平台效益:减少服务器总体数量;减少网口和网络设备总体数量;节省存储空间;节省机房、机柜空间;提高系统管理员工作效率
提高运维效率:降低运行成本、提高服务水平
3、虚拟化的分类:从计算体系结构层次上分为哪几类
4、系统虚拟化是什么
概念:系统虚拟化是在一台物理计算机系统上虚拟出一台或多台虚拟计算机系统。虚拟计算机系统(简称虚拟机)是指使用虚拟化技术运行在一个隔离环境中的具有完整硬件功能的逻辑计算机系统,包括操作系统和应用程序。
分类:服务器虚拟化、桌面虚拟化、网络虚拟化
5、服务器虚拟化的关键技术哪三个
服务器虚拟化的关键技术是对CPU、内存、I/O硬件资源的虚拟化。
6、知道常用的虚拟化软件有哪些
VirtualBox、VMware Workstation、KVM、Xen、OpenVZ
7、虚拟化和容器的区别
8、Docker是什么,技术支柱是什么,容器、镜像、仓库三个基本概念
概念:
- Docker是dotCloud公司的一个开源项目,诞生于 2013 年初,基于 Go 语言实现,并遵从Apache 2.0协议,基于容器技术的轻量级虚拟化解决方案。
- Docker是容器引擎,把Linux的cgroup、namespace等容器底层技术进行封装抽象,为用户提供了创建和管理容器的便捷界面(包括命令行和API)。
- Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows操作系统的机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。
技术支柱:Namespaces、Control Groups、UnionFS
三个基本概念:
容器:类似于从模板中创建虚拟机;容器是从镜像创建的运行实例。它可以被启动、开始、停止、删除。每个容器都是相互隔离的;可以把容器看做是一个简易版的 Linux 环境(包括root用户权限、进程空间、用户空间和网络空间等)和运行在其中的应用程序。
镜像:Docker 的镜像类似虚拟机的模板,但是更轻量;一个镜像可以包含一个完整的 Linux 操作系统环境,里面仅安装了 Tomcat;镜像可以用来创建容器
仓库:仓库是集中存放镜像文件的场所;仓库注册服务器上往往存放着多个仓库,每个仓库中又包含了多个镜像,每个镜像有不同的标签;仓库分为公开仓库(Public)和私有仓库(Private)两种形式;push镜像到仓库,从仓库pull镜像
📑四、Hadoop
1、Hadoop是什么
概念:Hadoop是一种处理大数据的分布式软件框架,具有可靠、高效、扩展、低成本、兼容性等特点。Hadoop擅长于在廉价机器搭建的集群上进行海量数据(结构化与非结构化)的存储与离线处理。
2、Hadoop的核心组件有什么
三大核心组件:
HDFS(Hadoop Distribute File System):hadoop的数据存储工具。
YARN(Yet Another Resource Negotiator,另一种资源协调者):Hadoop 的资源管理器。
Hadoop MapReduce:分布式计算框架
3、Hadoop和Google三驾马车的关系
相当于衍生出来的HDFS、Hadoop MapReduce、HBase都是Google三驾马车的山寨版
4、Hadoop的优点
①高可靠性 ②高扩展性 ③高效性 ④高容错性 ⑤低成本
5、知道Hadoop生态系统中主要的项目名称及作用
6、Hadoop2.0中加入Yarn的原因
为了实现一个Hadoop集群的集群共享、可伸缩性和可靠性。
7、Hadoop的三种安装模式
单机模式:只在一台机器上运行,存储采用本地文件系统,没有采用分布式文件系统HDFS;
伪分布式模式:存储采用分布式文件系统HDFS,但是,HDFS的名称节点和数据节点都在同一台机器上;
分布式模式:存储采用分布式文件系统HDFS,而且,HDFS的名称节点和数据节点位于不同机器上。
8、Hadoop集群配置的步骤
1、选定一台机器作为 Master;
2、在Master节点上创建hadoop用户、安装SSH服务端、安装Java环境;
3、在Master节点上安装Hadoop,并完成配置;
4、在其他Slave节点上创建hadoop用户、安装SSH服务端、安装Java环境;
5、将Master节点上的“/usr/local/hadoop”目录复制到其他Slave节点;
6、在Master节点上开启Hadoop;
10、Linux中最基本的shell命令:如cd、cat、rm、cp、mv、source、vim….
cd:打开目录
cat:查看文件内容
rm:删除
cp:复制文件
mv:移动文件,相当于剪切
source:读取并执行文件中的命令
vim:编辑文本
📚五、HDFS
1、GFS是什么、HDFS是什么
GFS:Google文件系统(GFS)Google文件系统是一个可扩展的分布式文件系统,用于对大量数据进行访问的大型、分布式应用。GFS是一种面向不可信服务器节点而设计的文件系统。
HDFS:Hadoop的文件系统称为HDFS(Hadoop Distributed File System)。
2、HDFS的体系结构
NameNode:Master节点,在hadoop1.X中只有一个,管理HDFS的名称空间和数据块映射信息,配置副本策略,处理客户端请求。
DataNode:Slave节点,存储实际的数据,汇报存储信息给NameNode。
Secondary NameNode:辅助NameNode,分担其工作量;定期合并fsimage和fsedits,推送给NameNode;紧急情况下,可辅助恢复NameNode,但Secondary NameNode并非NameNode的热备。
工作过程:
①用户请求创建文件的指令由Namenode进行接收。
②Namenode将存储数据的Datanode的IP返回给用户,并通知其他接收副本的Datanode,由用户直接与Datanode进行数据传送。
3、HDFS的存储原理:分块策略和副本策略
分块策略:一个文件被分成多个块,以块作为存储单位。数据块会被分别存储在不同的Datanode节点上
副本策略:HDFS对数据块典型的副本策略为3个副本,第一个副本存放在本地节点,第二个副本存放在同一个机架的另一个节点,第三个本副本存放在不同机架上的另一个节点。
4、名称节点、数据节点出错时怎么处理
HDFS设置了备份机制,把这些核心文件备份到SecondaryNameNode上。当名称节点出错时,就可以根据SecondaryNameNode中的FsImage和Editlog数据进行恢复。
名称节点会定期检查这种情况,一旦发现某个数据块的副本数量小于冗余因子,就会启动数据冗余复制,为它生成新的副本。
5、支持三种shell 命令格式:hadoop fs、Hadoop dfs、hdfs dfs
hadoop fs:适用于任何不同的文件系统,比如本地文件系统和HDFS文件系统
hadoop dfs:只能适用于HDFS文件系统
hdfs dfs:跟hadoop dfs的命令作用一样,也只能适用于HDFS文件系统
⏳六、MapReduce
1、MapReduce是什么
分布式计算框架MapReduce是Google系统和Hadoop系统中的一项核心技术。
2、MapReduce的核心思想:
分而治之
3、MapReduce的体系结构,主从式,了解每个组件的功能
1)Client:
用户编写的MapReduce程序通过Client提交到JobTracker端。
用户可通过Client提供的一些接口查看作业运行状态。
2)JobTracker:
JobTracker负责资源监控和作业调度。
JobTracker 监控所有TaskTracker与Job的健康状况,一旦发现失败,就将相应的任务转移到其他节点。
JobTracker 会跟踪任务的执行进度、资源使用量等信息,并将这些信息告诉任务调度器(TaskScheduler),而调度器会在资源出现空闲时,选择合适的任务去使用这些资源。
3)TaskTracker:
TaskTracker 会周期性地通过“心跳”将本节点上资源的使用情况和任务的运行进度汇报给JobTracker,同时接收JobTracker 发送过来的命令并执行相应的操作(如启动新任务、杀死任务等)。TaskTracker 使用“slot”等量划分本节点上的资源量(CPU、内存等)。一个Task 获取到一个slot 后才有机会运行,而Hadoop调度器的作用就是将各个TaskTracker上的空闲slot分配给Task使用。slot 分为Map slot 和Reduce slot 两种,分别供MapTask 和Reduce Task 使用。
4)Task:
Task 分为Map Task 和Reduce Task 两种,均由TaskTracker 启动。
4、Map函数和Reduce函数分别做什么以及MapReduce的工作过程
(切分、map、shuffle、reduce,四步大致)
Map:
InputFormat根据输入文件产生键值对,并传送到map函数中;
map输出键值对到一个没有排序的缓冲内存中;
当缓冲内存达到给定值或者map任务完成,在缓冲内存中的键值对就会被排序,然后输出到磁盘中的溢出文件;
如果有多个溢出文件,那么就会整合这些文件到一个文件中,且是排序的;
这些排序过的、在溢出文件中的键值对会等待Reducer的获取。
Reduce:
Reducer获取Mapper的记录;
shuffle相同的key被传送到同一个的Reducer中;
当有一个Mapper完成后,Reducer就开始获取相关数据,所有的溢出文件; 会被排序到一个内存缓冲区中;
当内存缓冲区满了后,就会产生溢出文件到本地磁盘;
当Reducer所有相关的数据都传输完成后,所有溢出文件就会被整合和排序;
Reducer中的reduce方法针对每个key调用一次;
Reducer的输出到HDFS。
5、MapReduce适合做哪类任务,它的优缺点
特点:
1)需要在集群条件下使用。
2)需要有相应的分布式文件系统的支持。
3)不需要特别的硬件支持。
4)假设节点的失效为正常情况。
5)适合对大数据进行处理。
6)计算向存储迁移。
7)MapReduce的计算效率会受最慢的Map任务影响
优点:
MapReduce易于编程
良好的扩展性
廉价、容错性高
适合海量数据的离线处理
缺点:
不擅长实时计算
不擅长流式计算
不擅长图计算
⏲️七、HBase
1、HBase是什么,和Bigtable底层技术的对应关系
HBase是一个高可靠、高性能、面向列、可伸缩的分布式数据库,是谷歌BigTable的开源实现,主要用来存储非结构化和半结构化的松散数据。
2、Hbase与Hadoop其他组件的关系
HBase位于结构化存储层,HDFS为HBase提供了高可靠性的底层存储支持,MapReduce为HBase提供了高性能的计算能力,Zookeeper为HBase提供了稳定服务和failover机制。Pig和Hive还为HBase提供了高层语言支持。Sqoop则为HBase提供了方便的关系数据库管理系统数据导入功能。
3、Hbase的数据模型,数据模型中各概念的含义,能够举出例子(参考ppt中)
表:HBase采用表来组织数据,表由行和列组成,列划分为若干个列族
行:每个HBase表都由若干行组成,每个行由行键(row key)来标识。
列族:一个HBase表被分组成许多“列族”(Column Family),它是基本的访问控制单元
列限定符(列):一个列族可以有多个列,列族里的数据通过列限定符来定位
单元格:在HBase表中,通过行、列族和列限定符确定一个“单元格”(cell),单元格中存储的数据没有数据类型,总被视为字节数组byte[]
时间戳:每个单元格都保存着同一份数据的多个版本,这些版本采用时间戳进行索引
4、Hbase和传统关系数据库的区别
5、region是什么
元数据表,又名.META.表,存储了Region和Region服务器的映射关系
Region是分布式存储的最小单元
6、HBase Shell常用命令
create:创建表
put:向表、行、列指定的单元格添加数据
list:列出HBase中所有的表信息
put:向表、行、列指定的单元格添加数据
drop:删除表
🧧八、NoSQL数据库、云数据库
1、NoSQL的含义
2、了解NoSQL数据库兴起的原因
关系数据库已经无法满足Web2.0的需求
(1)无法满足海量数据的管理需求
(2)无法满足数据高并发的需求
(3)无法满足高可扩展性和高可用性的需求
3、NoSQL数据库的四大类型
4、CAP理论
C(Consistency):一致性,是指任何一个读操作总是能够读到之前完成的写操作的结果,也就是在分布式环境中,多点的数据是一致的,或者说,所有节点在同一时间具有相同的数据。
A:(Availability):可用性,是指快速获取数据,可以在确定的时间内返回操作结果,保证每个请求不管成功或者失败都有响应。
P(Tolerance of Network Partition):分区容忍性,是指当出现网络分区的情况时(即系统中的一部分节点无法和其他节点进行通信),分离的系统也能够正常运行,也就是说,系统中任意信息的丢失或失败不会影响系统的继续运作。
CAP指出,一个分布式系统不可能同时能满足一致性(Consistency)、可用性(Availability)和分区容错性(Partion Tolerance)这3个要求,最多同时满足其中2个。
5、BASE
BASE的基本含义是基本可用(Basically Availble)、软状态(Soft-state)和最终一致性(Eventual consistency)
6、强一致性、弱一致性,最终一致性是什么意思
强一致性:强一致性系统会在所有副本都完全相同后才返回,系统在未达到一致时是不能访问的,强一致性能保证所有的访问结果是一致的。
弱一致性:弱一致性系统中的数据更新后,后续对数据的读取操作得到的不一定是更新后的值。
最终一致性:最终一致性允许系统在实现一致性前有一个不一致的窗口期,窗口期完成后系统最终能保证一致性。
7、知道云数据库是什么,和传统数据库、NoSQL、NewSQL的关系
概念:云数据库是部署和虚拟化在云计算环境中的数据库。它极大地增强了数据库的存储能力,消除了人员、硬件、软件的重复配置,让软、硬件升级变得更加容易。云数据库具有高可扩展性、高可用性、采用多租形式和支持资源有效分发等特点。
关系:
🎛️九、Hive
1、什么是Hive?
Hive是建立在Hadoop上的数据仓库基础构架。它提供了一系列的工具,可以用来进行数据提取转化加载(ETL),是一个可以提供有效、合理、直观组织和使用数据的模型。
2、了解Hive的工作原理:转换为MapReduce
当用户向Hive输入一段命令或查询时,Hive需要与Hadoop交互工作来完成该操作。首先,驱动模块接收该命令或查询。接着,对该命令或查询进行解析编译。然后,由优化器对该命令或查询进行优化计算。最后该命令或查询通过执行器进行执行。执行器通常的任务是启动一个或多个MapReduce任务,有时也不需要启动MapReduce任务,像执行包含*的操作(如select * from 表)时。
3、Hive定义的类SQL语言,是什么,可以做什么
Hive定义了简单的类SQL查询语言,称为QL,它允许熟悉SQL的用户查询数据。用户可以通过编写的HiveQL语句运行MapReduce任务。
4、Hive不需要搭建在Hbase上,Hadoop中其他组件的关系
🎧十、流计算及Storm
1、流计算的概念
实时获取来自不同数据源的海量数据,经过实时分析处理,获得有价值的信息
知道流计算的基本处理流程,流计算的处理流程一般包含三个阶段:
数据实时采集
数据实时计算
实时查询服务
2、了解流计算的典型应用场景
流计算是针对流数据的实时计算,可以应用在多种场景中,如Web服务、机器翻译、广告投放、自然语言处理、气候模拟预测等。流计算适合于需要处理持续到达的流数据、对数据处理有较高实时性要求的场景。
应用场景1: 实时分析
应用场景2: 实时交通
3、Storm是典型的流计算系统
Twitter Storm是一个免费、开源的分布式实时计算系统,Storm对于实时计算的意义类似于Hadoop对于批处理的意义,Storm可以简单、高效、可靠地处理流数据,并支持多种编程语言。
Storm框架可以方便地与数据库系统进行整合,从而开发出强大的实时计算系统
Twitter是全球访问量最大的社交网站之一,Twitter开发Storm流处理框架是为了应对其不断增长的流数据实时处理需求。
版权归原作者 小羊不会飞 所有, 如有侵权,请联系我们删除。