分布式实时计算框架原理及实践案例.pdf
http://www.100md.com
2020年11月27日
![]() |
| 第1页 |
![]() |
| 第4页 |
![]() |
| 第15页 |
![]() |
| 第27页 |
![]() |
| 第32页 |
![]() |
| 第144页 |
参见附件(85952KB,298页)。
分布式实时计算框架原理及实践案例作者希望读者通过阅读本书,让您对分布式实时计算系统的设计原理及相关实现技术有更加清晰的理解,也希望让众多中小企业可以快速组建自己的分布式实时计算平台,也同时为国内分布式处理技术贡献一点自己的力量。

内容简介
“授人以鱼不如授人以渔”,本书是作者以此初心写成的,主要参考当前主流分布式实时计算框架Storm的任务分发和Spark Streaming的Mini-Batch设计思想,以及底层实现技术,开源了作者自研的轻量级分布式实时计算框架-Light drte,并且重点介绍设计思想和相关实现技术(Katka/RabbitMQ,Redis/SSDB,GuavaCache,MongoDB,HBase,ES/Solr、Thrift、Avro,Jetty),最后从工程角度向大家介绍完整的个性化推荐系统,并实例介绍light drtc在用户画像实时更新的应用。本书描述浅显易懂,希望读者理解分布式实时计算的实现原理,并快速上手
解决实际问题。
本书适合读者包括:高校师生及从事软件开发的中高级工程师、架构师及技术管理者等。
编辑推荐
适读人群 :本书适合读者包括:高校师生及企业中从事分布式计算的高级工程师、架构师及技术管理者等。
挖掘海量用户行为数据,如用户的浏览、收藏、分享、购买、评论、点赞和搜索等
快速有效地使用用户兴趣点大数据,挖掘出用户对产品的兴趣点,实时更新用户画像
向用户推荐其当前感兴趣的产品及广告
用计算将数据和流量变成财富、真正发挥数据资产的巨大价值。
互联网行业数据变现利器!
Spark Streaming是什么
Apache Spark是加州大学伯克利分校的AMPLabs开发的开源分布式轻量级通用计算框架。Spark是一个构建在Hadoop基础之上类似于MapReduce的分布式计算框架,其核心是弹性分布式数据集(RDD),提供了比MapReduce更丰富的模型,可以在内存中对数据集进行多次快速迭代,以支持复杂的数据挖掘算法和图形计算算法。
Spark Streaming是Spark核心API的一个扩展,可以实现高吞吐量的、具备容错机制的实时流数据的处理。其原理是将Stream数据流依据滑动时间窗口切分成一个个小的时间间隔(比如几秒)的独立数据集,即将其离散化并转换成个个数据集(RDD),然后分批处理处理这些小的RDD Spark Streaming的数据源主要有两类:外部文件系统,如HDFS,Streaming可以监控一个目录中新产生的数据,并及时处理。如果出现fail,可以通过重新读取数据来恢复,绝对不会有数据丢失;网络系统:如MQ系统(Kafka,ZeroMQ.
Flume等)。
Spark Streaming默认会在两个不同节点加载数据到内存,一个节点fail了,系统可以通过另一个节点执行数据重算。假设正在运行InputReceiver的节点fail了,则可能会丢失一部分数据。
内部核心操作
Spark支持两种操作类型:Transformation和Action,Transformation从一个已知的RDD数据集经过转换得到一个新的RDD数据集,这些Transformation操作包括map.filter,flatMap,union,join等,而且Transformation具有lazy的特性,调用这些操作并没有立刻执行对已知RDD数据集的计算操作,而只是在调用了
另一类型的Action操作后才会真正地执行。Action会真正地对RDD数据集进行操作,给Driver程序返回一个计算结果,或者不返回结果,如将计算结果数据进
行持久化,Action 操作包括reduceByKey,count,foreach,collect等。
同样Spark Streaming提供了类似Spark的两种操作类型,分别为
Transformation和Output操作,它们的操作对象是DStream,作用也和Spark类似Transformation从一个已知的DStream经过转换得到一个新的DStream,而且Spark Streaming还额外增加了一类针对Window的操作,当然它也是Transformation,但是可以更灵活地控制DStream的大小(时间间隔大小、数据元素个数),例如
window(windowLength,slidelnterval),countByWindow(windowLength,slideInterval).
reduceBy Window(func,windowLength,slideInterval)等。Spark Streaming的Output操作允许我们将DStream数据输出到一个外部的存储系统,如数据库或文件系统
等,执行Output操作类似执行Spark的Action操作,使得该操作之前lazy的Transformation操作序列能够真正地执行。
分布式实时计算框架原理及实践案例截图



您现在查看是摘要介绍页, 详见PDF附件(85952KB,298页)。





