hadoop java在kubernetes中的docker上使用持久卷运行时失败

lp0sw83n  于 2021-07-13  发布在  Hadoop
关注(0)|答案(0)|浏览(184)

我有一个jar运行代码,利用hadoop库和localfilesystem。此代码正在docker中运行,并部署在远程kubernetes集群上。我可以在docker容器中本地运行这段代码,而且工作正常。
部署时出现以下错误:

Exception in thread "main" java.lang.NullPointerException: Cannot invoke "org.apache.hadoop.conf.Configuration.getLong(String, long)" because the return value of "org.apache.hadoop.fs.FileSystem.getConf()" is null

以前,我在写入tmp目录时(甚至在本地)遇到了这个错误,但当我将它写入我的桌面时,它被修复了。我假设这是hadoop无法定位这个目录位置。
我已经在的根位置下面添加了一个pv和pvc到我的部署中 /compact 同样的失败。
示例(jsonnet中的k8部署规范)

volumeMounts: [
                {
                  mountPath: '/tmp',
                  name: 'tmp',
                },
                {
                  mountPath: '/compact',
                  name: 'compactorpvc',
                },
              ],
              env: podEnv(app.name),
            },
          ],
          volumes: [
            {
              name: 'tmp',
              emptyDir: {},
            },
            {
                name: 'compactorpvc',
                persistentVolumeClaim: {
                  claimName: 'compactorpvc'
                },
            },
          ],

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题