填空题— 范围(10*2)
1.大数据概念,
2.Hadoop概念及两个配置文件:hadoop-env.sh,core-site.xml
3.HDFS概念及底层结构,
4.HBASE数据模型及原理
简答题—范围(10*4)
1.大数据,云计算,物联网的区别与联系
答://
大数据、云计算和物联网的区别。大数据侧重于对海量数据的存储、处理与分析,从海量数据中发现价值,服务于生产和生活;云计算旨在整合和优化各种IT资源,并通过网络以服务的方式廉价地提供给用户;物联网的发展目标是实现“物物相连”,应用创新是物联网发展的核心。
大数据、云计算和物联网的联系。从整体上看,大数据、云计算和物联网这三者是相辅相成的。大数据根植于云计算,大数据分析的很多技术都来自云计算,云计算的分布式数据存储和管理系统提供了海量数据的存储和管理能力,分布式并行处理框架MapReduce提供了海量数据分析能力。没有这些云计算技术作为支撑,大数据分析就无从谈起。反之,大数据为云计算提供了“用武之地”,没有大数据这个“练兵场”,云计算技术再先进,也不能发挥它的应用价值。物联网的传感器源源不断产生的大量数据,构成了大数据的重要数据来源,没有物联网的飞速发展,就不会带来数据产生方式的变革,即由人工产生阶段转向自动产生阶段,大数据时代也不会这么快就到来。同时,物联网需要借助云计算和大数据技术,实现物联网大数据的存储、分析和处理。
//
2.Hadoop生态系统
答://
1、HDFS:底层数据存储,具有处理超大数据、流式处理,可运行在廉价商用服务器上等优点。
2、HBase:一个提供高可靠性、高性能、可伸缩、实时读写、分布式的列式数据库,一般采用HDFS作为其底层数据存储。
3、MapReduce:一种编程模型,用于大规模数据集的并行运算。它允许用户在不了解分布式底层细节的情况下开发并行应用程序,并将其运行于廉价计算机集群上,完成海量数据处理。
4、Hive:一个基于Hadoop的数据仓库工具。可用于对Hadoop文件中的数据集进行数据整理、特殊查询和分析存储。
5、Pig:一种数据流语言和运行环境。适合用于使用Hadoop和MapReduce平台来查询大型半结构化数据集。
6、Mahout:提供一些可扩展的机器学习领域经典算法的实现。
7、Zookeeper:一个高效和可靠的协同工作系统,提供分布式锁之类的基本服务。
8、Flume :一个高可用的、高可靠的、分布式海量日志采集、聚合和传输的系统。
9、Sqoop(SQL-to-Hadoop):用于在Hadoop和关系数据库之间交换数据。
10、Ambari:一种基于Web的工具,Apache Hadoop集群的安装、部署、配置和管理。
//
3.MapReduce工作流程
答://
(1)MapReduce框架使用InputFormat模块做Map前的预处理(如验证输入的格式是否符合输入定义等);然后将输入文件切分为逻辑上的多个InputSplit,InputSplit是MapReduce对文件进行处理和运算的输入单位(每个InputSplit并没有对文件进行实际切割,只是记录了要处理的数据的位置和长度)。
(2) 通过RecordReader(RR)根据InputSplit中的信息处理InputSplit中的具体记录,加载数据并转换为适合Map任务读取的键值对,输入给Map任务。
(3)Map任务根据用户自定义的映射规则,输出一系列的<key,value>作为中间结果。
(4)通过对Map的输出进行一定的分区(Portition)、排序(Sort)、合并(Combine)、归并(Merge)等操作,得到<key,value-list>形式的中间结果,再交给对应的Reduce进行处理,此过程称为Shuffle。
(5)Reduce以一系列<key,value-list>中间结果作为输入,执行用户定义的逻辑,输出给OutputFormat模块。
(6)OutputFormat模块验证输出目录是否已经存在以及输出结果类型是否符合配置文件中的配置类型,如果都满足,就输出Reduce的结果到分布式文件系统。
Shuffle过程:
l Map端的Shuffle过程
(1)输入数据和执行Map任务;
(2)写入缓存;
(3)溢写(分区、排序和合并);
(4)文件归并。
l Reduce端的Shuffle过程
(1)“领取”数据;
(2)归并数据;
(3)把数据输入给Reduce任务。
//
4.spark运行架构
答://例题一:试列举Hadoop MapReduce的几个缺陷,并说明Spark具备哪些优点。
(1)Hadoop存在以下缺点:①表达能力有限;②磁盘IO开销大;③延迟高。
(2)Spark主要有如下优点:
①Spark的计算模式也属于MapReduce,但不局限于Map和Reduce操作,还提供了多种数据集操作类型,编程模型比MapReduce更灵活;
②Spark提供了内存计算,中间结果直接存放内存中,带来更高的迭代运算效率;
③Spark基于DAG的任务调度执行机制,要优于MapReduce的迭代执行机制。
//
例题二:从Hadoop+Storm架构转向Spark架构可带来哪些好处?
① 实现一键式安装和配置、线程级别的任务监控和告警;
② 降低硬件集群、软件维护、任务监控和应用开发的难度;
③ 便于做成统一的硬件、计算平台资源池。
//
例题三:Spark对RDD的操作主要分为行动和转换两种类型,两种类型操作的区别是什么?
行动:在数据集上进行运算,返回计算值。转换:基于现有的数据集创建一个新的数据集。
两者的区别主要在于,转换接受RDD并返回RDD,而行动接受RDD但返回非RDD(输出一个值或结果)。
//
例题四:试述如下Spark的几个主要概念:RDD、DAG、阶段、分区、窄依赖、宽依赖。
①RDD:是弹性分布式数据集(Resilient Distributed Dataset)的英文缩写,是分布式内存的一个抽象概念,提供了一种高度受限的共享内存模型。
②DAG:是Directed Acyclic Graph(有向无环图)的英文缩写,反映RDD之间的依赖关系。
③阶段:是作业的基本调度单位,一个作业会分为多组任务,每组任务被称为“阶段”,或者也被称为“任务集”。
④分区:一个RDD就是一个分布式对象集合,本质上是一个只读的分区记录集合,每个RDD可以分成多个分区,每个分区就是一个数据集片段。
⑤窄依赖:父RDD的一个分区只被一个子RDD的一个分区所使用就是窄依赖。
⑥宽依赖:父RDD的一个分区被一个子RDD的多个分区所使用就是宽依赖。
//
论述题—范围(10*2)
1.HDFS体系结构
2.HBASE数据模型及原理
答://
例题一:当一台Region服务器意外终止时,Master如何发现这种意外终止情况?为了恢复这台发生意外的Region服务器上的Region,Master应该做出哪些处理(包括如何使用HLog进行恢复)?
①:Zookeeper会实时监测每个Region服务器的状态,当某个Region服务器发生故障时,Zookeeper会通知Master。
②:Master首先会处理该故障Region服务器上面遗留的HLog文件,这个遗留的HLog文件中包含了来自多个Region对象的日志记录。
③:系统会根据每条日志记录所属的Region对象对HLog数据进行拆分,分别放到相应Region对象的目录下,然后,再将失效的Region重新分配到可用的Region服务器中,并把与该Region对象相关的HLog日志记录也发送给相应的Region服务器。
④:Region服务器领取到分配给自己的Region对象以及与之相关的HLog日志记录以后,会重新做一遍日志记录中的各种操作,把日志记录中的数据写入到MemStore缓存中,然后,刷新到磁盘的StoreFile文件中,完成数据恢复。
//
设计题—范围(20*1)
4‘:数据集的要求:待处理的数据集可以分解成许多小的数据集,而且每一个小数据集都可以完全并行地进行处理。
8’:用纸画出一个例子
8‘:编程代码部分