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作为所有权的文件。我被困在这一点上。
暂无答案!
目前还没有任何答案,快来回答吧!