すべての Hadoop 構成ファイルは、次の場所にあります。
./.linuxbrew/Cellar/hadoop/2.7.3/libexec/etc/hadoop/"
HADOOP_HOME 変数を設定するには、ドット表記と ~ のどちらを使用すればよいですか?
HADOOP_HOME = "./.linuxbrew/Cellar/hadoop/2.7.3/libexec/etc/hadoop/"
または
HADOOP_HOME = " ~/.linuxbrew/Cellar/hadoop/2.7.3/libexec/etc/hadoop/"
答え1
まず、シェル割り当てはない等号の前または後にスペースを入れます。どちらの提案も、実際には文字通り と呼ばれるコマンドを実行しようとしますHADOOP_HOME
。
相対パスは良い考えではありません。相対パスは、ホームディレクトリではなく、現在の作業ディレクトリに相対的です。したがって、 にcd
'd した場合~/Documents
、それは を意味します~/Documents/.linuxbrew/…
。これはまったく望んでいることではありません。
2 つ目の方法も、引用符の仕組み上、実際には機能しません。展開は~
シェルが行うものと想定されており、通常は環境変数に実際に変換すべきではありません。ただし、引用符で囲むことで、その展開を防止できます。引用~/
符から ビットを省くか、別の方法$HOME
(二重引用符内で展開する) を使用する必要があります。したがって、次のいずれかが機能するはずです (少なくとも、$HOME
がホーム ディレクトリに設定されている場合、ほとんどの場合、そのようになります)。
HADOOP_HOME="$HOME/.linuxbrew/Cellar/hadoop/2.7.3/libexec/etc/hadoop/"
HADOOP_HOME=~/".linuxbrew/Cellar/hadoop/2.7.3/libexec/etc/hadoop/"
個人的には、最初のものの方が読みやすいと思います。3 番目のオプションもあります。ここでは引用符は必要ありません。名前に特殊文字はありません。したがって、これも問題ありません (完全に読みやすいです)。
HADOOP_HOME=~/.linuxbrew/Cellar/hadoop/2.7.3/libexec/etc/hadoop/
変数もエクスポートすることを忘れないでください ( export HADOOP_HOME
)。