HortonworksのWindows用Hadoop(ベータ版)のインストールおよび動作確認。
→HDP正式版
Windows用のHadoopであるHortonworksの『Hortonworks Data Platform』(HDP)のベータ版が公開されたので、インストールしてみた。
まだ1.1.0-SNAPSHOTなのでバージョン番号はHDInsightプレビュー版から変わっていないが、ファイルの更新日時を見ると新しくはなっているっぽい。
> cd /d D:\arc\java\hadoop\ > msiexec /i hdp-1.1.0-160.winpkg.msi /lv hdp.log HDP_LAYOUT="D:\arc\java\hadoop\clusterproperties.txt" HDP_DIR="D:\hdp" DESTROY_DATA="no"
/i | インストーラー。 |
/lv | インストールログの出力先ファイル。 |
HDP_LAYOUT | clusterproperties.txtの場所。絶対パスで指定する必要がある。 |
HDP_DIR | インストール先のディレクトリー。 |
DESTROY_DATA | 既存のデータを削除するかどうか。初めてインストールする時には関係ないだろう。 |
ベータ版だからインストールが途中で失敗するのかもしれないが、前回から変わってねーじゃんorz
もうインストーラーなんか用意しないで、zipファイルだけ配布してくれりゃ いーのに。
事前準備として、設定内容を書いたファイルを用意しておく必要がある。「2. Configure HDP Installer」を参照。
とりあえず、インストーラーと同じ場所に作ってみた。
内容としては以下の様になる。
# Log directory HDP_LOG_DIR=D:\hdp\hadoop\logs # Data directory HDP_DATA_DIR=D:\hdp\data # Hosts NAMENODE_HOST=localhost SECONDARY_NAMENODE_HOST=localhost JOBTRACKER_HOST=localhost
※ドキュメントにはDatabaseやらHiveやらOozieの設定も書かれているが、使わないので無視。
コマンドプロンプトからHadoop(スタンドアローン環境)を実行してみる。
set HADOOP_HOME=D:\hdp\hadoop-1.1.0-SNAPSHOT set JAVA_HOME=D:\java\jdk1.6.0_37 cd /d %HADOOP_HOME%
D:\hdp\hadoop-1.1.0-SNAPSHOT> bin\hadoop version Hadoop 1.1.0-SNAPSHOT Subversion git@github.com:hortonworks/hadoop-monarch.git on branch (no branch) -r 1cae347546c2c217eb92fccebcfd95708d5ff848 Compiled by jenkins on Sun Feb 24 23:01:41 Coordinated Universal Time 2013 From source with checksum d310736cb6eb90c79aa0946a1c8c4367
D:\hdp\hadoop-1.1.0-SNAPSHOT> bin\hadoop jar hadoop-examples.jar pi 4 1000 〜 Job Finished in 1.41 seconds Estimated value of Pi is 3.14000000000000000000
binの下にhadoop.cmdがあるので、(.cmdファイル
は拡張子を省略できるから)hadoopコマンドがUNIX版Hadoopと同様に使える。
同じく、%HADOOP_HOME%\conf\hadoop-env.cmdというファイルもあるので、各種環境変数はここで指定することが出来る。
環境変数JAVA_HOMEが設定されていないと、以下のようにエラーになる。
D:\hdp\hadoop-1.1.0-SNAPSHOT> bin\hadoop version
Error: JAVA_HOME is not set.
'-classpath' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。
自前でインストールしている標準的なJavaの場所を指定すると…
D:\hdp\hadoop-1.1.0-SNAPSHOT> set JAVA_HOME=C:\Program Files (x86)\Java\jdk1.6.0_37
D:\hdp\hadoop-1.1.0-SNAPSHOT> bin\hadoop version
'Files' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。
Error: JAVA_HOME is incorrectly set.
Please update D:\hdp\hadoop-1.1.0-SNAPSHOT\conf\hadoop-env.cmd
'-classpath' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。
HDInsightの時はパスをダブルクォーテーションで囲めば大丈夫だったが、今回は駄目になっている。ダウングレードじゃん!
D:\hdp\hadoop-1.1.0-SNAPSHOT> set JAVA_HOME="C:\Program Files (x86)\Java\jdk1.6.0_37"
D:\hdp\hadoop-1.1.0-SNAPSHOT> bin\hadoop version
\Java\jdk1.6.0_37"\lib\tools.jar;D:\hdp\hadoop-1.1.0-SNAPSHOT;〜
〜
〜;D:\hdp\hadoop-1.1.0-SNAPSHOT\lib\jsp-2.1\jsp-api-2.1.jar" の使い方が誤っています。
ダウンロードされるファイルがmsiなので簡単にインストールできるかと思ったら、意外とハマったので、エラーについてメモ。
HDInsightプレビュー版を試していた場合はその時のHDPが入っているので、「別のバージョンの製品が既にインストールされています」というエラーダイアログが出る。
HDInsightをアンインストールしておく。(→HDInsightのアンインストール方法)
インストーラーのhdp-1.1.0-160.winpkg.msiをダブルクリックして起動すると、「You need to pass HDP_LAYOUT='your-response-file' on the command line」というエラーダイアログが出る。
インストーラーがmsiファイルなのでダブルクリックすればインストールできるのかと思ったが、引数を指定する必要があるので、コマンドラインから実行しなければならない。
環境変数JAVA_HOMEを正しく(空白入りのパス無し)で設定していないとインストールに失敗する。
ログにメッセージが出ているだけで、コマンドプロンプト上には何も出ない…。
エラー内容 | ログの内容 |
---|---|
JAVA_HOMEが定義されていない。 |
CAQuietExec: Checking JAVA_HOME is set correctly... CAQuietExec: JAVA_HOME must be set CAQuietExec: Error 0x80070001: Command line returned an error. CAQuietExec: Error 0x80070001: CAQuietExec Failed |
JAVA_HOMEに空白が含まれている。(ダブルクォート無し) 「 C:\Program Files (x86)\Java\jdk1.6.0_37 」 |
CAQuietExec: Checking JAVA_HOME is set correctly... CAQuietExec: Files の使い方が誤っています。 CAQuietExec: Error 0x800700ff: Command line returned an error. CAQuietExec: Error 0x800700ff: CAQuietExec Failed |
JAVA_HOMEに空白が含まれている。(ダブルクォート有り) 「 "C:\Program Files (x86)\Java\jdk1.6.0_37" 」 |
CAQuietExec: Checking JAVA_HOME is set correctly... CAQuietExec: JAVA_HOME cannot contain spaces CAQuietExec: Error 0x80070001: Command line returned an error. CAQuietExec: Error 0x80070001: CAQuietExec Failed |
JAVA_HOMEはコマンドプロンプト上でsetコマンドで変えるだけでは反映されないっぽい?
コントロールパネルの「システムの詳細設定」でシステム環境変数に定義したら反映された。
HDP(Hortonworks Data Platform)をアンインストールする方法。[2013-05-26]