Apache spark Kubernetes上的Spark UI历史服务器?
使用spark submit,我在Kubernetes集群上启动应用程序。只有当我去的时候,我才能看到Spark UI 如何在群集上启动Spark UI History Server? 如何使所有正在运行的spark作业都在spark UI历史记录服务器上注册Apache spark Kubernetes上的Spark UI历史服务器?,apache-spark,kubernetes,Apache Spark,Kubernetes,使用spark submit,我在Kubernetes集群上启动应用程序。只有当我去的时候,我才能看到Spark UI 如何在群集上启动Spark UI History Server? 如何使所有正在运行的spark作业都在spark UI历史记录服务器上注册 这可能吗?是的,这是可能的。简而言之,您需要确保以下几点: 确保所有应用程序将事件日志存储在特定位置(filesystem、s3、hdfs等) 在集群中部署历史记录服务器,并访问上述事件日志位置 现在spark(默认情况下)只从文件系
这可能吗?是的,这是可能的。简而言之,您需要确保以下几点:
- 确保所有应用程序将事件日志存储在特定位置(
、filesystem
、s3
等)hdfs
- 在集群中部署历史记录服务器,并访问上述事件日志位置
文件系统
路径读取,因此我将详细阐述此案例:
- 创建具有支持模式的卷类型的
。例如PVC
volume。下面的代码段假定您已经配置了NFS
(NFS
)的存储类:NFS卷
- 确保所有spark应用程序都已启用事件日志记录,且路径正确:
- 通过将事件日志卷装载到每个应用程序(您还可以使用操作员变异web钩子来集中它)pod。具有上述配置的清单示例如下所示:
- 安装spark history server以装载共享卷。然后,您将在历史服务器UI中访问事件:
入口
,服务
以访问用户界面
。
您还可以使用Google云存储、Azrue Blob存储或AWS S3作为事件日志位置。为此,您需要安装一些额外的
jar
,因此我建议您查看一下lightbend spark history server和。@Qasim感谢您的知识。是否可以连接到kerberized hdfs?
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: spark-pvc
namespace: spark-apps
spec:
accessModes:
- ReadWriteMany
volumeMode: Filesystem
resources:
requests:
storage: 5Gi
storageClassName: nfs-volume
sparkConf:
"spark.eventLog.enabled": "true"
"spark.eventLog.dir": "file:/mnt"
---
apiVersion: "sparkoperator.k8s.io/v1beta2"
kind: SparkApplication
metadata:
name: spark-java-pi
namespace: spark-apps
spec:
type: Java
mode: cluster
image: gcr.io/spark-operator/spark:v2.4.4
mainClass: org.apache.spark.examples.SparkPi
mainApplicationFile: "local:///opt/spark/examples/jars/spark-examples_2.11-2.4.4.jar"
imagePullPolicy: Always
sparkVersion: 2.4.4
sparkConf:
"spark.eventLog.enabled": "true"
"spark.eventLog.dir": "file:/mnt"
restartPolicy:
type: Never
volumes:
- name: spark-data
persistentVolumeClaim:
claimName: spark-pvc
driver:
cores: 1
coreLimit: "1200m"
memory: "512m"
labels:
version: 2.4.4
serviceAccount: spark
volumeMounts:
- name: spark-data
mountPath: /mnt
executor:
cores: 1
instances: 1
memory: "512m"
labels:
version: 2.4.4
volumeMounts:
- name: spark-data
mountPath: /mnt
apiVersion: apps/v1beta1
kind: Deployment
metadata:
name: spark-history-server
namespace: spark-apps
spec:
replicas: 1
template:
metadata:
name: spark-history-server
labels:
app: spark-history-server
spec:
containers:
- name: spark-history-server
image: gcr.io/spark-operator/spark:v2.4.0
resources:
requests:
memory: "512Mi"
cpu: "100m"
command:
- /sbin/tini
- -s
- --
- /opt/spark/bin/spark-class
- -Dspark.history.fs.logDirectory=/data/
- org.apache.spark.deploy.history.HistoryServer
ports:
- name: http
protocol: TCP
containerPort: 18080
readinessProbe:
timeoutSeconds: 4
httpGet:
path: /
port: http
livenessProbe:
timeoutSeconds: 4
httpGet:
path: /
port: http
volumeMounts:
- name: data
mountPath: /data
volumes:
- name: data
persistentVolumeClaim:
claimName: spark-pvc
readOnly: true