コマンドの実際のパスが見つからないコマンド

コマンドの実際のパスが見つからないコマンド

Hortonworks(HDP)がインストールされているRHEL 7.xがあり、which次のコマンドを使用できる理由についての提案が必要です。

Hadoopはありません...

Hadoopクライアントは以下にインストールされており、/usr/bin当社envから入手できます。

[root@hadoop_machine ~]# env | grep PATH
PATH=/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

そうする必要があります。では、なぜこのエラーが発生するのですかwhich hadoop

[root@hadoop_machine ~]# which hadoop
/usr/bin/which: no hadoop in (/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin)

[root@hadoop_machine ~]# ls -ltr /usr/bin | grep hadoop
lrwxrwxrwx. 1 root root         44 Jun  4 11:24 yarn -> /usr/hdp/current/hadoop-yarn-client/bin/yarn
lrwxrwxrwx. 1 root root         51 Jun  4 11:24 mapred -> /usr/hdp/current/hadoop-mapreduce-client/bin/mapred
lrwxrwxrwx. 1 root root         44 Jun  4 11:24 hdfs -> /usr/hdp/current/hadoop-hdfs-client/bin/hdfs
lrwxrwxrwx. 1 root root         41 Jun  4 11:24 hadoop -> /usr/hdp/current/hadoop-client/bin/hadoop

ベストアンサー1

hadoopの実行可能ファイル/usr/binはへのシンボリックリンクです/usr/hdp/current/hadoop-client/bin/hadoop。シンボリックリンクの宛先が存在しない可能性が高い。存在する場合は、執行可能であることを確認するために調査する必要があります。

whichシンボリックリンクが指すファイルが欠落しているか(死んだシンボリックリンク)、実行できない場合は表示されません。

また、command -v代わりに使用する方が良い場合がよくありますwhich(特に移植性があると予想されるスクリプトの場合)。

関連:

おすすめ記事