簡體   English   中英

如何將 databricks dbx 與 Azure VPN 一起使用?

[英]How to use databricks dbx with an Azure VPN?

我正在使用dbx在 Databricks 上的臨時集群上部署啟動作業。 我已經初始化了cicd-sample-project並連接到一個新的空 Databricks 免費試用環境並且一切正常(這意味着我可以使用此命令成功部署 python 包python -m dbx deploy cicd-sample-project-sample-etl --assets-only並通過python -m dbx launch cicd-sample-project-sample-etl --from-assets --trace執行它

當我嘗試在我公司的 Databricks 環境中啟動完全相同的作業時,部署命令會通過。 唯一的區別是我公司的 Databricks 環境通過 VPN 連接到 Azure。

因此,我在我的防火牆中添加了一些規則firewall_rules_img firewall_rules_2_img

但是當我給出dbx launch命令時,我收到以下錯誤error_node_img並且在日志中出現此消息

警告 MetastoreMonitor:無法連接到 Metastore InternalMysqlMetastore(DbMetastoreConfig {host=consolidated-westeuropec2-prod-metastore-3.mysql.database.azure.com,port=3306,dbName=organization5367007285973203,user=[已編輯]})。 (timeSinceLastSuccess=0) org.skife.jdbi.v2.exceptions.UnableToObtainConnectionException: java.sql.SQLTransientConnectionException: metastore-monitor - 連接不可用,請求在 15090 毫秒后超時。 在 org.skife.jdbi.v2.DBI.open(DBI.java:230)

我什至沒有嘗試在 Metastore 上寫,我只是在記錄一些數據:

from cicd_sample_project.common import Task


class SampleETLTask(Task):
    def launch(self):
        self.logger.info("Launching sample ETL task")
        self.logger.info("Sample ETL task finished!")


def entrypoint():  # pragma: no cover
    task = SampleETLTask()
    task.launch()


if __name__ == "__main__":
    entrypoint()

有人遇到過同樣的問題嗎? 在哪里可以將 Databricks-dbx 與 Azure VPN 結合使用? 請讓我知道並感謝您的幫助。

PS:如果需要我可以提供完整的日志

在您的情況下,出口流量配置不正確——這不是 DBX 問題,而是一般的 Databricks 網絡問題。 只需確保允許傳出流量到達文檔中描述的端口目的地

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM