后端技术面试 38 讲
李智慧
同程艺龙交通首席架构师,前 Intel& 阿里架构师,《大型网站技术架构》作者
37373 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 46 讲
不定期加餐 (1讲)
后端技术面试 38 讲
15
15
1.0x
00:00/00:00
登录|注册

31 | 大数据架构:大数据技术架构的思想和原理是什么?

SQL中的join操作
Flink架构原理
Spark Streaming
实时流计算
Spark DAG
RDD编程模型
使用内存进行中间计算数据存储
Hive架构
SQL转换成MapReduce
MapReduce1的角色
MapReduce程序示例
map和reduce过程
核心思想
数据块复制
NameNode和DataNode
存储挑战
大数据的本质
分布式技术的创新性应用
思考题
大数据流计算架构
快速大数据计算Spark架构
大数据仓库Hive架构
大数据计算MapReduce架构
分布式文件存储HDFS架构
思想和原理
大数据架构

该思维导图由 AI 生成,仅供参考

我在开篇词讲到,任何新技术都不是凭空产生的,都是在既有技术的基础之上,进行了一些创新性的组合扩展,应用到一些合适的场景之中,然后爆发出来巨大的生产力。后面几篇我要讲的大数据技术,区块链技术都是如此。
大数据技术其实是分布式技术在数据处理领域的创新性应用,本质和我们此前讲到的分布式技术思路一脉相承:用更多的计算机组成一个集群,提供更多的计算资源,从而满足更大的计算压力要求。
前面我们讨论的各种分布式缓存、负载均衡、分布式存储等都是讲如何在高并发的访问压力下,利用更多的计算机满足用户的请求访问压力。而大数据技术讨论的是,如何利用更多的计算机满足大规模的数据计算要求。
大数据就是将各种数据统一收集起来进行计算,发掘其中的价值。这些数据,既包括数据库的数据,也包括日志数据,还包括专门采集的用户行为数据;既包括企业内部自己产生的数据,也包括从第三方采购的数据,还包括使用网络爬虫获取的各种互联网公开数据。
面对如此庞大的数据,如何存储,如何利用大规模的服务器集群处理计算大量的数据,就是大数据技术的核心关键。

分布式文件存储 HDFS 架构

大规模数据计算首先要解决的是大规模数据的存储问题。如何将数百 T,数百 P 的数据存储起来,通过一个文件系统统一管理,这本身就是一个极大的挑战。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

大数据架构是利用分布式技术处理大规模数据的创新应用。该架构包括HDFS、MapReduce和Hive等核心技术,用于解决大规模数据存储、计算和分析的问题。与传统的MapReduce相比,Spark架构利用内存进行中间计算数据存储,大大提升了计算性能,同时采用RDD编程模型简化了复杂计算的编程难度。此外,文章还介绍了大数据流计算架构,包括Spark Streaming和Flink,用于实时处理海量数据。总的来说,大数据技术是分布式技术的一个分支,通过分布式服务器集群解决大量计算压力,而大数据技术则需要处理具有关联性的数据,因此需要中心服务器进行管理。最后,文章提出了一个思考题,探讨了在SQL生成MapReduce计算时,如何设计map和reduce函数来处理join操作。整体而言,本文介绍了大数据架构的核心技术和发展趋势,为读者提供了对大数据处理技术的全面了解。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《后端技术面试 38 讲》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(10)

  • 最新
  • 精选
  • 黄海峰
    shuffle把相同key发送给同一个reduce,那岂不是还是要传输大量数据?还是实际是把相同key放到相同hdfs文件reduce进程读取?

    作者回复: 确实要传输很大量数据。 shuffle不通过HDFS,即使通过HDFS,也解决不了数据传输的问题。

    2020-02-03
    2
  • Winon
    老师说的集群有标准吗?譬如,由两台相同功能组成的服务器提供服务,算集群吗?

    作者回复: 算

    2020-07-28
    2
  • image
    Flink引擎是基于record,还是和spark streaming minibatch有较大区别的。
    2020-03-21
    8
  • escray
    大数据技术首先要有大数据,其次要有大规模的数据计算要求。 没有接触过大数据相关的项目,但是基本的概念还是有的。曾经在体制内工作过一段时间,很多项目也跟风大数据、云计算、人工智能……区块链也不能阻止他们。 不过在我看来,其实很多大数据项目压根就没有“大数据”,却寄希望于从一堆没有意义的数据中,找到“啤酒和尿布”;另一方面,文中说“大数据技术主要是为了满足大规模数据计算要求”,你能想象以前用纸质文件保存的数据,一上来就要“数据挖掘”么? 其实,在没有一个好的量化标准的情况下,大数据技术的投入产出比是没法计算的。相对于互联网大厂,有数据、有需求、有指标,一般的项目可以从简单架构开始,等到计算能力出现瓶颈在考虑大数据技术。
    2020-10-17
    6
  • 不要挑战自己的智商
    spark会在data node做更多的内存运算,很多reduce的过程在data node里面就完成了,以word count 为例,对于每个word出现的次数,在每个data node里面就先分别计算好了。最后在把各个data node里面的结果相加就是了。对吧? spark会优化和从新排列用户指令,来达到更更效率的运算。这点好像一些sql引擎也在做? hadoop 是把reduce完全放在shuffle之后,这样在shuffle的过程中,需要通过网络移动更多数据。
    2020-08-03
    2
  • 不记年
    交作业~ map程序: page_view行数据 -> (userid , pageid + "," + "") user行数据 -> (userid, "" + ", " +age) reduce程序: (userid, [pageid + "," + "", "" + ", " +age]) -> (pageid , age)
    2020-02-24
    2
  • 非洲黑猴子
    MapReduce 程序可以自定义 Partitioner, 决定哪些相同的 key 去到哪些 Reducer. 这里使用自定义的分区器, 分别处理两张表的 userid, 对两张表的这个字段分别计算分区, 这样两张表中相同的 userid 的数据便会在同一个 Reducer 中相遇. 接下来的Reduce计算就方便了
    2023-06-10归属地:美国
    1
  • 非洲黑猴子
    MapReduce 程序可以自定义 Partitioner, 决定哪些相同的 key 去到哪些 Reducer. 这里使用自定义的分区器, 分别处理两张表的 userid, 对两张表的这个字段分别计算分区, 这样两张表中相同的 userid 的数据便会在同一个 Reducer 中相遇. 接下来的Reduce计算就方便了
    2023-06-10归属地:美国
  • 特立独行的猪
    hive,map reduce,spark 的关系能讲得再细一些吗?flink能多讲一些就更好了
    2021-02-28
  • 好好先生
    买下一门课!!!加油!!
    2020-03-29
收起评论
显示
设置
留言
10
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部