当我尝试配置Databricks连接时,为什么“ databricks连接测试”不起作用?

时间:2019-05-02 11:59:19

标签: apache-spark intellij-idea databricks azure-databricks

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

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

enter image description here

这是我的集群配置

enter image description here

我已经创建并运行了集群。 enter image description here

我创建了一个令牌。 enter image description here

我正在使用Windows 10和Python 3.5 enter image description here

我禁用了防火墙: enter image description here

我使用了databricks 5.2 enter image description here

我看到配置中的一切都很好: enter image description here

我没有收到任何错误,只是该过程没有以第一个图像或下一个图像结束。 enter image description here

4 个答案:

答案 0 :(得分:2)

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

如果您可以任意理解德语,则此youtube视频可能会为您提供帮助。 (显示Windows 10的完整安装过程。)

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

答案 1 :(得分:1)

您的Python版本应为3.5-根据您发布的链接。 您是否在可能具有第7层防火墙的代理或网络的后面? 您所做的所有其他事情看起来都是正确的。所以我会尝试另一个网络。

您已设置:

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

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

答案 2 :(得分:1)

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

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

答案 3 :(得分:0)

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

  • 安装Java

下载并安装Java SE Runtime版本8。

下载并安装Java SE Development Kit 8。

  • 安装Conda

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

  • 下载WinUtils

此有害的Bugger是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提示。当它打开时,将显示类似以下内容的默认提示:

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

conda create --name dbconnect python=3.5

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

  • 现在激活环境:

    conda激活dbconnect

  • 安装Databricks-Connect

您现在可以出发了:

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

databricks-connect configure

enter image description here

  • 创建Databricks集群(在这种情况下,我使用Amazon Web Services)

enter image description here

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