首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法为MLFlow设置sftp工件存储

无法为MLFlow设置sftp工件存储
EN

Stack Overflow用户
提问于 2020-08-06 01:14:23
回答 1查看 2.2K关注 0票数 2

我想要设置一个带有外部度量和工件存储的跟踪MLFlow服务器。我在码头网络中有以下码头容器: mlflow-server、postgres、sftp和python。我能够设置postgres并将其连接到mlflow服务器和客户端:

代码语言:javascript
复制
mlflow server --backend-store-uri postgresql://postgres:<pass>@mlflow_db:5432/mlflow_db --default-artifact-root sftp://sftp:<pass>@sftp-mlflow:22 -h 0.0.0.0 -p 8000

但是,我不能对工件存储做任何事情。尝试了以下sftp映像

也跟着这个指南。但是工件存储仍然不能工作=(

在我的委托人那边

代码语言:javascript
复制
import mlflow
import matplotlib
import matplotlib.pyplot as plt
import numpy as np

remote_server_uri = "http://mlflow-server:8000" # set to your server URI
mlflow.set_tracking_uri(remote_server_uri)

# plotting
fig.savefig("test.png")

ARTIFACT_URI = "sftp://sftp:<pass>@sftp-mlflow:22"
EXPERIMENT_NAME = "test"
mlflow.create_experiment(EXPERIMENT_NAME, artifact_location=ARTIFACT_URI)
mlflow.set_experiment(EXPERIMENT_NAME)
with mlflow.start_run():
    mlflow.log_param("a", 1)
    mlflow.log_metric("b", 2)
    mlflow.log_artifact('test.png')

当运行这段代码时,我得到:

代码语言:javascript
复制
2020/08/06 01:05:19 ERROR mlflow.utils.rest_utils: API request to http://mlflow-server:8000/api/2.0/mlflow/experiments/create failed with code 500 != 200, retrying up to 0 more times. API response body: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<title>500 Internal Server Error</title>
<h1>Internal Server Error</h1>
<p>The server encountered an internal error and was unable to complete your request. Either the server is overloaded or there is an error in the application.</p>

Traceback (most recent call last):
  File "/usr/local/lib/python3.8/runpy.py", line 194, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "/usr/local/lib/python3.8/runpy.py", line 87, in _run_code
    exec(code, run_globals)
  File "/run.py", line 24, in <module>
    mlflow.create_experiment(EXPERIMENT_NAME, artifact_location=ARTIFACT_URI)
  File "/usr/local/lib/python3.8/site-packages/mlflow/tracking/fluent.py", line 357, in create_experiment
    return MlflowClient().create_experiment(name, artifact_location)
  File "/usr/local/lib/python3.8/site-packages/mlflow/tracking/client.py", line 164, in create_experiment
    return self._tracking_client.create_experiment(name, artifact_location)
  File "/usr/local/lib/python3.8/site-packages/mlflow/tracking/_tracking_service/client.py", line 126, in create_experiment
    return self.store.create_experiment(
  File "/usr/local/lib/python3.8/site-packages/mlflow/store/tracking/rest_store.py", line 54, in create_experiment
    response_proto = self._call_endpoint(CreateExperiment, req_body)
  File "/usr/local/lib/python3.8/site-packages/mlflow/store/tracking/rest_store.py", line 32, in _call_endpoint
    return call_endpoint(self.get_host_creds(), endpoint, method, json_body, response_proto)
  File "/usr/local/lib/python3.8/site-packages/mlflow/utils/rest_utils.py", line 142, in call_endpoint
    response = http_request(
  File "/usr/local/lib/python3.8/site-packages/mlflow/utils/rest_utils.py", line 86, in http_request
    raise MlflowException("API request to %s failed to return code 200 after %s tries" %
mlflow.exceptions.MlflowException: API request to http://mlflow-server:8000/api/2.0/mlflow/experiments/create failed to return code 200 after 3 tries

我可以使用sftp:sftp -P 22 sftp@sftp-mlflow从mlflow server contaner和python客户端连接sftp存储。

EN

回答 1

Stack Overflow用户

发布于 2020-09-16 12:58:04

在mlflow服务器中,您已经定义了默认工件存储,因此我假设没有必要在客户端指定此存储。你已经试过mlflow.create_experiment(EXPERIMENT_NAME)了吗?

另一个注意事项:您如何指定sftp服务器上的用户(命令参数、环境变量或文件)?MLflow文档建议不要使用user:pass,而是使用.

将客户端配置为能够登录到SFTP服务器,而无需通过SSH密码(例如公钥、ssh_config中的标识文件等)。

https://www.mlflow.org/docs/latest/tracking.html#sftp-server

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63275517

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档