为什么配置 Databricks Connect 后“databricks-connect 测试”不起作用?

Eri*_*let 6 intellij-idea apache-spark databricks azure-databricks

我想使用 IntelliJ IDEA 直接在集群中运行 Spark 进程,因此我遵循下一个文档https://docs.azuredatabricks.net/user-guide/dev-tools/db-connect.html

配置完所有内容后,我运行databricks-connect test但没有获得文档所述的 Scala REPL。

在此输入图像描述

这是我的集群配置

在此输入图像描述

Eri*_*let 8

我解决问题。问题是所有工具的版本:

  • 安装Java

下载并安装 Java SE 运行时版本 8。

下载并安装 Java SE 开发工具包 8。

  • 安装康达

您可以下载并安装完整的 Anaconda 或使用 miniconda。

  • 下载 WinUtils

这个讨厌的 bug 是 Hadoop 的一部分,Spark 需要它才能在 Windows 上工作。快速安装,打开 Powershell(以管理员身份)并运行(如果您位于安全性极强的公司网络上,您可能需要手动下载 exe):

New-Item -Path "C:\Hadoop\Bin" -ItemType Directory -Force
Invoke-WebRequest -Uri https://github.com/steveloughran/winutils/raw/master/hadoop-2.7.1/bin/winutils.exe -OutFile "C:\Hadoop\Bin\winutils.exe"
[Environment]::SetEnvironmentVariable("HADOOP_HOME", "C:\Hadoop", "Machine")
Run Code Online (Sandbox Code Playgroud)
  • 创建虚拟环境

我们现在是一个新的虚拟环境。我建议为您正在处理的每个项目创建一个环境。这允许我们为每个项目安装不同版本的 Databricks-Connect 并单独升级它们。

从“开始”菜单中找到“Anaconda Prompt”。打开后会出现默认提示,如下所示:

(base) C:\Users\User 基本部分意味着您不在虚拟环境中,而是基本安装。要创建新环境,请执行以下命令:

conda create --name dbconnect python=3.5
Run Code Online (Sandbox Code Playgroud)

其中 dbconnect 是您的环境的名称,可以是您想要的名称。Databricks 当前运行 Python 3.5 - 您的 Python 版本必须匹配。这也是每个项目都有一个环境的另一个很好的理由,因为这在未来可能会发生变化。

  • 现在激活环境:

    conda 激活 dbconnect

  • 安装 Databricks-Connect

现在您可以开始了:

pip install -U databricks-connect==5.3.*

databricks-connect configure
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

  • 创建 Databricks 集群(在本例中我使用 Amazon Web Services)

在此输入图像描述

spark.databricks.service.server.enabled true
spark.databricks.service.port 15001 (Amazon 15001, Azure 8787)
Run Code Online (Sandbox Code Playgroud)
  • 关闭 Windows Defender 防火墙或允许访问。