《斯Parker大数量处理:技术、应用与天性优化》【PDF】

内容简介

客户端

因为涉及到不一致程序语言的题材,所以当前暗中认可扶助http做客方式。

  1. 添加延时音信添加事业有成现在回到消费唯一ID POST /push {…..新闻体}
  2. 删去延时新闻 必要传递新闻ID GET /delete?id=
  3. 回复延时音讯 GET /reStore?expire=true|false
    expire是不是苏醒已过期未执行的音讯。
  4. 过来单个延时信息 需求传递新闻ID GET /reStore/id
  5. 获得音信 要求长连接 GET /get/topic

用nginx揭穿服务,配置为轮询 在抬高延缓音信的时候就足以流量平均分配。

时下系统中型地铁户端并不曾利用HTTP长连接的点子来消费新闻,而是采纳MQ的主意来开支数量那样客户端就可以不用关爱延迟新闻队列。只须求在发送MQ的时候拦截一下
如若是延迟音信就用延迟新闻系统处理。

与HDFS等储存层包容

有关高可用

分布式协调只怕采用zookeeper吧。

倘诺有多个实例最多而且只好有3个实例工作
这样就防止了分布式竞争锁带来的弊端,当然若是事情要求七个实例同时工作也是支撑的,也正是二个新闻最三只能有一个实例处理,能够选拔zookeeper或者redis就能完成分布式锁了。

末尾做了一下测试多实例同时运维,只怕因为会涉及到锁的标题性质有所下落,反而单机效果很好。所以相比推荐基于docker的主备布署格局。

斯Parker已经在大地限量内广泛使用,无论是AMD、Yahoo!、推特(TWTR.US)、Alibaba、百度、腾讯等国际互连网巨头,依然有的尚处在成遥远的小商店,都在运用斯Parker。本书小编结合本人在微细软IBM实践Spark的阅历和阅历,编写了这本书。站着初学者的角度,不仅系统、周全地上课了斯Parker的各项职能及其应用办法,而且较深切地钻探了斯Parker的行事机制、运营原理以及BDAS生态系统中的别的技术,同时还有1些可供操作的案例,能让从未经验的读者十分的快理解斯Parker。更为首要的是,本书还对Spark的习性优化举办了研商。

队列设计

近来能够设想动用rabbitmq来满意急需
可是不打算选择,因为方今太多的工作使用了别的的MQ中间件。

支付前须求思量的标题?

  • 旋即性 消费端能限期收到
  • 同暂且间音讯的费用权重
  • 可信赖性 音信无法冒出未有被消费掉的动静
  • 可复原 倘若有别的情形 导致音信系统不可用了 至少能保险数据能够过来
  • 可撤回 因为是延迟新闻 没有到实践时间的新闻辅助能够撤消消费
  • 高可用 多实例 这里指HA/主备格局并不是多实例同时壹只坐班
  • 消费端怎样消费

    本来开头选择redis作为数据缓存的最主因是因为redis自身协理zset的数据结构(score
    延迟时间微秒)
    那样就少了排序的烦心而且品质还很高,正好我们的急需就是按时间维度去看清执行的顺序
    同时也援助map list数据结构。

粗略定义三个音讯数据结构

 
private String topic;/***topic**/
private String id;/***自动生成 全局惟一 snowflake**/
private String bizKey;
private long delay;/***延时毫秒数**/
private int priority;//优先级
private long ttl;/**消费端消费的ttl**/
private String body;/***消息体**/
private long createTime=System.currentTimeMillis();
private int status= Status.WaitPut.ordinal();

运营原理:

  1. Map来储存元数据。id作为key,整个音讯结构系列化(json/…)之后作为value,放入元音信池中。
  2. id放入个中(有N个)2个zset有体系表中,以createTime+delay+priority作为score。修改意况为正值延迟中
  3. 使用timer实时监察和控制zset有类别表中top 10的数据 。
    假设数量score<=当前岁月皮秒就取出来,根据topic再一次放入三个新的可消费列表(list)中,在zset中剔除已经取出来的多寡,并修改意况为待消费
  4. 客户端获取数据只须要从可消费队列中获得就足以了。并且状态必须为待消费
    运维时刻必要<=当前岁月的 要是不满足重新放入zset列表中,修改景况为正值延迟。固然满意修改意况为已费用。也许直接删除元数据。

