从0开始学大数据
李智慧
同程艺龙交通首席架构师,前Intel大数据架构师,《大型网站技术架构》作者
立即订阅
14333 人已学习
课程目录
已完结 46 讲
0/4登录后,你可以任选4讲全文学习。
开篇词 (1讲)
开篇词 | 为什么说每个软件工程师都应该懂大数据技术?
免费
预习模块 (3讲)
预习 01 | 大数据技术发展史:大数据的前世今生
预习 02 | 大数据应用发展史:从搜索引擎到人工智能
预习 03 | 大数据应用领域:数据驱动一切
模块一 Hadoop大数据原理与架构 (7讲)
04 | 移动计算比移动数据更划算
05 | 从RAID看垂直伸缩到水平伸缩的演化
06 | 新技术层出不穷,HDFS依然是存储的王者
07 | 为什么说MapReduce既是编程模型又是计算框架?
08 | MapReduce如何让数据完成一次旅行?
09 | 为什么我们管Yarn叫作资源调度框架?
10 | 模块答疑:我们能从Hadoop学到什么?
模块二 大数据生态体系主要产品原理与架构 (7讲)
11 | Hive是如何让MapReduce实现SQL操作的?
12 | 我们并没有觉得MapReduce速度慢,直到Spark出现
13 | 同样的本质,为何Spark可以更高效?
14 | BigTable的开源实现:HBase
15 | 流式计算的代表:Storm、Flink、Spark Streaming
16 | ZooKeeper是如何保证数据一致性的?
17 | 模块答疑:这么多技术,到底都能用在什么场景里?
模块三 大数据开发实践 (8讲)
18 | 如何自己开发一个大数据SQL引擎?
19 | Spark的性能优化案例分析(上)
20 | Spark的性能优化案例分析(下)
21 | 从阿里内部产品看海量数据处理系统的设计(上):Doris的立项
22 | 从阿里内部产品看海量数据处理系统的设计(下):架构与创新
23 | 大数据基准测试可以带来什么好处?
24 | 从大数据性能测试工具Dew看如何快速开发大数据系统
25 | 模块答疑:我能从大厂的大数据开发实践中学到什么?
模块四 大数据平台与系统集成 (6讲)
26 | 互联网产品 + 大数据产品 = 大数据平台
27 | 大数据从哪里来?
28 | 知名大厂如何搭建大数据平台?
29 | 盘点可供中小企业参考的商业大数据平台
30 | 当大数据遇上物联网
31 | 模块答疑:为什么大数据平台至关重要?
模块五 大数据分析与运营 (5讲)
32 | 互联网运营数据指标与可视化监控
33 | 一个电商网站订单下降的数据分析案例
34 | A/B测试与灰度发布必知必会
35 | 如何利用大数据成为“增长黑客”?
36 | 模块答疑:为什么说数据驱动运营?
模块六 大数据算法 (6讲)
37 | 如何对数据进行分类和预测?
38 | 如何发掘数据之间的关系?
39 | 如何预测用户的喜好?
40 | 机器学习的数学原理是什么?
41 | 从感知机到神经网络算法
42 | 模块答疑:软件工程师如何进入人工智能领域?
智慧写给你的寄语 (1讲)
所有的不确定都是机会——智慧写给你的新年寄语
结束语 (2讲)
结束语 | 未来的你,有无限可能
第2季回归丨大数据之后,让我们回归后端
从0开始学大数据
登录|注册

24 | 从大数据性能测试工具Dew看如何快速开发大数据系统

李智慧 2018-12-22
我们在Spark 性能优化案例分析这一期中,通过对大量的 Spark 服务器的性能数据进行可视化分析,发现了 Spark 在程序代码和运行环境中的各种性能问题,并做了相应优化,使 Spark 运行效率得到了极大提升。
很多同学也在问,这些可视化的性能数据从何而来呢?如何在图中将性能指标和任务进度结合起来,可以一目了然看清应用在不同运行阶段的资源使用状况呢?事实上,当时为了进行 Spark 性能优化,我和团队小伙伴们开发了一个专门的大数据性能测试工具Dew

Dew 设计与开发

Dew 自身也是一个分布式的大数据系统,部署在整个 Hadoop 大数据集群的所有服务器上。它可以实时采集服务器上的性能数据和作业日志,收集起来以后解析这些日志数据,将作业运行时间和采集性能指标的时间在同一个坐标系绘制出来,就得到上面的可视化性能图表。Dew 的部署模型如下。
从图中看,Dew 的核心进程有两种,一种是 Dew Master 进程 Herse,另一种是管理集群中每台服务器的 Dew Agent 进程 DewDrop,Dew Agent 监控整个 Hadoop 集群的每台服务器。Herse 独立部署一台服务器,而 DewDrop 则和 HDFS 的 DataNode、Yarn 的 NodeManager 部署在大数据集群的其他所有服务器上,也就是每台服务器都同时运行 DataNode、NodeManager、DewDrop 进程。
取消
完成
0/1000字
划线
笔记
复制
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
该试读文章来自付费专栏《从0开始学大数据》,如需阅读全部文章,
请订阅文章所属专栏。
立即订阅
登录 后留言

