本文作者:小旺

基于hadoop的推荐系统论文-基于hadoop的图书推荐系统

小旺 昨天 3
基于hadoop的推荐系统论文-基于hadoop的图书推荐系统摘要: hbase来源于哪篇博文?大数据Spark技术是否可以替代Hadoop?hbase来源于哪篇博文?BigTable。为解决海量数据存储的问题,Google的软件开发工程师研发了Bi...
  1. hbase来源于哪篇博文?
  2. 大数据Spark技术是否可以替代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。

基于hadoop的推荐系统论文-基于hadoop的图书推荐系统

这几个技术分别对应分布式文件系统(负责存储), 分布式计算框架(负责计算), 分布式***调度框架(负责***调度)。

我们再来看Spark的技术体系 ,主要分为以下:

基于hadoop的推荐系统论文-基于hadoop的图书推荐系统

- 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发布于 昨天

阅读
分享