基于hadoop的推荐系统论文-基于hadoop的图书推荐系统
hbase来源于哪篇博文?
BigTable。为解决海量数据存储的问题,Google的软件开发工程师研发了Bigtable,并于2005年4月投入使用。Google在2006年的OSDI大会上发表了关于Bigtable分布式数据库的论文。
HBase是Apache下Hadoop的存储系统,是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统。HBase在Hadoop之上提供了Bigtable的功能,HBase已经成为Apache开源项目的一个顶级项目。
HBase是一种NoSQL数据库。它依靠HDFS存储底层数据,依赖MapReduce提供强大的计算能力。
大数据Spark技术是否可以替代Hadoop?
总结为以下四点,可以参考。
1、Hadoop底层使用MapReduce计算架构,只有map和reduce两种操作,表达能力比较欠缺,而且在MR过程中会重复的读写hdfs,造成大量的磁盘io读写操作,所以适合高时延环境下批处理计算的应用;
2、Spark是基于内存的分布式计算架构,提供更加丰富的数据集操作类型,主要分成转化操作和行动操作,包括map、reduce、filter、flatmap、groupbykey、reducebykey、union和join等,数据分析更加快速,所以适合低时延环境下计算的应用;
3、spark与hadoop最大的区别在于迭代式计算模型。基于mapreduce框架的Hadoop主要分为map和reduce两个阶段,两个阶段完了就结束了,所以在一个job里面能做的处理很有限;spark计算模型是基于内存的迭代式计算模型,可以分为n个阶段,根据用户编写的RDD算子和程序,在处理完一个阶段后可以继续往下处理很多个阶段,而不只是两个阶段。所以spark相较于mapreduce,计算模型更加灵活,可以提供更强大的功能。
4、但是spark也有劣势,由于spark基于内存进行计算,虽然开发容易,但是真正面对大数据的时候,在没有进行调优的轻局昂下,可能会出现各种各样的问题,比如OOM内存溢出等情况,导致spark程序可能无法运行起来,而mapreduce虽然运行缓慢,但是至少可以慢慢运行完。
回答这个问题之前,首先要搞明白spark和Hadoop各自的定义以及用途,搞明白这个之后这个问题的答案也就出来了。
首先Apache Spark 是专为大规模数据处理而设计的快速通用的计算引擎。
Hadoop是一个由Apache基金***开发的分布式系统基础架构。
Spark是一个计算引擎,主要用来做数据计算用。其核心模块包括Spark Core,Spark Streaming(流式计算),MLlib(集群学习),GraphX(图计算模块)。
Hadoop主要包括HDFS(分布式存储)、MapReduce(并行计算引擎)、Yarn(***调度)。
由此看来,Spark≈MapReduce,同时Spark相比于MapReduce有着更方便的函数处理,在计算速度,开发效率上更有着无法比拟的优势。Spark也支持外部的内存管理组件(Alluxio等),不排除未来Spark也提供分布式文件存储,目前来看没戏。其现在的发展目标主要集中在机器学习这块,已经提供了一体化的机器学习平台。这一点Flink还差点事。目前在国内更多的应用场景是Spark+Hadoop,即使用Spark来做数据计算,用Hadoop的HDFS来做分布式文件存储,用Yarn来做***调度。
Spark技术从之前和当前的技术路线上看不是为了替代Hadoop,更多的是作为Hadoop生态圈(广义的Hadoop)中的重要一员来存在和发展的。
首先我们知道Hadoop(狭义的Hadoop)有几个重点技术HDFS、MR(MapReduce), YARN。
这几个技术分别对应分布式文件系统(负责存储), 分布式计算框架(负责计算), 分布式***调度框架(负责***调度)。
我们再来看Spark的技术体系 ,主要分为以下:
- Spark Core :提供核心框架和通用API接口等,如RDD等基础数据结构;
- Spark SQL : 提供结构化数据处理的能力, 分布式的类SQL查询引擎;
- Streaming: 提供流式数据处理能力;
- MLLib: 提供分布式机器学习常用的算法包;
- GraphX : 提供图计算能力
从上面Spark的生态系统看,Spark主要是提供各种数据计算能力的(官方称之为全栈计算框架),本身并不过多涉足存储层和调度层(尽管它自身提供了一个调度器),它的设计是兼容流行的存储层和调度层。也就是说, Spark的存储层不仅可以对接Hadoop HDFS,也可以对接Amazon S2; 调度层不仅可以对接Hadoop YARN也可以对接(Apache Mesos)。
因此,我们可以说Spark更多的是补充Hadoop MR单一批处理计算能力, 而不是完全替代Hadoop的。
【关注ABC(A:人工智能;B:BigData; C: CloudComputing)技术的攻城狮,Age:10+】
[免责声明]本文来源于网络,不代表本站立场,如转载内容涉及版权等问题,请联系邮箱:83115484@qq.com,我们会予以删除相关文章,保证您的权利。转载请注明出处:http://www.jpele.com/post/9561.html发布于 昨天