hdfs 사용자를 사용하여 루트에서 CLI를 실행하는 방법

hdfs 사용자를 사용하여 루트에서 CLI를 실행하는 방법

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 }' 

관련 정보