次のコマンドを実行します。
hadoop fs -ls hdfs:///logs/ | grep -oh "/[^/]*.gz" | grep -oh "[^/]*.gz" | hadoop fs -put - hdfs:///unzip_input/input
マスターノードに ssh した後、シェルから呼び出すと機能します。ただし、次のように ssh 経由で呼び出そうとしても機能しません。
ssh -i /home/USER/keypair.pem hadoop@ec2-XXXX.compute-1.amazonaws.com hadoop fs -ls hdfs:///logs/ | grep -oh "/[^/]*.gz" | grep -oh "[^/]*.gz" | hadoop fs -put - hdfs:///unzip_input/input
エラーが発生します:
zsh: command not found: hadoop
しかし、最後のパイプを取り出すと、コマンドは成功します:
ssh -i /home/USER/keypair.pem hadoop@ec2-XXXX.compute-1.amazonaws.com hadoop fs -ls hdfs:///logs/ | grep -oh "/[^/]*.gz" | grep -oh "[^/]*.gz"
いくつかの検索から、JAVA_HOMEが設定されていないというエラーが原因である可能性があることがわかりましたが、マスターノードの ~/.bashrc に正しく設定されています
Hadoop クラスターは、Amazon Elastic Map Reduce クラスターです。