组件原理
Hive
Hive引擎把客户提交的SQL类作业,转译成MR作业,在Yarn的资源调度下,访问HDFS数据,对外呈现就像是一个SQL数据库,组件架构如图1所示。
- Hive使用Yarn作为资源调度系统,支持按照比例、绝对值等多种资源配置方式,支持按照物理节点隔离资源。
- 支持节点线性扩展,对硬件要求低。
- 支持TXT、Sequence、ORC、Parquet多种文件或数据格式,支持数据压缩和数据加密。
Spark
SparkSQL引擎把客户提交的SQL类作业,转译成Spark作业,在Yarn的资源调度下,访问HDFS数据,对外呈现就像是一个SQL数据库,组件架构如图2所示。
Spark和MapReduce都是Hadoop中最基础的分布式计算框架,主要用来设计非SQL类的批处理作业,如复杂挖掘和机器学习。区别在于Spark主要依赖内存迭代,MapReduce则依赖HDFS存储中间结果数据。
Spark相比MapReduce的特点:
- 内存迭代速度快,比MR快5~10倍。
- 内置函数和算法多,支持MLlib、Mahout等多种数据挖掘和统计分析算法库。
- 硬件要求高,对内存容量要求大。
父主题: 离线分析