hdfs ユーザーを使用してルートで CLI を実行する方法

hdfs ユーザーを使用してルートで CLI を実行する方法

hdfs ユーザーから次の cli を実行すると正常に動作します。

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

ただし、su -l hdfsを使用している間にrootで実行すると、次の結果が表示されます。

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

おすすめ記事