前 言
第1章 Spark简介
1
1.1 Spark是什么
1
1.2 斯Parker生态系统BDAS
4
1.3 Spark架构
6
一.4 斯Parker分布式架构与单机多核架构的异同
9
1.5 Spark的铺面级应用
10
1.伍.1 Spark在亚马逊中的应用
11
1.5.2 Spark在Yahoo!的应用
15
壹.5.3 斯Parker在西班牙王国邮电通讯的应用
17
一.伍.4 斯Parker在Taobao的接纳
18
一.6 本章小结
20
第二章 Spark集群的安装与布署
21
二.一 斯Parker的设置与布局
21
二.1.一 在Linux集群上设置与布置斯Parker
21
2.一.二 在Windows上安装与配置斯Parker
30
2.二 斯Parker集群初试
33
二.三 本章小结
35
第2章 斯Parker总括模型
36
三.一 斯Parker程序模型
36
3.二 弹性分布式数据集
37
3.2.1 RDD简介
38
三.二.二 奥迪Q⑤DD与分布式共享内部存款和储蓄器的异议
38
三.二.三 斯Parker的数额存款和储蓄
39
叁.三 斯Parker算子分类及效果
41
3.3.1 Value型Transformation算子
42
3.3.2 Key-Value型Transformation算子
49
3.3.3 Actions算子
53
三.肆 本章小结
59
第六章 斯Parker工作体制详解
60
四.1 斯Parker应用执行机制
60
四.壹.一 斯Parker执行机制总览
60
4.壹.二 斯Parker应用的定义
62
四.一.三 应用提交与履行办法
63
4.二 Spark调度与职务分配模块
65
四.二.一 斯Parker应用程序之间的调度
66
四.二.二 斯Parker应用程序内Job的调度
67
四.二.3 Stage和TaskSetManager调度方式
72
4.2.4 Task调度
74
4.3 Spark
I/O机制 77
4.3.1 序列化
77
4.3.2 压缩
78
4.3.3 Spark块管理
80
4.四 斯Parker通讯模块
93
四.四.一 通讯框架AKKA
94
四.肆.二 Client、Master和Worker间的通信
95
四.5 容错机制
104
4.5.1 Lineage机制
104
4.5.2 Checkpoint机制
108
4.6 Shuffle机制
110
四.七 本章小结
119
第四章 Spark开发环境安插及流程
120
五.1 斯Parker应用开发条件安插
120
5.1.1 使用Intellij开发Spark程序
120
5.1.2 使用Eclipse开发Spark程序
125
5.1.3 使用SBT构建Spark程序
129
5.1.4 使用Spark
Shell开发运作斯Parker程序 130
5.二 远程调节和测试Spark程序
130
5.3 Spark编译
132
5.四 配置Spark源码阅读环境
135
5.5 本章小结
135
第四章 斯Parker编制程序实战
136
6.1 WordCount
136
6.2 Top
K 138
6.3 中位数
140
陆.四 倒排索引
141
6.5 CountOnce
143
陆.陆 倾斜连接
144
6.七 股票方向展望
146
6.八 本章小结
153
第九章 Benchmark使用详解
154
7.1 Benchmark简介
154
7.1.1 Intel
Hibench与Berkeley
BigDataBench 155
7.1.2 Hadoop
GridMix 157
7.1.3 Bigbench、BigDataBenchmark与TPC-DS
158
7.1.4 其他Benchmark
161
7.2 Benchmark的组成
162
7.2.1 数据集
162
7.二.二 工作负荷
163
柒.二.三 衡量指标
167
7.3 Benchmark的使用
168
7.3.1 使用Hibench
168
7.3.2 使用TPC-DS
170
7.3.3 使用BigDataBench
172
7.四 本章小结
176
第8章 BDAS简介
177
8.1 SQL
on Spark 177
8.1.1 使用Spark
SQL的原因 178
8.1.2 Spark
SQL架构分析 17九
8.1.3 Shark简介
182
8.1.4 Hive
on Spark 184
八.1.伍 现在展望
185
8.2 Spark
Streaming 185
8.2.1 Spark
Streaming简介 186
8.2.2 Spark
Streaming架构 188
8.2.3 Spark
Streaming原理分析 18九
8.2.4 Spark
Streaming调优 198
8.2.5 Spark
Streaming 实例 198
8.3 GraphX
205
8.3.1 GraphX简介
205
8.3.2 GraphX的使用
206
8.3.3 GraphX架构
209
8.三.四 运营实例
211
8.4 MLlib
215
8.4.1 MLlib简介
217
8.四.二 MLlib的多寡存款和储蓄
219
八.四.三 数据转换为向量(向量空间模型VSM)
222
捌.4.四 MLlib中的聚类和归类
223
捌.四.伍 算法应用实例
228
8.四.六 利用MLlib举行电影推荐
230
八.5 本章小结
237
第10章 斯Parker品质调优
238
九.一 配置参数
238
九.2 调优技术
239
玖.贰.1 调度与分区优化
240
九.2.二 内部存储器存款和储蓄优化
243
玖.贰.三 互连网传输优化
249
玖.二.④ 体系化与减弱
251
玖.二.五 别的优化措施
253
玖.3 本章小结
255

