生物物理計算化学者の雛

主に科学に関する諸々を書き留めています。

.cshrcと.bashrcのHadoop関連設定

ちょくちょくcshbashの両方の設定ファイル(.cshrc, .bashrc)を書く必要があり、そのたびにそれぞれ環境変数の設定やらif文やらの書き方やらが違って混乱するので、まとめておきます。

cshの場合

if ( `hostname` =~ hd* || `hostname` == hserver ) then
  # ホスト名が hd から始まるマシン、または hserver ならば

  # 環境変数指定
  setenv JAVA_HOME   /usr/java/jdk1.6.0_12
  setenv HADOOP_HOME /work/hadoop-0.21.0
  # パスを通す
  set path = ($HADOOP_HOME/bin $path)

  # .jar ファイル全てを CLASSPATH に追加する
  foreach f ("$HADOOP_HOME"/*.jar)
    set CLASSPATH = ("$CLASSPATH":"$f")
  end
  foreach f ("$HADOOP_HOME"/lib/*.jar)
    set CLASSPATH = ("$CLASSPATH":"$f")
  end

else
  setenv HADOOP_HOME /work/hadoop-0.20.2
  # 略

endif

# hadoopコマンドのエイリアス指定
alias hdls    hadoop dfs -ls

bashの場合

if [[ `hostname` =~ hd* || `hostname` == hserver ]]; then
  # ホスト名が hd から始まるマシン、または hserver ならば

  # 環境変数指定
  export JAVA_HOME=/usr/java/jdk1.6.0_12
  export HADOOP_HOME=/work/hadoop-0.21.0
  # パスを通す
  PATH=$HADOOP_HOME/bin:$PATH

  # .jar ファイル全てを CLASSPATH に追加する
  for f in "$HADOOP_HOME"/*.jar ; do
    export CLASSPATH="$CLASSPATH":"$f"
  done
  for f in "$HADOOP_HOME"/lib/*.jar ; do
    export CLASSPATH="$CLASSPATH":"$f"
  done

else
  export HADOOP_HOME=/work/hadoop-0.20.2
  # 略

fi

# hadoopコマンドのエイリアス指定
alias hdls='hadoop dfs -ls'