返回
在 Windows 上使用 Bitnami Docker Compose 运行 Spark 作业时遇到 Kerberos 验证错误?试试这 5 个步骤
windows
2024-03-22 00:30:24
在 Windows 上使用 Bitnami Docker Compose 排除 Spark 作业运行错误
问题
在 Windows 上使用 Bitnami Docker Compose 运行 Spark 作业时,您可能遇到以下错误:
org.apache.hadoop.security.KerberosAuthException: failure to login: javax.security.auth.login.LoginException: java.lang.NullPointerException: invalid null input: name
原因分析
此错误通常是由于 Docker 中的用户 ID 缺少名称造成的。
解决方案
步骤 1:检查用户 ID
在 Docker Desktop 中,前往“设置”>“资源”>“高级”>“Linux Docker 主机配置”。确保“用户名”字段中填写了用户名。如果没有,请输入一个用户名。
步骤 2:重新生成 Docker Compose 文件
编辑 docker-compose.yml
文件,将以下内容添加到 services.worker
部分:
user: <用户名>
将 <用户名>
替换为您在步骤 1 中添加的用户名。
步骤 3:重新启动 Docker Compose
停止并删除所有正在运行的容器:
docker-compose down
重新启动 Docker Compose:
docker-compose up -d
步骤 4:提交作业
使用 pyspark 提交您的作业,指定端口 7077:
from pyspark.sql import SparkSession
spark = SparkSession \
.builder \
.master("spark://<master-hostname>:7077") \
.appName("My Application") \
.getOrCreate()
# 编写和提交作业代码...
其他提示
- 确保 Spark 已配置为使用正确的 Kerberos 配置。
- 如果问题仍然存在,请尝试使用
--deploy-mode client
选项提交作业。 - 检查是否正确设置了环境变量,例如
SPARK_HOME
和HADOOP_HOME
。
常见问题解答
1. 我在哪里可以找到 Bitnami Docker Compose 的文档?
官方文档位于 Bitnami 网站。
2. 如何配置 Spark 的 Kerberos 安全性?
有关详细说明,请参阅 Spark 文档。
3. 为什么我需要重新生成 Docker Compose 文件?
重新生成文件会更新 Docker Compose 配置,包括新添加的用户 ID。
4. --deploy-mode client
选项有什么作用?
此选项会将作业驱动程序运行在客户端,而不是在 Spark 集群中。它通常用于调试和开发目的。
5. 如果我仍然遇到问题,我该怎么办?
如果您遵循了所有步骤但仍然遇到问题,请尝试查看 Spark 社区论坛 或 Bitnami 社区论坛。