hdfs 사용자로부터 다음 cli를 실행하면 정상적으로 작동합니다.
# su hdfs
$ hadoop fs -du -s /home/test/* | awk '{ sum += $1 } END { print sum }'
4182692
그러나 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 }'