将文件所有者从pyspark应用程序创建的yarn更改为root

epfja78i  于 2021-05-27  发布在  Spark
关注(0)|答案(0)|浏览(182)

spark应用程序(yarn)正在创建一个csv文件,该应用程序正在集群模式下部署。我使用以下代码将文件保存在hdfs中。

def run_commands(self, arg_list):
    proc = Popen(arg_list, stdin=PIPE, bufsize=-1)
        output, error = proc.communicate()
    if (proc.returncode != 0):
        print('Running system command: {0}'.format(' '.join(arg_list)))
            raise Exception("Unable to find path to save output file")
    return output, error
arg_list = ["hdfs", "dfs", "-put", "-f", filename, hdfs_path]
  output, error = self.run_commands(arg_list)

但是文件所有者是默认的。因此,我尝试使用hdfs命令将所有者更改为root,结果

arg_list = ["hdfs", "dfs", "-chown", "root", filename, hdfs_path]
  output, error = self.run_commands(arg_list)
chown: changing ownership of 'filename.csv': Non-super user cannot change owner
Running system command: hdfs dfs -chown root filename.csv

有没有办法通过代码将所有权从yarn更改为root,或者有没有办法直接在spark应用程序中创建一个以root作为所有权的文件。我被困在这一点上。

暂无答案!

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

相关问题