如何使用 hdfs 用户从 root 运行 CLI

如何使用 hdfs 用户从 root 运行 CLI

当我从 hdfs 用户运行以下 cli 时,它运行良好

    # su hdfs
    $ hadoop fs -du -s /home/test/* | awk '{ sum += $1 } END { print sum }'
     4182692

但是当我从 root 运行它时,同时使用 su -l hdfs 然后我得到

su -l hdfs -c " hadoop fs -du -s /home/test/* | awk '{ sum += $1 } END { print sum }' "
awk: cmd. line:1: { sum +=  } END { print sum }
awk: cmd. line:1:           ^ syntax error
^C
Session terminated, killing shell... ...killed.

我什么时候错了?

答案1

需要执行的命令越hdfs短。你的东西像:

su -l hdfs -c "hadoop fs -du -s /home/test/*" | awk '{ sum += $1 } END { print sum }' 

并更好地用于sudo此目的:

sudo -u hdfs "hadoop fs -du -s /home/test/*" | awk '{ sum += $1 } END { print sum }' 

相关内容