Hadoop Advent Calendar 2013の15日目です。
昨日は@s_woolさんの『hueでロードバランシングできるようにしてみる』でした。
Hadoopは基本的にUNIX上で動作しますが、Windowsにも対応して…いたりなかったり^^;なので、ちょっとまとめてみます。
以下、「動作した」というのは、スタンドアローンモードで円周率算出サンプルが動いたことを意味します。
Hadoop0.20の頃はCygwin上で動作させることが出来ました。ドキュメントにもCygwinを使って動作させる方法が書いてあったと思います。
ClouderaのCDH3もHadoop0.20系なので、Cygwin上で動かせます。
ところが、(0.20の後継である)Hadoop1.2.1(Hadoop1系の最新)をCygwin上で動かしたらエラーになりました。
シェルの中にはCygwinかどうかを判別している箇所はあるので、Cygwin対応をしているとは思うんですけどね(以前から残っているだけという可能性も高そうですが)。
ちなみに、さっき見たら(Hadoop0.23の最新である)Hadoop0.23.10が出ていたので試してみたら、あっさりCygwin上で動きました^^;
次に、HortonworksのHDP1はWindows対応を謳っていて、Cygwinを使わず、hadoop.cmd等が提供されています。
が、この「Windows」はWindows Serverの事であり、WindowsXP・Windows7とかは対象外です。Windows ServerでHadoopクラスターを組むことを目的としており、開発環境として使うことは想定していないっぽいです。
無理矢理やったらWindows7にインストールできるし、コマンドプロンプトからちゃんと実行できましたけどね。やっぱり正式対応を宣言してくれないと、他の人には勧めにくいです^^;
こういう状況なので、やっぱり主流はWindowsに興味が無いんだろうなぁ…と思っていたら、Hadoop2系のHadoop2.1.0-betaがWindowsをサポートしたとあって、びっくり!(たぶん、HDPのWindows対応の内容がApache Hadoopにバックポートされたんだと思うんですが)
ところが、喜んで試してみたら、途中でエラーになる><
cmdファイルはあるんですが、その後、中で呼び出しているwinutils.exeが無いんですよねー。他にもDLLファイルが必要そうなんですが、Hadoopのアーカイブに含まれていないし。まぁ、この時点ではベータ版だったので、正式版が出るときには同梱されるだろうと思っていたんですが。
Hadoop2.2.0-GAも同様の状況でしたorz
ozaさんがissue(HADOOP-10051)を作ってくださったので、そのうち対応されると思うのですが、進捗どうですか?>開発者の方々
ちなみにこの件に関連して、stackoverflowにソースをコンパイルしてwinutils.exeやhadoop.dllを生成する方法があるのを見つけましたが、それを皆がやるかというと、どうなの?って気がします。Hadoopのドキュメントに手順としてそう書かれていたら仕方ないかなーとも思うんですが、特に何も書かれていないし。
僕は英語が苦手なんでよく分からないんですが、Hadoop2.2.0-GAの「GA」ってどういう意味なんでしょうね?(苦笑)
あと、CDH4・CDH5(Hadoop2系)は試していませんが、たぶんWindowsは対象外でしょうね。
HDP2(Hadoop2系)も対応バージョンにWindowsは含まれていません。
何故Windowsにこだわるかと言うと、やっぱり日本では、Hadoopを使って開発をする人(SIer)の環境はWindowsが多いと思うからです。
WindowsでHadoopクラスターを組みたいわけではありません。(HDP(というかHDInsight)はWindows Azure向けに開発された感じがするので、きっとAzureはWindows ServerでHadoopクラスターを作っているのだと思いますが)
まぁ、きっとこれは日本独自の話であり、Hadoopを作っている人達は気にしていないでしょうorz
というか、HadoopがWindowsに正式対応してくれないと、Asakusa FrameworkがWindowsで動かせないのです(爆)
AsakusaFWで作ったアプリケーションは、Hadoopのスタンドアローンモードを利用してテストを実行するので。
Cygwinを使って動かすことも頑張れば出来ますが、やはり正式対応して欲しい…。
Hadoopアドベントカレンダー、明日は@nagixさんです。
先にMapRとDrillのネタを書いてnagixさんにネタ被りしないように無茶振りするのは、自分の力では無理です><