前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Hadoop 和大数据的关系是什么?和 Spark的关系是什么?

Hadoop 和大数据的关系是什么?和 Spark的关系是什么?

作者头像
LakeShen
发布2024-02-29 15:15:19
1480
发布2024-02-29 15:15:19
举报
文章被收录于专栏:数据库和大数据技术原理解析

前言

最近在知乎上面看到这样一个问题:Hadoop 和大数据的关系?和 Spark 的关系?

刚好我个人是大数据引擎开发,所以对于 Hadoop 也算比较了解,所以今天我就来分享一下我的看法。

01、我的回答

Enjoy life

A HAPPY LIFE AFTER RAIN

先说结论,Hadoop 属于大数据技术这个领域的一个分支,它真正开启了大数据技术到工业使用的普惠时代,你现在听到的 Hadoop 这一词,一般情况是指 Hadoop 这个技术生态,它不再局限于 Hadoop 原先自身已有的技术,而是指建立在这个基础之上的其他所有相关的技术,比如 Spark、Hive、HDFS、Yarn、HBase、Zookeeper 等等。所以 Spark 你可以理解为它是 Hadoop 生态技术的一部分。

在 Hadoop 出来之前,国内真正用大数据技术的公司很少,你可能只会听到国内一堆人在那鼓吹大数据,但实际用大数据技术来解决业务问题的工业实践却很少。国外也主要是谷歌内部在用,毕竟人家全球搜索的数据量太大,也是业务趋势所需。

part1

「Hadoop 是什么?」

Hadoop 是 2006 年由道格卡丁(Doug Cutting)开源出来分布式计算平台,其前身是Apache Lucene 子项目 Nutch 的一部分。

Hadoop 框架之所以能够开源能出来,其设计思想很大程度上借鉴了谷歌三驾马车论文的思想,Hadoop MapReduce 计算框架借鉴了谷歌《MapReduce: Simplified Data Processing on Large Clusters》这篇论文,Hadoop HDFS 则是借鉴了谷歌《The Google File System》这篇论文,后面 Doug Cutting 结合这两篇论文的思想,开发出今天的 Hadoop MapReduce 计算框架 和 HDFS(Hadoop Distributed File System), 不得不说,谷歌对于大数据领域的贡献,还是真的有东西的。

Hadoop 主要包含三部分:MapReduce 分布式任务计算模型、HDFS 分布式文件系统、Yarn 资源管理框架。

MapReduce 任务框架,它把大数据计算任务分为了 Map 任务和 Reduce 任务,用户在开发大数据任务时,只需要开发 Map 任务的逻辑和 Reduce 任务逻辑即可。这种编程模型简化了开发大数据任务复杂度,不过后面随着 Hive 出来,用户直接使用 SQL 来开发 Hadoop 任务,这种开发模型几乎也没有人使用了。

HDFS 分布式文件系统,主要是将文件分为 Block 来进行存放,一个 Block 一般是 256 MB,副本存放数一般是 3,主要是为了防止文件损坏,而进行容错。HDFS 一般有两类节点:NameNode 和 DataNode,NameNode 管理文件的元数据,DataNode 则是实际数据文件的存放节点。

Yarn 则是 Hadoop 的计算资源管理框架,它既可以运行 Hadoop MapReduce 任务,也可以运行 Spark 任务,同时也可以运行 Apache Flink 任务,它是以 Container 来封装具体申请的资源,比如一个 Container 的内存为 4096 MB,CPU 为 2 Core(软隔离),一个任务申请 4 个 Container。现在企业逐渐开始使用 K8S 来管理资源,核心还是为了公司机器资源管理的统一。

part2 「Spark 是什么?」

Spark 本质是一种计算框架,其内置了 SQL、流式传输和计算、机器学习和图处理模块。它没有实际的数据存储层,所以它的数据源一般来自于外部。用户可以使用 SQL 来编写 Spark 计算任务,同时也可以使用 Java、Scala、Python 来编写 Spark 计算任务。

Spark 计算框架相对于 Hadoop MapReduce 任务最大的一个区别,就是它可以在内存中存储 Shuffle 的数据,而 Hadoop MapReduce 则需要将 Shuffle 的数据放到磁盘,由于内存和磁盘在读取和写入不是一个量级,所以 Spark 计算任务比 Hadoop MapReduce 快的非常多,一般企业现在离线作业方面,都是使用的 Spark。

最后寄语

如果我的文章对你有启发的,欢迎点赞、在看、关注我,你的鼓励,是我更新的动力。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-02-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 LakeShen 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
    • part2 「Spark 是什么?」
    相关产品与服务
    大数据
    全栈大数据产品,面向海量数据场景,帮助您 “智理无数,心中有数”!
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档