在集群中使用Modin#
注意
在实践中,我们经常需要超越单台机器的能力。 Modin 在本地模式和集群环境中都能很好地工作和表现。 Modin 的关键优势在于,您的 Python 代码在本地开发和集群执行之间不需要更改。 用户不需要考虑有多少工作节点存在,或者如何分发和分区他们的数据; Modin 无缝且透明地处理所有这些。
注意
可以使用Jupyter笔记本,但您需要在远程集群的头节点上部署一个Jupyter服务器并连接到它。
AWS认证的额外要求#
首先,在你的环境中安装必要的依赖项:
pip install boto3
下一步是设置您的AWS凭证。可以设置AWS_ACCESS_KEY_ID、
AWS_SECRET_ACCESS_KEY和AWS_SESSION_TOKEN(可选)
(参考AWS CLI环境变量以获取更多信息)或
只需运行以下命令:
aws configure
启动并连接到集群#
此示例启动1个主节点(m5.24xlarge)和5个工作节点(m5.24xlarge),总共576个CPU。 您可以查看Amazon EC2定价页面。
可以手动创建AWS EC2实例并进行配置,或者直接使用Ray CLI来 使用Modin的Ray集群设置配置在AWS上创建和初始化一个Ray集群, 我们将在本示例中使用此配置。 请参考Ray的自动扩展选项页面了解如何修改文件。
有关如何启动Ray集群的更多详细信息,请参阅Ray的集群文档。
要启动 Ray 集群,请在终端中运行以下命令:
ray up modin-cluster.yaml
一旦头节点完成初始化,您可以选择通过运行以下命令连接到它。
ray attach modin-cluster.yaml
要退出ssh会话并返回到本地shell会话,请输入:
exit
在集群环境中执行#
注意
使用Ray客户端连接到远程集群时要小心。 我们不推荐这种连接模式,因为它可能无法正常工作。已知的错误: - ray-project/ray#38713, - modin-project/modin#6641.
Modin 允许您通过在集群上扩展 pandas 来立即加速处理大数据的工作流程。在本教程中,我们将使用一个 12.5 GB 的 big_yellow.csv 文件,该文件是通过将一个 200MB 的 NYC 出租车数据集 文件连接 64 次创建的。准备此文件是我们 Modin 的 Ray 集群设置配置 的一部分。
如果你想使用其他数据集,你应该以相同的路径提供给每个集群节点。我们建议通过自定义Modin的Ray集群设置配置中的setup_commands部分来实现这一点。
要在远程集群中运行任何脚本,您需要将其提交给Ray。这样,脚本文件将被发送到远程集群的头节点并在那里执行。
在本教程中,我们提供了exercise_5.py脚本,该脚本从CSV文件中读取数据并执行诸如计数、分组和映射等pandas操作。结果,您将看到读取的文件大小以及整个脚本的执行时间。
您可以通过运行以下命令将此脚本提交到现有的远程集群。
ray submit modin-cluster.yaml exercise_5.py
要下载或上传文件到集群头节点,请使用ray rsync_down或ray rsync_up。
如果您想使用其他Python模块来执行自己的脚本或在执行脚本后下载结果文件,这可能会有所帮助。
# download a file from the cluster to the local machine:
ray rsync_down modin-cluster.yaml '/path/on/cluster' '/local/path'
# upload a file from the local machine to the cluster:
ray rsync_up modin-cluster.yaml '/local/path' '/path/on/cluster'
关闭集群#
现在我们已经完成了计算,我们需要使用ray down命令关闭集群。
ray down modin-cluster.yaml