标签:数据库 Hadoop 概述 Spark 数据 hbase 分布式
一、Hadoop生态中的各个组件及功能
1.HDFS(分布式文件系统)
HDFS是Hadoop体系中数据存储管理的基础,是Hadoop抽象文件系统的一种实现。Hadoop抽象文件系统可以与本地系统、Amazon S3 等集成,甚至可以通过Web协议来操作。
2.MAPREDUCE(分布式计算框架)
MAPREDUCE是一种给计算模型,用于处理大数据量的计算。其中map对应数据集上的独立元素进行指定的操作,reduce则对中间结果中相同的键的所有制进行规约,已得到最终结果。
3.HIVE(数据仓库)
HIVE是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张表,并提供类SQL查询功能。它定义了一种类似SQL的查询语言将SQL转化为MAPREDUCE任务在Hadoop上执行。
4.HBASE(实时协作数据库)
hbase是一个针对结构化数据的可伸缩,高可靠,高性能,分布式和面向列的动态模式数据库。和传统关系型数据库不同,hbase采用了bigtable的数据模型:增强了稀疏排序映射表(key/value)。其中,键由行关键字,列关键字和时间戳构成,hbase提供了对大规模数据的随机,实时读写访问,同时,hbase中保存的数据可以使用mapreduce来处理,它将数据存储和并行计算完美结合在一起。
5.Zookeeper(分布式协作)
解决分布式环境下的数据管理问题:统一命名,状态同步,集群管理,配置同步等。
6.Sqoop(数据库ETL工具)
主要用于传统数据库和hadoop之间传输数据,数据的导入和导出本质上是mapreduce程序,充分利用了MR的并行化和容错性。
7.Pig(数据仓库)
定义了一种数据流语言-pig latin,将脚本转换为mapreduce任务在hadoop上执行,通常用于离线分析。
8.Mahout(数据挖掘库)
mahout的主要目标是创建一些可扩展的机器学习领域经典算法的实现,旨在帮助开发人员更加方便快捷地创建智能应用程序。mahout现在已经包含了聚类,分类,推荐引擎(协同过滤)和频繁集挖掘等广泛使用的数据挖掘方法。mahout还包含了数据的输入/输出工具,与其他存储系统(如数据库,mongoDB或Cassandra)集成等数据挖掘支持架构。
9.Flume(日志收集)
cloudera开源的日志收集系统,具有分布式,高可靠,高容错,易于定制和扩展的特点。他将数据从产生,传输,处理并写入目标的路径的过程抽象为数据流,在具体的数据流中,数据源支持在flume中定制数据发送方,从而支持收集各种不同协议数据。
二、对比Hadoop与Spark的优缺点
Spark确实速度很快(最多比Hadoop MapReduce快100倍)。Spark还可以执行批量处理,然而它真正擅长的是处理流工作负载、交互式查询和机器学习。
相比MapReduce基于磁盘的批量处理引擎,Spark赖以成名之处是其数据实时处理功能。Spark与Hadoop及其模块兼容。实际上,在Hadoop的项目页面上,Spark就被列为是一个模块。
Spark有自己的页面,因为虽然它可以通过YARN(另一种资源协调者)在Hadoop集群中运行,但是它也有一种独立模式。它可以作为 Hadoop模块来运行,也可以作为独立解决方案来运行。
MapReduce和Spark的主要区别在于,MapReduce使用持久存储,而Spark使用弹性分布式数据集(RDDS)。
三、如何实现Hadoop与Spark的统一部署
Spark可运行于YARN之上,与Hadoop进行统一部署,即“Spark on YARN”,资源管理和调度依赖YARN,分布式存储则依赖HDFS。
标签:数据库,Hadoop,概述,Spark,数据,hbase,分布式 来源: https://www.cnblogs.com/lzl2135/p/15946901.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。