精选留言(16)

  • 吴科🍀
    spark在1.6后,使用netty完全代替akka了。主要还是看业务场景吧

    作者回复: spark放弃akka,主要原因是当时akka不稳定,akka还是要持续改进呀。

    2018-12-24
    6
  • 老男孩
    使用akka实现传统的web应用功能用户注册,是否可以这样实现。首先通信方式是异步的,用户发起注册请求后,服务端收到请求后直接回复:已经受理了您的注册请求,稍后会将激活码下发邮箱或者手机。同时用户注册的actor就会把任务分解发给它的下一级actor处理,发给用户服务actor新增用户,发给积分兑换服务actor为新用户赠送注册积分和礼券。然后调用通知actor给用户的邮箱或者手机发送注册成功信息以及激活码等。感觉类似rabbitmq的消息队列也可以实现akka的异步和分布式通信。
    2018-12-26
    3
  • 足迹
    老师,面对这么多的技术,实际应用时时怎么选型的?比如流处理到底是用spark streaming还是storm或是flink?面对离线处理同样有不同的技术可选。你技术选型的主要依据是什么?有什么“套路”可套吗?谢谢!
    2018-12-23
    3
  • 冷锋
    相形见绌,拼音是xiāngxíngjiànchù

    作者回复: 谢谢指正

    2018-12-22
    3
  • 星辰
    谢谢老师,平安夜快乐,圣诞节🎄快乐!
    2018-12-24
    2
  • 星辰
    我根据自己理解的回复一下,老师可以看着答复一下哈:(/:抠鼻)

    1.Akka天生支持分布式(配置远程Ptops)、天生支持高并发(Actor之间使用MailBox队列实现、无需锁等待…)

    2.瞄了一眼GearPumps,感觉好厉害,四个节点,每秒可以处理1千8百万个长度为100byte的消息,仅有8ms延迟。那它们这个数据,貌似没说网络、机器配置是什么哇~

    可能说的不对……

    作者回复: 是的

    2018-12-24
    2
  • 纯洁的憎恶
    计算机产业变化太快了,我上学的时候还是过程化编程、模块化编程、面向对象的演进路线,这才没几年,已经又演化出新模式了——响应编程模式。
    2018-12-22
    2
  • 孔祥阳
    关于响应式有个小问题,如果 A通知 和 B通知同事修改一个数据怎么办?就像现实开发企业应用中,A领导拍了这个需求,B领导又出来指点一番,代码上是如何鉴定数据的理想性呢?

    作者回复: A和B如果同时修改一个数据,应该将修改消息发送给C,由C修改,而C的修改操作是串行的,即使A和B的消息同时发送给C,C也是一个消息一个消息轮流处理,不会出现并发同步问题。
    更多细节请参考Akka文档。

    2019-03-19
  • 周飞
    Akka的异步消息跟node.js有异曲同工之妙啊
    2019-01-18
  • Geek_89bbab
    老师,在你的回答中
    作为actor的b如果因为代码异常挂了,重启后会继续处理消息。如果是机器挂了,就没有了。

    机器挂了该怎么处理,是系统架构要考虑的。
    ———-
    A,b两个actor处于不同的进程中,a向b发信息,现在邮箱有未处理完的消息,b由于一些原因挂掉,重启为什么还可以继续处理邮箱的消息呢?难道消息持久化到文件中了吗?

    作者回复: 我说的是进程内actor因为代码执行异常挂了,重启是restart actor,不是重启进程。如果是进程挂了,等同于机器挂了,

    2019-01-06
  • Geek_89bbab
    老师,像akka中两个actor进行通信,它们在不同的进程中,如果actorA把消息发送到actorB的邮箱,B挂掉了。B的邮箱中还存在未处理的消息,重启后还可以重新处理吗?还是邮箱的存在内存中的,无法恢复?那如果B服务挂了,没有来得及处理A发送过去的消息,这该怎么办?

    作者回复: 作为actor的b如果因为代码异常挂了,重启后会继续处理消息。如果是机器挂了,就没有了。

    机器挂了该怎么处理,是系统架构要考虑的。

    2019-01-04
  • 白鸽
    web复杂请求(响应时间较长,10秒以上),服务器只做请求合法验证,只要验证通过,就返回请求正在处理提示,用户不用等待,想干啥干啥。等请求处理完后,服务器返回请求完成提示弹窗,用户点击查看即可。这种在web请求中很少见,很多就是显示进度条,是不合理吗?
    2018-12-28
  • 吴科🍀
    spark在1.6后,使用netty完全代替akka了。主要还是看业务场景吧
    2018-12-24
  • WolvesLeader
    老师请教一个问题 rdd.flatMap(x => x.split(" "))
    x.split(" ") 返回的是一个array[string]数组,但是rdd.flatMap需要的参数类型是TraversableOnce,为什么就不抱错误呢?是不是有隐式转换,我找了好久也没找到在哪里做的转换,谢谢啦
    2018-12-23
  • Riordon
    老师,Dew子项目sparklogparser中Matcher是否支持spark 1.6.x和2.x呢?看项目创建比较早期。

    作者回复: 应该是不支持了,不过解析策略应该还是有效,跑一下,如果log解析异常,改一下相关代码就可以。

    2018-12-22
  • Riordon
    老师,Dew子项目sparklogparser,Matcher中匹配的spark版本是否支持1.6.x和2.x呢?
    2018-12-22
收起评论
16
返回
顶部