堆、栈、队列
堆是指程序在运行时,申请的内存,动态内存。
而栈是堆的一种使用方法(先进后出),也被称之为堆栈一种线性表:线性表指在一个数据结构有n个相同特性的数据元素。除去第一个和最后一个外首尾相接的有限序列(适合大部分线性表)。
队列也是一种特殊的线性表。不同于栈所服从的先进后出的原则,队列的原则是先进先出。
队列在队头做删除操作,在队尾做插入操作。
hadoop三种调度器
FIFO Scheduler(先进先出调度程序)不需要配置。如果为两个app调度资源,第一个app占用资源过大。第二个就需要等待第一个的完成。不适合共享集群
Capacity Scheduler(计算能力调度器)。用于一个集群中运行有多个Application的情况。目标是高吞吐量和集群利用率·为了防止一个job占过多的资源,调度器会对同一用户提交的job任务所占资源进行限制。
公平调度器(Fair Scheduler)。支持多个队列,每个队列可以配置一定的资源,每个队列中的job任务公平共享其所在队列的所有资源。
官网可看配置文档
http://hadoop.apache.org/docs/r2.7.2/hadoop-yarn/hadoop-yarn-site/CapacityScheduler.html
http://hadoop.apache.org/docs/r2.7.2/hadoop-yarn/hadoop-yarn-site/FairScheduler.html
上图是spark的生态系统,Shark是spark的类sql流语句。sparkStreaming是spark的流式分布式计算框架。Graphx是spark的图计算库MLBase是spark的机器学习库。
spark克服了MapReduce在迭代式计算和交互式计算方面的不足,引入RDD(Resilient Distributed Datasets)数据表示模型。RDD是一个有容错机制,可以被并行操作的数据集合,能够被缓存到内存或磁盘上。