支持工作负载分布的架构
在具有多个内核的单个服务器上,作业并行运行,假设工作负载可以分成更小的部分并在多个线程上执行。
在像 Hadoop 这样的分布式平台上,您可能会编写在一个节点上本地运行的脚本,例如集群中的边缘节点,但将执行转移到工作节点以完成更大的作业。当在 Spark over Hadoop 分布式文件系统 (HDFS) 等分布式平台上执行时,revoscalepy 和 RevoScaleR 都会自动使用集群中所有节点上的所有可用内核。
分布式和并行处理是 revo 管理的,其中引擎将作业分配给可用的计算资源(集群中的节点,或多核机器上的线程),从而成为该作业的逻辑主节点。主节点负责以下操作:
- 将计算分配给自身和其他计算资源
- 收集独立并行计算的结果
- 完成并返回结果
要将执行转移到集群中的工作节点,您必须将计算上下文设置为平台。例如,您可以使用边缘节点上的本地计算上下文来准备数据或设置变量,然后将上下文转移到 RxSpark 或 RxHadoopMR 以在工作节点上运行数据分析。
转移到 Spark 或 HadoopMR 计算上下文会附带该平台支持的数据源列表。假设 Spark 或 Hadoop 计算上下文支持您要分析的数据输入,您的分布式分析脚本可以包含本文中提到的任何函数。有关按计算上下文列出的受支持数据源的列表,请参阅机器学习服务器中脚本执行的计算上下文。
备注
分布式计算在概念上类似于并行计算,但在机器学习服务器中,它特指跨多个物理服务器的工作负载分布。分布式平台提供了以下用于管理整个操作的基础设施:用于分配作业的作业调度程序、用于运行作业的数据节点以及用于跟踪工作和协调结果的主节点。实际上,您可以将分布式计算视为机器学习服务器为 Hadoop 和 Spark提供的一种能力。
多线程数据操作的函数
导入、合并和步进转换在并行架构上是多线程的。
RevoScaleR (R) | revoscalepy (Python) |
---|---|
接收导入 | rx-导入 |
RxDataStep | 接收数据步骤 |
接收合并 | 无法使用 |
分布式分析函数
以下分析函数并行执行,结果统一为返回对象中的单个响应:
RevoScaleR (R) | revoscalepy (Python) |
---|---|
rx总结 | rx-摘要 |
rxLinMod | rx-lin-mod |
rxLogit | rx-logit |
rxGlm | 无法使用 |
rxCovCor | 无法使用 |
rxCube | 无法使用 |
rxCrossTabs | 无法使用 |
rxKmeans | 无法使用 |
rxDTree | rx-dtree |
rxD森林 | rx-dforest |
rxB树 | rx-btrees |
rxNaiveBayes | 无法使用 |