コマンドプロンプトからサンプルhadoopプログラムを実行でき、Eclipseから同じプログラムを実行しようとしているので、デバッグして理解を深めることができます。
コマンドラインプログラムの場合、いくつかの環境変数は.bashrc
で設定され、同じはhadoopプログラムでSystem.getenv().get("HADOOP_MAPRED_HOME")
として読み込まれます。しかし、System.getenv().get("HADOOP_MAPRED_HOME")
でJavaプログラムを実行しているとき、Eclipseからnullになります。
Eclipseからランタイム構成で-DHADOOP_MAPRED_HOME=test
をVMパラメーターに渡そうとしましたが、スタンドアロンプログラムではまだnullになりました。 Eclipse内で環境変数を表示するにはどうすればよいですか? EclipseでSystem.getenv()
を反復処理すると、DISPLAY
、USER
、HOME
などの多くの変数が表示されます。それらはどこに設定されていますか? Ubuntu 11.04を使用しています。
.bashrcファイルは、対話型ログインシェルで使用される変数の設定に使用されます。これらの環境変数をEclipseで使用できるようにする場合は、/ etc/environmentに配置する必要があります。
Eclipse内でのみ表示される環境変数を定義することもできます。
[実行]-> [実行構成...]に移動し、[環境]タブを選択します。
そこで、アプリケーションに固有の環境変数をいくつか追加できます。
同じ問題を抱えていたため、このためのEclipseプラグインを作成しました。気軽にダウンロードして貢献してください。
それはまだ初期の開発段階にありますが、私にとってはすでにその仕事をしています。
-Dhadoop.home.dirをVMに送信することにより、Hadoopホームディレクトリを設定できます。 Eclipse内で実行するすべてのアプリケーションにこのパラメーターを送信するには、Window-> Preferences-> Java-> Installed JREs->(JREインストールを選択)-> Edit ..->(値を設定「デフォルトVM引数:」テキストボックス)。 $ {HADOOP_HOME}をHadoopインストールへのパスに置き換えることができます。
シェル内でEclipseを起動することもできます。
Eclipseを呼び出す前に、環境をエクスポートします。
例:
#!/bin/bash
export MY_VAR="ADCA"
export PATH="/home/lala/bin;$PATH"
$Eclipse_HOME/Eclipse -data $YOUR_WORK_SPACE_PATH
その後、ワークスペースを含む独自のカスタム環境を使用して、Eclipseに複数のインスタンスを作成できます。
EclipseプロジェクトのOSの環境変数をオーバーライドする場合は、@ MAXの回答も参照してください。
同じマシンでEclipseプロジェクトを終了するプロジェクトがある場合に役立ちます。
リリースプロジェクトはテスト用にOS環境変数を使用でき、Eclipseプロジェクトは開発用にOS環境変数をオーバーライドできます。