S-JIS[2013-02-26/2013-05-26] 変更履歴

HDP(ベータ版)

HortonworksのWindows用Hadoop(ベータ版)のインストールおよび動作確認。
HDP正式版


概要

Windows用のHadoopであるHortonworksの『Hortonworks Data Platform』(HDP)のベータ版が公開されたので、インストールしてみた。

まだ1.1.0-SNAPSHOTなのでバージョン番号はHDInsightプレビュー版から変わっていないが、ファイルの更新日時を見ると新しくはなっているっぽい。


Windows7へのインストール

  1. インストーラー(hdp-1.1.0-160.winpkg.msi)をダウンロードする。
    1. Hortonworksのダウンロードページを開く。
    2. 「HDP FOR WINDOWS」欄の一番下にある「Download + Install」をクリックして、「HDP 1.1 for Windows」ページを開く。
    3. 「Download the MSI」をクリックするとhdp-1.1.0-160.winpkg.msiがダウンロードされる。
      • とりあえず「D:\arc\java\hadoop\」に置くことにする。
  2. 事前準備
  3. インストール作業を行う。(「3. Install from the MSI」を参照)
    1. コマンドプロンプトを起動する。
    2. インストーラーを実行する。
      > 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 既存のデータを削除するかどうか。初めてインストールする時には関係ないだろう。
    3. メッセージは何も出ず終了するが、インストールは失敗する。(ログを見てもよく分からない(苦笑))
      「D:\HadoopInstallFiles\HadoopPackages」が出来ていればひとまず先へ進められる。
  4. 後は手動で解凍する。
    1. D:\HadoopInstallFiles\HadoopPackages\hdp-1.0.1-winpkg.zip を適当な場所に解凍する。
    2. その中のresourcesディレクトリーのhadoop-1.1.0-SNAPSHOT.winpkg.zip を適当な場所に解凍する。
    3. その中のresourcesディレクトリーのhadoop-1.1.0-SNAPSHOT.zip を解凍し、D:\hdpの下に置く。
      D:\hdp\hadoop-1.1.0-SNAPSHOTが出来ることになる。HADOOP_HOMEはここを指定する。

ベータ版だからインストールが途中で失敗するのかもしれないが、前回から変わってねーじゃんorz
もうインストーラーなんか用意しないで、zipファイルだけ配布してくれりゃ いーのに。


clusterproperties.txt

事前準備として、設定内容を書いたファイルを用意しておく必要がある。「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を正しく(空白入りのパス無し)で設定していないとインストールに失敗する。
ログにメッセージが出ているだけで、コマンドプロンプト上には何も出ない…。

エラー内容 ログの内容
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]

  1. コントロールパネルの「プログラムのアンインストール」を選択する。
    1. 「Hortonworks Data Platform 1.1.0 for Windows」をアンインストールする。
  2. 「D:\HadoopInstallFiles」を削除する。
  3. インストールした場所(自分の場合は「D:\hdp」)を削除する。

Hadoop目次へ戻る / 技術メモへ戻る
メールの送信先:ひしだま