Linux

如何使用使用者 hdfs 從 root 執行 CLI

  • March 5, 2019

當我從 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.

當我錯了?

需要執行的命令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 }' 

引用自:https://unix.stackexchange.com/questions/504530