分布式实时计算框架原理及实践案例
  • 推荐0
  • 收藏7
  • 浏览1.7K

分布式实时计算框架原理及实践案例

王成光 (作者) 

  • 书  号:978-7-121-29620-8
  • 出版日期:2016-08-31
  • 页  数:292
  • 开  本:16(170*240)
  • 出版状态:上市销售
  • 维护人:孙学瑛
“授人以鱼不如授人以渔”,本书是作者以如此初心写成的,主要参考当前主流分布式实时计算框架Storm的任务分发和Spark Streaming的Mini-Batch设计思想,以及底层实现技术,开源了作者自研的轻量级分布式实时计算框架——Light_drtc,并且重点介绍设计思想和相关实现技术(Kafka/RabbitMQ、Redis/SSDB 、GuavaCache、MongoDB、HBase、ES/SolrCloud、Thrift、Avro、Jetty),最后从工程角度向大家介绍完整的个性化推荐系统,并实例介绍Light_drtc在用户画像实时更新的应用。本书描述浅显易懂,希望读者理解分布式实时计算的实现原理,并快速上手解决实际问题。
用计算将数据和流量变成财富、真正发挥数据资产的巨大价值。
开源作者自研轻量级分布式实时计算服务框架——light_drtc,简单易用,快速实现自定义的实时计算平台,快速实现企业所需计算实时性要求比较高的业务逻辑
学通本书,做大数据时代的“心灵捕手”!
“授人以鱼不如授人以渔。”——语出《淮南子·说林训》,道理很简单,鱼是目的,钓鱼是手段,一条鱼能解一时之饥,却不能解长久之饥,如果想永远有鱼吃,那就要学会钓鱼的方法。
随着时代发展,互联网,尤其是移动互联网的全民普及趋势,任何一个行业的相关产品都会有很多表示用户兴趣点的行为数据,像用户的浏览、收藏、分享、购买、评论、点赞和搜索等行为由此构建出海量用户行为数据。如何快速有效地使用上述大数据,挖掘出用户对产品的兴趣点,实时更新用户画像,进而向用户推荐其当前最感兴趣的产品及广告,是目前众企业所普遍关心的问题,也是大数据的价值所在。
大数据是时代产物,除了BAT、网易、搜狐、新浪、京东等一线互联网企业需要相关处理,国内更多中小企业或者传统行业的巨无霸也都需要大数据处理技术。一线互联网企业由于自己本身就做互联网业务拥有人才优势,处理大数据相对简单。但中小企业及传统行业巨无霸在面对自己日积月累的大数据时困难重重,主要是本身没有处理能力,也没有相关硬件设施支持。
目前大数据处理技术,以开源界大名鼎鼎的Hadoop、Spark、Storm 及后起之秀Flink 为代表,当然国内一线互联网企业像BAT 也都有各自独特的处理技术,但由于国内大环境所致,商业公司在运作时首先考虑的是商业及保密措施,使得国内开源界在分布式处理方面相对薄弱,基本上是空白战场。
目前看来,Hadoop 比较适合用于离线数据处理,Spark 及Storm 的实时处理技术正好弥补了Hadoop 实时处理的欠缺。虽然Hadoop、Spark 及Storm 都在快速发展,但国内真正深入理解这三者的人毕竟凤毛麟角,而且Hadoop 集群本身动辄就需要上百台服务器的集群,这对中小企业来说基本上是不可能的,而且中小企业也很少能够拥有精通Hadoop、Spark 及Storm 的资深技术人员,这就导致绝大部分中小企业的大数据处理基本上处于停滞状态,它们眼睁睁地看着大量数据产生,而无法进行相应处理。即使众中小企业花费巨资招聘了Storm、Spark Streaming开发人员,由于自身平台的限制,开发者基本上只是简单地调用其封装好的API,很难从源码跟踪到问题根源,也就造成生产环境下有很多问题难以解决。
时代在变,技术也在变,没有任何一项技术会解决所有问题,对企业及个人开发而言,适合自己的才是最好的。Hadoop3.x 以后将会调整方案架构,将MapReduce 基于内存+IO+磁盘,共同处理数据,这点和当前的Spark 很像;Storm1.0也打破了之前一直存在的诟病:Nimbus 单点问题,实现了HA,这点和阿里推出的JStorm 很像,而JStorm 本身也是源自Storm;最近Twitter 又推出Heron,兼容Storm。Storm 也提供了类似Spark Streaming 的微批处理方式——trident(以一组tuple 为单位)。上述开源项目之间都在互相学习对方优点,取其精华为己所用。鉴于上述原因,本书作者经过多年的深入思考,结合自己硕士毕业8 年多的一线互联网开发经验,根据Hadoop 的Map/Reduce 及当前主流实时计算框架Storm的任务分发和Spark Streaming 的Mini-Batch 处理思想,利用时下比较流行的MQ、RPC、NoSQL 等,独力研发了一套轻量级分布式实时计算服务框架——light_drtc。其最大特点就是简单易用,它可以帮助开发者快速实现自定义的实时计算平台,其设计目的是为了降低当前大数据时代的分布式实时计算入门门槛,方便初、中级读者上手,快速实现企业所需计算实时性要求比较高的业务逻辑。它本身既可以作为独立的分布式实时计算平台,也可以以嵌入式方式,作为其他项目的基础类库存在。
Light_drtc 目前以Java8 为基础设计和实现,框架主要包括三部分:实时数据集服务(CollectNode,简称CN)、资源协调及任务管理服务(AdminNode,简称AN)和任务计算服务(JobNode,简称JN)。这套框架扩展灵活,各个相关组件可以自由扩展(目前框架已整合Kafka 和RabbitMQ,物理分布上可以将CN 和AN 整合在一起),集群节点所完成计算所需要的开发语言不仅限于Java,也可以
用时下流行的各种开发语言。
对中小企业而言,利用light_drtc 搭建分布式实时计算平台,不需要庞大的服务器集群规模,完全可以根据自己业务需要。例如抽取9 台服务器:其中3 台服务器同时兼做CN 和AN,6 台服务器做JN,每个AN 独立管理2 个JN,即可搭建自己的高可用分布式实时计算集群。在light_drtc 框架中,每个AN 都有自己独立管理的JN,且每个AN 至少独立管理1 个JN。框架使用比较方便,尤其是如果开发者也选用Kafka 或RabbitMQ,对于CN 和AN 而言,仅需要开发者自定义MQ 相关配置及实现框架所定义的流数据解析接口,将实现类传递给框架AN 节点启动类即可。对于JN,则需要开发者按照自己业务需求自行实现,框架中有丰富的实例可供参考。
本书偏重工程架构方面,主要内容除了作者自研的light_drtc 详细介绍,还会以作者多年一线互联网开发经验角度,陆续向读者介绍当前主流MQ、NoSQL、全文检索Elasticsearch/Solr,及常用微服务架构技术实现RPC 和Web Service 的多种框架,最后介绍整个新闻个性化推荐系统的各个组成部分,对核心模块用户画像实时更新做了详细设计,并对比Storm、Spark Streaming 和light-drtc 不同实现方式。作者希望读者通过阅读本书,让您对分布式实时计算系统的设计原理及相关实现技术有更加清晰的理解,也希望让众多中小企业可以快速组建自己的分布式实时计算平台,也同时为国内分布式处理技术贡献一点自己的力量。最后给读者朋友分享一下个人多年学习的一点心得:万丈高楼平地起,任何
一项别人看似游刃有余的技能都是经过时间打磨后的熟能生巧,希望读者朋友们经过自己的奋斗都可以实现人生目标,达到人生顶峰。
王成光
2016/8/5

