1.大数据概述
1.列举Hadoop生态的各个组件及其功能、以及各个组件之间的相互关系,以图呈现并加以文字描述。
-
HDFS(hadoop分布式文件系统)
是hadoop体系中数据存储管理的基础。他是一个高度容错的系统,能检测和应对硬件故障。 -
mapreduce(分布式计算框架)
是一种计算模型,用于处理大数据量的计算。其中map对应数据集上的独立元素进行指定的操作,生成键-值对形式中间,reduce则对中间结果中相同的键的所有值进行规约,以得到最终结果。 -
hive(基于hadoop的数据仓库)
定于了一种类似sql的查询语言(hql)将sql转化为mapreduce任务在hadoop上执行。 -
hbase(分布式列存数据库)
是一个针对结构化数据的可伸缩,高可靠,高性能,分布式和面向列的动态模式数据库。 -
zookeeper(分布式协作服务)
解决分布式环境下的数据管理问题:统一命名,状态同步,集群管理,配置同步等。 -
sqoop(数据同步工具)
主要用于传统数据库和hadoop之间传输数据。 -
pig(基于hadoop的数据流系统)
将脚本转换为mapreduce任务在hadoop上执行。 -
mahout(数据挖掘算法库)
主要目标是创建一些可扩展的机器学习领域经典算法的实现。 -
flume(日志收集工具)
将数据从产生,传输,处理并写入目标的路径的过程抽象为数据流。
2. 对比Hadoop与Spark的优缺点。
Spark,是分布式计算平台,是一个用scala语言编写的计算框架,基于内存的快速、通用、可扩展的大数据分析引擎。Hadoop,是分布式管理、存储、计算的生态系统。
Spark 是在借鉴了 MapReduce 之上发展而来的,继承了其分布式并行计算的优点并改进了 MapReduce 明显的缺陷。
Spark 把中间数据放到内存中,迭代运算效率高。MapReduce 中计算结果需要保存到磁盘上,这样势必会影响整体速度。
Spark 容错性高。Spark 引进了弹性分布式数据集 RDD,它是分布在一组节点中的只读对象集合,这些集合是弹性的,如果数据集一部分丢失可以对它们进行重建。
Spark 更加通用。mapreduce 只提供了 Map 和 Reduce 两种操作,Spark 提供的数据集操作类型有很多。
3. 如何实现Hadoop与Spark的统一部署?
Spark可运行于YARN之上,与Hadoop进行统一部署,即“Spark on YARN”,资源管理和调度依赖YARN,分布式存储则依赖HDFS。