# THU201606X 高级大数据系统（学堂在线）知识点归纳

> 作者：zning（https://ning.ae） · 发布：2017/01/10 18:59 下午 (UTC+8) · 原文：https://zning.me/14840459812890.html

> 摘自本课课程学习与习题，以备后用

## 5 In-memory Processing

### 5.3 Use Spark for data mining

1.  _下列哪些模式可以运行Spark？_

	_Local, Standalone, Mesos, YARN, - 正确_
	
	Spark允许支持以上四种模式的运行：
	1. Local(本地单机模式)：本地单机模式下，所有的Spark进程均运行于同一个JVM中，并行处理则通过多线程来实现。在默认情况下，单机模式启动与本地系统的CPU核心数目相同的线程。如果要设置并行的级别，则以local[N]的格式来指定一个master变量，N表示要使用的线程数目。
	2.  Standalone(集群单机模式)：Spark集群由两类程序构成：一个驱动程序和多个执行程序。本地模式时所有的处理都运行在同一个JVM内，在集群模式时通常运行在多个不同的节点上。 
	3. Mesos：Ｍesos是一个开源集群计算框架。其目标是在不同的framework之间高效的共享硬件资源，同时简化自身的调度逻辑，使其具有尽可能大的兼容性和可扩展性，以保证在大规模集群使用环境下的健壮性和对各种可能的运算框架的普遍适用性。
	4.  YARN：即基于Hadoop２，与Hadoop关联形成集群计算和资源调度框架。

1.  _以下针对RDD的操作中，属于Transformation的操作有哪些？_

	_map(), filter(), union(), - 正确_
	
	常见的RDD的Transformation操作如下：
	1. map()：参数是函数，函数应用于RDD每一个元素，返回值是新的RDD 
	2. flatMap()：参数是函数，函数应用于RDD每一个元素，将元素数据进行拆分，变成迭代器，返回值是新的RDD 
	3. filter()：参数是函数，函数会过滤掉不符合条件的元素，返回值是新的RDD
	4.  distinct()：没有参数，将RDD里的元素进行去重操作
	5.  union()：参数是RDD，生成包含两个RDD所有元素的新RDD
	6.  intersection()：参数是RDD，求出两个RDD的共同元素
	7.  subtract()：参数是RDD，将原RDD里和参数RDD里相同的元素去掉
	8.  cartesian()：参数是RDD，求两个RDD的笛卡儿积

1.  _以下针对RDD的操作中，属于Action的操作有哪些？_

	_collect(), reduce(), save(), - 正确_
	
	1. collect()：返回RDD所有元素
	2.  count()：RDD里元素个数
	3.  countByValue()：各元素在RDD中出现次数
	4.  reduce()：并行整合所有RDD数据，例如求和操作
	5.  fold(0)(func)：和reduce功能一样，不过fold带有初始值
	6.  aggregate(0)(seqOp,combop)：和reduce功能一样，但是返回的RDD数据类型和原RDD不一样
	7.  foreach(func)：对RDD每个元素都是使用特定函数

### 5.4 Spark data processing

1.  _在Spark的运行架构中，一个Job包含多个Task(被送到executor上的工作单元)组成的并向计算，往往由Transformation产生：错误_

	Job是指包含多个Task组成的并行计算，往往由Action操作产生
	
2.  _在Spark的任务处理中，Master节点充当哪些角色_

	_任务和资源调度, 节点管理, RDD graph, - 正确_
	
	master是spark主节点，负责任务和资源调度、节点管理，类似于Yarn ResourceManager，而worker是spark工作节点，可以在上面启动Executor进程，类似于Yarn的NodeManager。可见Execute进程是由worker节点执行的

3.  _Spark运行任务过程中的Stage是由下列哪个过程产生的？DAGScheduler_ 
	
	Spark的任务调度有四个阶段： 
	1. RDD Object(创建DAG，即创建RDD的无环图)；
	2. DAGScheduler(将图分解为任务的层级，即Stage)； 
	3. TaskSchedule(通过集群的任务管理来调度任务)； 
	4. Worker（执行任务）； 

	可见Stage是在DAGScheduler过程中产生的。

### 5.5 Experiment in Spark

1.   _题目包含多个选项，但学生只能选择一个答案。汽泡纸的出现和应用使得许多领域都能够采用单选题进行研究。好的单选题会包含干扰项，即迷惑学生的错误选项。正确_

	iPod发行版允许消费者随身携带他们完整的音乐库，格式也不依赖于脆弱和能源密集型的旋转圆盘。

## 6 Streaming Data Processing

### 6.1 Introduction to streaming data processing

1. 哪些应用需要用到streaming data processing？

	社交媒体, Web data, 入侵检测数据, - 正确
	
2. 哪些是流式数据处理的特征？

	秒级延迟, 输入是流式数据源, 整合了batch和interactive操作, - 正确

### 6.2 Storm

1. Storm中的Bolt既可以处理收到的Tuples，也可以创建新的Tuples流。

	正确

2. 哪些是 Apache Storm 提供的默认系统管道(system pipelines)？

	AlertPipeline, ErrorSearchPipeline, GraphiteWriterPipeline, MonitorMetricPipeline, SelfTestPipeline, - 正确 

### 6.3 Spark streaming

1.  _Data Pipeline 允许超级用户部署、启动、停止以及编辑预定义的系统管道。正确_

2.  _如果nodes失效，那么storm和spark streaming在处理数据时都会丢失状态信息。错误_

	storm：状态信息保存在nodes中； spark streaming：状态信息保存在RDD中，如果nodes失效，也不会丢失信息。

## 7 NoSQL
### 7.1 NoSQL introduction
### 7.2 Common Advantages
### 7.3 Bigtable
### 7.4 Master Startup
### 7.5 HBase

## 8 Graph Processing
### 8.1 What is GraphDB and Graph data processing
### 8.2 Graph systems
### 8.3 Example of a GraphDB

## 9 Machine Learning System
### 9.1 Mahout
### 9.2 Case Study: Recommendation
### 9.3 Recommendation in Mahout