目录

目录 阅读
第1章 分布式实时计算框架介绍
第2章 light_drtc 简介及使用说明
第3章 light_drtc核心技术实现
第4章 消息队列MQ
第5章 内存数据库Redis3.0 及SSDB
第6章 NoSQL:MongoDB3.0 和HBase1.0
第7章 全文检索:ElasticSearch2.x
第8章 微服务架构通信——RPC 和Web Service
第9章 综合实例:新闻推荐中的用户画像近实时更新

读者评论

电子书版本

  • Epub

图书类别

相关图书

ATT&CK框架实践指南

过去,入侵检测能力的度量是个公认的行业难题,各个企业得安全负责人每年在入侵防护上都投入大量费用,但几乎没有人能回答CEO 的问题:“买了这么多产品,我们的入侵防...

¥148.00

架构解密:从分布式到微服务(第2版)

吴治辉 (作者)

微服务、云原生、Kubernetes、Service Mesh是分布式领域的热点技术,它们并不是凭空出现的,一定继承了某些“前辈”的优点。我们不仅要了解这些技术...

 

深入理解Apache Dubbo与实战

诣极 林琳 (作者)

本书首先介绍Dubbo的简史、后续的规划和整体架构大图;接着介绍Dubbo环境配置,并基于Dubbo开发第一款应用程序;然后介绍Dubbo内置的常用注册中心的实...

¥79.00

RabbitMQ实战指南

朱忠华 (作者)

本书从消息中间件的概念和RabbitMQ的历史切入,主要阐述RabbitMQ的安装、使用、配置、管理、运维、原理、扩展等方面的细节。本书大致可以分为基础篇、进阶...

¥79.00

Spring Boot 2精髓:从构建小系统到架构分布式大系统

李家智 (作者)

Spring Boot是目前Spring技术体系中炙手可热的框架之一,既可用于构建业务复杂的企业应用系统,也可以开发高性能和高吞吐量的互联网应用。Spring ...

¥79.00

架构探险:从零开始写分布式服务框架

李业兵 李业兵 (作者)

分布式服务框架目前已经是互联网公司实现SOA服务化架构的必备基础设施,对于一般的开发而言,自己要独立实现一个分布式服务框架,还是有相当的难度的。本书围绕如何从零...