为什么 "databricks-connect test" 在配置 Databricks Connect 后不起作用?

Why "databricks-connect test" does not work after configurate Databricks Connect?

我想 运行 我的 Spark 使用 IntelliJ IDEA 直接在我的集群中处理,所以我正在关注下一个文档 https://docs.azuredatabricks.net/user-guide/dev-tools/db-connect.html

配置完所有后,我 运行 databricks-connect test 但是我没有像文档中说的那样获得 Scala REPL。

这是我的集群配置

您的 Python 版本应该是 3.5 - 根据您 post 编辑的 link。 您是否在可能具有第 7 层防火墙的代理或网络后面? 你所做的其他一切看起来都是正确的。所以我会尝试另一个网络。

你设置了吗:

spark.databricks.service.server.enabled true
spark.databricks.service.port 8787

重要提示:我会轮换您的 API 密钥 - 您已经在 post 中发布了您的组织 ID 和密钥,这意味着现在任何人都可以访问它。

尝试 运行 数据块示例,例如:

from pyspark.sql import SparkSession
spark = SparkSession\
.builder\
.getOrCreate()

print("Testing simple count")
# The Spark code will execute on the Databricks cluster.
print(spark.range(100).count())

这对我有用。

也许他们会修复 databricks-connect test

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

  • 安装Java

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

下载并安装Java SE Development Kit 8.

  • 安装康达

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

  • 下载 WinUtils

这个讨厌的虫子是 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")
  • 创建虚拟环境

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

从“开始”菜单中找到 Anaconda Prompt。当它打开时,它会有一个默认提示,如:

(基数)C:\Users\User 基本部分意味着您不在虚拟环境中,而是基本安装。要创建新环境,请执行此操作:

conda create --name dbconnect python=3.5

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

  • 现在激活环境:

    conda 激活 dbconnect

  • 安装Databricks-Connect

你现在可以开始了:

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

databricks-connect configure

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

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

您的问题看起来像是以下问题之一: a) 您指定了错误的端口(在 Azure 上必须是 8787) b) 你没有在你的 Databricks 集群中打开端口 c) 你没有正确安装 winUtils (例如你忘记放置环境变量

如果你能听懂德语,这个 youtube 视频可能会对你有所帮助。 (显示 windows 10 的完整安装过程)。

https://www.youtube.com/watch?v=VTfRh_RFzOs&t=3s