得益于前段时间去微软亚洲总部去参观,这里还有感谢以下CSDN,我正好和那里的工作人员交流开通了这个我之前申请一致没有通过的账户,现在终于可以开始了。
相较于GEE目前微软云平台没有在线支持JavaScript的界面,而是通过在线PYTHON和R语言以及Qgis等环境自动给你配置环境,然后直接跳转到你的工作页面。
点击左侧sign in 就可以登录你的账号,因为我这里默认的Microsoft账号就是我现在用的邮箱所以我就直接通过了。
Hub 提供多种环境来自定义您的计算环境。这决定了服务器的计算能力(CPU 内核、内存、GPU)和软件环境。提供python/R/pytorch/tensorflow/QGIS
选择一个环境,然后单击启动以启动您的服务器。当您的服务器上线时,您会看到一个进度条和一些日志。一旦准备就绪,您将被重定向到 Jupyterlab。
停止你的服务器
在集线器上完成会话后,请确保停止服务器以释放消耗的资源。从 Jupyterlab UI 中,选择文件 > 集线器控制面板。这将在https://pccompute.westeurope.cloudapp.azure.com/compute/hub/home 上打开一个新选项卡,可让您管理服务器。
选择停止我的服务器以停止您的服务器并释放您消耗的所有资源。
这里选择HUB control panel 选择停止我的服务器,云平台会自动停止似乎空闲的服务器。
使用 JupyterLab
该JupyterLab用户指南详细介绍了JupyterLab用户界面。Hub 环境包括一些常见的扩展。
- Dask Labextension:来自 jupyterlab 的 Dask 诊断。有关更多信息,请参阅使用 Dask 扩展(仅限 Python)。
- 使用jupyterlab-geojson 渲染的 GeoJSON。
了解文件系统
您的服务器有一个主目录/home/jovyan/
,您可以在其中存储本地文件。该目录跨会话持续存在;如果您在/home/jovyan/
.
一切外界的/home/jovyan
是没有跨会话持续。例如,如果您/srv/conda/envs/notebook
通过手动ing 包对 Python 环境进行修改,则在停止和启动服务器后该新包将不可用。pip install
您应该只将代码、笔记本和分析文档存储在您的主目录中。值得注意的是,您不应在主目录中存储大量数据。相反,请改用Azure Blob 存储之类的东西(确保使用西欧区域,这是您的服务器运行的地方)。
环境变量
我们在您的服务器启动时设置了几个环境变量。
多变的 |
价值 |
描述 |
PC_SDK_SUBSCRIPTION_KEY |
独一无二的你 |
|
GDAL_DISABLE_READDIR_ON_OPEN |
EMPTY_DIR |
使用 GDAL打开单个 COG 时提高 GDAL 性能。 |
GDAL_HTTP_MERGE_CONSECUTIVE_RANGES |
是的 |
通过合并连续的 HTTP 请求来提高 GDAL 性能。 |
了解软件环境
您的软件环境由您在启动服务器时选择的环境决定。这是一个畅达环境位于/srv/conda/envs/notebook
。该环境包含许多有助于地理空间数据分析的软件库,这些环境被定义并打包到行星计算机容器存储库中的 Docker 容器中。
可以在环境conda-linux-64.lock
文件中查看可用的确切版本。例如,请参阅Python或R锁定文件。如果您有笔记本服务器在运行,您可以打开一个新终端并运行.conda list
在运行时安装额外的包
您可以在启动笔记本服务器后“在运行时”安装其他软件包。我们建议使用conda
(特别是mamba
求解器)安装额外的包,这将确保您的环境保持一致的状态。大多数已经存在的包都来自conda-forge频道,所以你应该更喜欢它.-c conda-forge
$ mamba install -c conda-forge r-rjson
conda
是一个多语言包管理器,所以大多数 R 包都以r-
. 您可以在https://conda-forge.org/feedstock-outputs/ 上搜索可用的软件包列表。如果包不存在,则考虑将其贡献给 conda-forge。
或者,您可以尝试从PyPI或CRAN安装软件包,但请注意,可能无法识别现有软件包。
如前所述以上,改变你的home目录的环境之外会话之间不会保留。如果您pip
或conda
安装了一个软件包,则下次启动服务器时它不会出现。如果您认为我们的环境缺少地理空间或可持续性数据分析中常用的包,请打开一个问题,要求我们添加它。
在运行时在 Dask 集群上安装包
如果您使用 Dask 进行可扩展计算,您应该确保您对本地软件环境所做的修改也出现在工作人员身上。Dask 提供了一个PipInstallPlugin来在 worker 启动时自动安装包
>>> from dask.distributed import PipInstall
>>> plugin = PipInstall(packages=["scikit-learn"], pip_options=["--upgrade"])
>>> client.register_worker_plugin(plugin)
请注意,这会减慢 worker 的启动速度,因为需要在 worker 开始执行任务之前找到并下载包。
集群限制
您可以创建的 Dask 集群的大小有一些限制。
- 每个 worker的最大内核数为 8,每个 worker的最大内存量为 64 GiB。这可确保工作人员适合用于工作人员的Standard_E8_v3 虚拟机。
- 每个集群的最大核心数为 400
- 每个集群的最大内存量为 3200 GiB
- 每个集群的最大工作线程数为 400
默认设置为 1 个核心和每个工作器 8 GiB,这意味着在 50 个物理节点上限制 400 个工作器(每个节点有 8 个核心和 64 GiB 内存)。如果此限制对于您的用例来说太低,请给我们发送电子邮件。
如果您尝试扩展超过每个工作程序的最大内核数或内存,则会引发异常,因为您请求的工作程序大于虚拟机可以处理的数量。
>>> gateway = dask_gateway.Gateway()
>>> options = gateway.cluster_options()
>>> options["worker_cores"] = 16
Traceback (most recent call last):
...
ValueError: worker_cores must be <= 8.000000, got 16.0
如果您尝试扩展超过每个集群的最大内核数、内存或工作程序数,您将看到警告并且集群将扩展到限制。
>>> cluster = gateway.new_cluster()
>>> cluster.scale(1_000)
GatewayWarning: Scale request of 1000 workers would exceed resource limit of 400 workers. Scaling to 400 instead.
福利:
最后这一切都不需要科学上网,是不是有剩下了一笔不小的花销,至于多会公开申请注册,我估计明年暑假前应该问题不大,大家夺取尝试。