私はOozieを通じてシェルスクリプトからJavaプログラムを実行していると私はエッジノードからシェルスクリプトを実行すると、私はOozie--のjava:コマンドが見つかりません - シェルのアクション
java: command not found
以下のエラーが出ますどんな問題も見つけられず、javaクラスは何のエラーもなく実行され、希望の出力も得られます。しかし、Javaコマンドを実行することができない怠惰な仕事です。
oozieの他のすべてのアクションはporperly実行されますが、java
行に遭遇すると、前述のエラーがスローされます。私は、HadoopクラスタのすべてのノードにJavaがインストールされていることを理解していますが、なぜこのエラーが発生しますか?以下 は、自分の考えを教えてください、私は私のシェルスクリプト
...
...
java -cp $LOCAL_DIR/libs/integration-tools.jar com.audit.reporting.GenerateExcelReport $LOCAL_DIR/input.txt $LOCAL_DIR/
...
で持っているjavaコマンドです。
'java:command not found'は、' PATH'に 'java'コマンドの位置が含まれていないことを一般的に示しています。この環境で 'echo" $ PATH "'を 'echo" $ PATH "とJVMが正常に呼び出される環境で比較してください。 –
...確かにJavaは*インストールされているかもしれませんが、インストールされている場所が現在手元のプロセスのPATHにあるかどうかは疑問です。多くのオペレーティングシステムは、 '/ usr/lib/jvm/java8-jre-bin'のような場所にJVMをインストールします。デーモンはPATHにその場所(正確な関連場所があれば)はありません。 –
ところで、オペレーティングシステムやシェルにとって意味のある変数には、すべての大文字の名前が使用されます。アプリケーションが誤って意味のある名前を上書きしないように、少なくとも1つの小文字の名前はアプリケーション用に予約されています。関連するPOSIX仕様を参照してください。http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap08.html –