当我从 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 }'