10 | 模块答疑:我们能从Hadoop学到什么?
李智慧
该思维导图由 AI 生成,仅供参考
你好,我是李智慧。专栏的模块一已经更新完毕,按照计划,今天是我们答疑的时间。首先要感谢订阅专栏的同学给我留言,每条留言我都看过了,有些留言对我的启发也很大,希望同学们可以多多跟我互动。我在每个模块都设置了一个答疑的主题,想跟你聊聊我在学习这个模块时的心得体会。另外,我也会贴出一些同学的疑问,跟你聊聊我的想法。
今天的主题是:我们能从 Hadoop 学到什么?
最近几年,我跟很多创业者交流,发现创业最艰难的地方,莫过于创业项目难以实现商业价值。很多时候技术实现了、产品做好了,然后千辛万苦做运营,各种补贴、各种宣传,但是用户就是不买账,活跃差、留存低。
很多时候,我们不是不够努力,可是如果方向错了,再多努力似乎也没有用。阿里有句话说的是“方向对了,路就不怕远”,雷军也说过“不要用你战术上的勤奋,掩盖你战略上的懒惰”。这两句话都是说,要找好方向、找准机会,不要为了努力而努力,要为了目标和价值而努力。而王兴则更加直言不讳:“很多人为了放弃思考,什么事情都干得出来”。
说了那么多,我们再回过来看看 Hadoop 的成长历程。从 2004 年 Google 发表论文,到 2008 年 Hadoop 成为 Apache 的开源项目,历时 4 年。当时世界上那么多搜索引擎公司似乎都对这件事熟视无睹,Yahoo、百度、搜狐(是的,搜狐曾经是一家搜索引擎公司),都任由这个机会流失。只有 Doug Cutting 把握住机会,做出了 Hadoop,开创了大数据行业,甚至引领了一个时代。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
本文介绍了大数据领域的重要架构模式和学习方法。首先,文章强调了识别和把握机会的重要性,以Hadoop的成功经历为例。集中管理、分布存储与计算在大数据领域中扮演着关键角色。此外,作者提到了5-20-2法则,这一学习方法有助于更快地掌握技术。结合业务场景和大数据,发现新的业务增长点也是技术人员面临的挑战。文章还涉及了一些实际问题,如实时计算结果输出方式、HDFS的数据读写速度等。作者对淘宝架构进行了简要描述,从请求发起到返回的整个过程,涉及了域名解析、CDN服务器、负载均衡、反向代理服务器、应用服务器和微服务等环节。最后,作者分享了一些留言,展示了其他同学的思考,鼓励读者进行深入讨论。整体而言,本文强调了在学习技术时要有开阔的视野,结合业务场景,以及灵活运用学习方法等重要观点。
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《从 0 开始学大数据》,新⼈⾸单¥68
《从 0 开始学大数据》,新⼈⾸单¥68
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(42)
- 最新
- 精选
- 带你去旅行置顶蜗牛,您好,那是一段spark代码,你可以尝试把每一步的结果打印出来,就能明白每一个算子的用途了。2018-11-2012
- 风之翼我认为,学习一个新的东西,首先要弄清楚三件事:这是什么东西(干什么的)?为什么需要它(怎么来的)?它是如何运作的? 随着互联网信息产业的发展,网络上时刻产生的数据以及沉淀的历史数据量规模呈爆炸式增长,而计算机硬件诸如CPU、内存等性能的增长速度远远跟不上数据的增长速度,因此传统的单机处理程序已经无法满足数据的处理需求。分布式处理系统应运而生,这是大数据系统的前身。 大数据系统主要处理大规模(一般指PB级别的数据量)的动态和存量数据,通过大量数据的读取和分析,能够从中找出人们从未关注到的甚至没有想到的 事物之间的关联关系,并以此为人们日常生活以及各种生产活动提供必需的决策支持。 对于大数据系统的运作原理,我想从一个设计者的角度来思考: 要清晰的知道,不论大数据系统功能多么强大,性能多么NB,体系如何庞杂,它本质上依然和传统软件的运作模型是一样的:I-P-O,没错,就是输入-计算-输出。以MapReduce为例,输入就是各taskStracker在本地各自读取数据分片;而计算过程有2大的步骤:1是map进程阶段将原始数据进行初步合并计算,并将得出的结果发给reduce进程,我把这个过程称为预处理,预处理后的数据量会降低到网络可以承受的地步;2是reduce收到map传来的预处理数据,并进行最终合并计算;输出部分:reduce进程将最终计算的结果保存到HDFS(本地数据块),并由HDFS将所有reduce保存的数据块合并成一个HDFS文件。你看,这个过程是不是就是一个IPO过程?只不过每个具体过程的执行者以及数量发生了改变。 OK,弄清楚了基本运作模型,接下来就是考虑:针对大规模数据分散存储(先不考虑实时数据哈)在大量服务器上的数据存储背景,如何设计一款软件,能够高效读取、处理这些数据,并有效输出呢? 首先是数据读写。现在大家都清楚,在数据规模达到PB级别的情况下,如果使用集中读取,集中处理的方式,单机的硬件和网络根本承载不了。所以最好的办法就是让数据所在的服务器自行读取本地数据并进行计算,然后将每个服务器计算结果汇总后在写入本地,当然所有服务器写入本地的数据最终又会汇总成为一个可以被识别的输出文件。那么如何让每台服务都知道自己应该读哪个数据,输出时又该如何写入呢,写入之后又如何能够合并成一个可以识别的输出文件呢?分布式文件系统就是一个很好的解决方案。(这就是HDFS的由来) 其次是数据计算。前面说过,我们要让数据所在的服务器自行读取文件在本地的数据块,并进行计算。首先是本地读取完数据块后,执行的初步计算并得出结果;然而问题来了,在所有本地服务计算完成后,他们的计算结果中一般都存在维度重叠的问题(即服务器1计算结果中有A B C三个维度统计数据,而服务器2中有A C D E4个维度的数据,此时不能直接将各服务器的结果写入输出文件),因此还必须将这些计算结果进一步合并,以保证每个维度的key是唯一的。因此计算过程应该有两部分任务组成:一是本地服务器计算统计后得出初步结果(也叫中间数据);二是对这些中间数据进行最终合并计算。Hadoop的大部分计算框架基本都是这两部走的,只是具体执行方式不太一样罢了(比如spark会把中间数据放在内存中而不是HDFS从而提高运行速度等) 嘿嘿,弄清楚了设计原理,大家在回去看看李老师的课程,比如HDFS,MapReduce之类的,是不是感觉容易理解多了呢 本人今年刚转大数据,李老师的课是我学习的第一门大数据课程,刚到第十章,今后每隔几章我都会写一篇心得和大家分享,也请老师多多指教哈
作者回复: 👍🏻
2019-01-08352 - 李二木老师好。感谢你提供的方法论,我想谈下我学大数据失败心得,hadoop我也断断续续看过几次文档,写过wordCount,但是就是没有进步,我总结了下原因是我在工作中没有应用到hadoop,没有实际场景体会,体会不到它的价值。学spark也是这样,这里就有个问题想请问老师,向我这样在工作没用到大数据可以在什么地方找些实际案列学习提高呢,后期也想转型搞找大数据。谢谢!
作者回复: 坚持看完专栏,也许会有收获。
2018-11-2032 - 老男孩老师,我还有一个问题。有点不好意思问……大数据的学习是否还要学习掌握一些高深的算法?您也说了hadoop只是一个工具,具体的业务场景是不是还要用对应的算法模型去挖掘出有价值的数据?我的一个同事昨天略带藐视语气对我说,只有研究生学历的才能研究大数据。数学不行的,还是老老实实写你的业务代码。想到自己是学渣,尽无言以对,当场懵逼了。
作者回复: 并不是,后面专栏会讲算法。有可能你跟我一样,数学不好,是因为不明白数学有什么用,学了算法,明白了用途,说不定数学也好了。
2018-11-20220 - 小毛老师,看完第8和第9章之后有些疑惑,第8章中说MapReduce计算框架有JobTracker和TaskTracker来管理和调度资源,JobTracker本身是个主控者,会管理和调度TaskTracker。而第9章的Yarn又是一个资源调度框架。请问这两者是怎么结合的?
作者回复: Yarn就是替代JobTracker和TaskTracker的,用了Yarn就不需要这两个常驻进程了。
2019-12-1012 - 黑山老妖请问老师,前置了一台 Nginx 服务器,做前置处理。主要是做什么用?
作者回复: 限流,URL转换,安全校验,反向代理。。。
2020-06-175 - 长期规划老师,我是做Python后端开发的,我发现很多开源服务比如zookeeper,Hadoop等等都用Java写的,用Py写的比较少,我现在技术到了一个瓶颈期,想学一些有深度的开源服务,Py的一些库已经看过了。请老师支招,难道必须学Java吗
作者回复: 大数据技术一方面是系统和平台,Hadoop、Spark这些,都是Java开发的;另一方面的是算法和应用,各种机器学习框架和算法库,很多python的,你可以关注这些。
2019-08-2725 - 纯洁的憎恶大数据架构中大量出现了一主多从的形式,这似乎与去中心化、自底向上的自组织体系还有较大距离。这会是大数据的潜力所在么?还是说万事万物都不能绝对,无论去中心化还是中心化,都要达到某种平衡,才能有效运转?
作者回复: 去中心,自组织的成本会更高;中心可靠高效的情况下,有中心效率更高。参考区块链,也可以参考现实世界。
2018-11-205 - hua168看到hadoop我就想起了openstack,现在云计算公司那么多,还有必要学openstack吗?看到HDFS我就想起了对象存储,现在开源的对象存储有哪些呀?可以用在生产环境的…最后想到学习大数据是不是要学一门编程语言?我看很多大数据的教程都是用Java,python用于爬虫,机器学习,AI方面比较多。有一小部分人说java会慢慢被淘汰,建议不要学,未来几十年应该不会被淘汰吧?
作者回复: 要学编程,你思考很多,很好,但是还是要自己动手,再能真正明白。
2018-11-2034 - hua168想不到大神是这么负责的人,不仅告诉我们技术,更重要是告诉我们思想!每条留言都认真看,佩服! 看完了hadoop给我最大提示是:使用就是硬道理,机会来了你站在风口上,成功了!
作者回复: 加油
2018-11-204
收起评论