须求背景

  • 用户下订单成功以往隔20分钟给用户发送上门服务文告短信
  • 澳门美高梅手机网站,订单实现一个钟头过后文告用户对上门服务举办业评比价
  • 作业实践破产以往隔10分钟重试二次

    看似的景色比较多 简单的处理情势就是利用定时职分 假如数据比较多的时候
    有的数额恐怕推迟比较严重,而且更加多的定时业务导致义务调度很麻烦不佳管理。

社区活跃度高

扩展

支持zset队列个数可配备 幸免大数额推动高延迟的难题。

近期留存日志和redis元数据有望不平等的标题如mysql挂了,写日记不会成功。

设计图:

澳门美高梅手机网站 1

 

欢迎关切本人的微信公众号<笑笑笑技术圈>
小编会不定期公布部分不压制技术的稿子

 澳门美高梅手机网站 2

高彦杰 

音讯可复原

兑现苏醒的规律 平常处境下壹般都以记录日志,比如mysqlbinlog等。

此处大家平昔运用mysql数据库作为记录日志。

眼前打算成立以下二张表:

  1. 新闻表 字段蕴含总体新闻体
  2. 新闻流转表
    字段包含新闻ID、变更状态、变更时间、zset扫描线程Name、host/ip

定义zset扫描线程Name是为了更领悟的来看音信被分发到现实哪些zset中。前提是zset的key和监控zset的线程名称要有点关系
那里也得以是zset key。

举个栗子

假如redis服务器宕机了,重启之后察觉数目也并未有了。所以这么些复苏是很有不可或缺的,只需求从表一相当于消息表中把音信状态不等于已成本的数量总体重新分发到延迟队列中去,然后壹起一下意况就足以了。

当然恢复生机单个职务也得以这么干。

 

 

    小编简介

……

用作2个基于内部存款和储蓄器计算的大数目并行总结框架,斯Parker不仅很好地化解了数额的实时处理难题,而且保障了高容错性和高可伸缩性。具体来讲,它有如下优势:

    目录

轻量级火速处理

《斯Parker大数量处理:技术、应用与质量优化》【PDF】下载链接: 
https://u253469.pipipan.com/fs/253469-230062536

不难使用,支持多语言

《Spark大数据处理:技术、应用与个性优化》遵照新型技术版本,系统、周密、详细讲解Spark的各样机能利用、原理机制、技术细节、应用措施、品质优化,以及BDAS生态系统的连锁技术。

毕业于中夏族民共和国人民高校,就职于IBM,领会Hadoop相关技能,较早接触并应用斯Parker,对斯Parker应用开发、斯Parker系统的运转和测试比较熟知,深度阅读了斯Parker的源代码,掌握斯Parker的运营机制,擅长斯帕克的查询优化。

创建全栈多划算范式的迅猛数据流水生产线

发表评论

电子邮件地址不会被公开。 必填项已用*标注