小编sta*_*wed的帖子

SparkContext.addFile 将文件上传到驱动程序节点,但不上传到工作节点

sc.texfile("file:///.../myLocalFile.txt")我尝试在集群上运行 a并java.io.FileNotFoundException在工作人员上运行。

所以我用谷歌搜索,找到sc.addFile/SparkFiles.get将文件上传给每个工人。

所以这是我的代码:

sc.addFile("file:///.../myLocalFile.txt")
val input = sc.textFile(SparkFiles.get("myLocalFile.txt"))
Run Code Online (Sandbox Code Playgroud)

我看到驱动程序节点将文件上传到目录中/tmp,然后我的工作人员得到了,FileNotFoundException因为:

  1. 我没有看到任何打印输出表明工作人员已经下载了他们应该下载的文件
  2. 他们尝试使用驱动程序的路径访问该文件。所以我假设SparkFiles.get()是在驱动程序节点上运行,而不是在工作节点上运行(我通过添加 来确认println)。

我尝试使用spark-submit --files选项,发现了完全相同的问题。

那么我做错了什么?我想要的只是sc.textFile()在一个集群上。

filenotfoundexception apache-spark

5
推荐指数
1
解决办法
4436
查看次数

没有PVC可以直接安装PV吗?

到目前为止,我确信需要 PVC 才能访问 PV,就像 k8s文档中的示例一样:

apiVersion: v1
kind: Pod
metadata:
  name: mypod
spec:
  containers:
    - name: myfrontend
      image: nginx
      volumeMounts:
      - mountPath: "/var/www/html"
        name: mypd
  volumes:
    - name: mypd
      persistentVolumeClaim:
        claimName: myclaim
Run Code Online (Sandbox Code Playgroud)

但后来我在Docker 文档中看到可以使用以下语法(使用 nfs 的示例):

kind: Pod
apiVersion: v1
metadata:
  name: nfs-in-a-pod
spec:
  containers:
    - name: app
      image: alpine
      volumeMounts:
        - name: nfs-volume
          mountPath: /var/nfs # Please change the destination you like the share to be mounted too
      command: ["/bin/sh"]
      args: ["-c", "sleep 500000"]
  volumes: …
Run Code Online (Sandbox Code Playgroud)

kubernetes

5
推荐指数
1
解决办法
1806
查看次数

Kubernetes PV 在删除/重新创建后拒绝绑定

鉴于以下 PVC 和 PV:

  • PVC:
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: packages-pvc
spec:
  accessModes:
    - ReadWriteMany
  resources:
    requests:
      storage: 1Gi
  volumeName: packages-volume
Run Code Online (Sandbox Code Playgroud)
  • 光伏:
apiVersion: v1
kind: PersistentVolume
metadata:
  name: packages-volume
  namespace: test
spec:
  claimRef:
    name: packages-pvc
    namespace: test
  accessModes:
    - ReadWriteMany
  nfs:
    path: {{NFS_PATH}}
    server: {{NFS_SERVER}}
  capacity:
    storage: 1Gi
  persistentVolumeReclaimPolicy: Retain
Run Code Online (Sandbox Code Playgroud)

如果我创建 PV,那么 PVC,它们会绑定在一起。但是,如果我删除 PVC 然后重新创建它,它们不会绑定(pvc 挂起)。为什么?

kubernetes

3
推荐指数
1
解决办法
1240
查看次数