diff --git a/ch18_后端架构选型、离线及实时计算/第十八章_后端架构选型、离线及实时计算.md b/ch18_后端架构选型、离线及实时计算/第十八章_后端架构选型、离线及实时计算.md index ae4d52e..f5dbeed 100644 --- a/ch18_后端架构选型、离线及实时计算/第十八章_后端架构选型、离线及实时计算.md +++ b/ch18_后端架构选型、离线及实时计算/第十八章_后端架构选型、离线及实时计算.md @@ -78,8 +78,8 @@ - 算法库:包含广义线性模型、推荐系统、聚类、决策树和评估的算法 - 实用程序:包括测试数据的生成、外部数据的读入等功能 -架构图 ![架构图](./img/18-2-4-1.png) +
架构图
  MLlib目前支持4种常见的机器学习问题: 分类、回归、聚类和协同过滤,MLlib在Spark整个生态系统中的位置如图下图所示。 @@ -111,11 +111,11 @@ Ray框架优点   架构设计一方面减少了跨节点的RPC开销,另一方面也能规避中心节点的瓶颈问题。当然缺点也不是没有,由于缺乏全局的任务视图,无法进行全局规划,因此任务的拓扑逻辑结构也就未必是最优的了。 -架构图 ![架构图](./img/18-2-5-1.png) +
架构图
-任务调度图 ![任务调度图](./img/18-2-5-2.png) +
任务调度图
  Ray架构现状: - API层以上 的部分还比较薄弱,Core模块核心逻辑估需要时间打磨。 @@ -135,13 +135,13 @@ Ray框架优点 - 能集成Spark的批处理和交互查询。 - 为实现复杂的算法提供和批处理类似的简单接口。 -Spark Streaming架构图 ![Spark Streaming架构图](./img/18-2-6-1.png) +
Spark Streaming架构图
  Spark Streaming把实时输入数据流以时间片Δt (如1秒)为单位切分成块。Spark Streaming会把每块数据作为一个RDD,并使用RDD操作处理每一小块数据。每个块都会生成一个Spark Job处理,最终结果也返回多块。 -Spark Streaming基本原理图 ![Spark Streaming基本原理图](./img/18-2-6-2.png) +
Spark Streaming基本原理图
  正如Spark Streaming最初的目标一样,它通过丰富的API和基于内存的高速计算引擎让用户可以结合流式处理,批处理和交互查询等应用。因此Spark Streaming适合一些需要历史数据和实时数据结合分析的应用场合。当然,对于实时性要求不是特别高的应用也能完全胜任。另外通过RDD的数据重用机制可以得到更高效的容错处理。 @@ -221,8 +221,8 @@ server1:4,server2:4,server3:4,server4:4 python train.py   Petastorm是一个由 Uber ATG 开发的开源数据访问库。这个库可以直接基于数 TB Parquet 格式的数据集进行单机或分布式训练和深度学习模型评估。Petastorm 支持基于 Python 的机器学习框架,如 Tensorflow、Pytorch 和 PySpark,也可以直接用在 Python 代码中。 -深度学习集群 ![深度学习集群](./img/18-2-9-1.png) +
深度学习集群
  即使是在现代硬件上训练深度模型也很耗时,而且在很多情况下,很有必要在多台机器上分配训练负载。典型的深度学习集群需要执行以下几个步骤: - 一台或多台机器读取集中式或本地数据集。 @@ -234,10 +234,12 @@ server1:4,server2:4,server3:4,server4:4 python train.py   将多个数据源组合到单个表格结构中,从而生成数据集。可以多次使用相同的数据集进行模型训练和评估。 ![深度学习集群](./img/18-2-9-2.png) +
深度学习集群
  为分布式训练进行分片 在分布式训练环境中,每个进程通常负责训练数据的一个子集。一个进程的数据子集与其他进程的数据子集正交。Petastorm 支持将数据集的读时分片转换为正交的样本集。 ![Petastorm 将数据集的非重叠子集提供给参与分布式训练的不同机器](./img/18-2-9-3.png) +
Petastorm 将数据集的非重叠子集提供给参与分布式训练的不同机器
  本地缓存 Petastorm 支持在本地存储中缓存数据。当网络连接速度较慢或带宽很昂贵时,这会派上用场。 @@ -252,11 +254,11 @@ Github地址:https://github.com/uber/petastorm   满足的应用场景: 为了利用TensorFlow在现有的Spark和Hadoop集群上进行深度学习。而不需要为深度学习设置单独的集群。 -架构图 ![架构图](./img/18-2-10-1.png) +
架构图
-运行流程图 -![架构图](./img/18-2-10-2.png) +![运行流程图](./img/18-2-10-2.png) +
运行流程图
  优点: - 轻松迁移所有现有的TensorFlow程序,<10行代码更改;