Ubuntuをインストールしたばかりで、Java 7u55(JDK)で、Java_HOMEを環境変数として構成しようとしています。
~/.bashrc
に追加しました:
# Exports
Java_HOME=/home/myuser/sandbox/Java/7u55/jdk1.7.0_55
export PATH=$PATH:Java_HOME
しかし、ターミナルを閉じて新しいシェルを開いてwhich Java
またはJava -version
と入力すると、Ubuntuは何を話しているのかわからないようです(プログラムJava
は1つにあります)いくつかのパッケージの中で、Sudo apt-get
を使用してそのうちの1つをインストールするように求められます)。
何が間違っていますか?
まず、輸出ラインにタイプミスがあります。そのはず
export PATH=$PATH:$Java_HOME/bin
スペースなし、Java_HOMEの前に$文字を追加、/bin
を追加
ただし、上記の行を修正しても、Javaのインストールに関する問題が修正されない場合があります。 Javaをインストールする最も簡単な方法は、webup8 ppaを使用することです。
Sudo add-apt-repository ppa:webupd8team/Java
Sudo apt-get update
Sudo apt-get install Oracle-Java7-installer
最後のコマンドの後、スクリプトはjdkをOracle Webサイトから自動的にダウンロードしてインストールします。チュートリアルを読むことができます こちら 。
環境変数Java_HOME
を設定しましたが、これはJREまたはJDKがどこにあるかを知りたいアプリケーションが使用する値にすぎません。
PATH
は、実行可能ファイルを実行しようとしたときにシェルが探しているものです。したがって、Java -version
と入力すると、JDKフォルダーが検索されます。 Java
は実際には$Java_HOME/bin
の中にあることに注意してください。それが見つからない理由です。
それが説明です。
修正するには、$PATH
に適切に追加します。
export PATH=$PATH:Java_HOME/bin
または、update-alternatives
および JDKパスを追加 をシステムのJava代替に実行します。
例えば
update-alternatives --install "/usr/bin/Java" "Java" "/home/myuser/sandbox/Java/7u55/jdk1.7.0_55/bin/Java" 3
Sqoopがjdkを見つけられないため、このエラーが発生します。デフォルトではjreが使用され、sqoopジョブをコンパイルするために必要なjavacファイルはありません。
解決:
jdkがシステムにインストールされている場合、hadoop-env.shファイルで同じように構成します。
# The Java implementation to use. Required.
export Java_HOME=/opt/jdk1.8.0_151/
.bash_profileファイル内。
好む:
PATH=$PATH:$HOME/.local/bin:$HOME/bin:/opt/jdk1.8.0_151/bin
次にsourceを実行します。 .bash_profile
これで、sqoopジョブのテストが正常に機能するようになりました。