UbuntuでHadoop(CDH3)を使ってみたいなー、ってときにJavaを入れようとしてJava Development Kit Installation - Cloudera Supportの言ふとほりにしても残念なことになってしまひます。
Java SE Downloadsによると、実はUbuntuコミュニティからパートナーのアーカイブにJavaパッケージについての重要なお知らせなんてアナウンスが出てゐて、2011年12月にリポジトリから削除されちゃったんですね。
つまり、Webで「Ubuntu sun-java6 インストール」とか検索して出てくるサイトで紹介されてるadd-apt-repository "deb http://archive.canonical.com/ RELEASE partner"
みたいなコードで導入する方法は全滅してしまひました。なむさん。
Ubuntuから呈示された回避策はふたつ。
- openjdk-6-jdk に鞍替へする
- Java SE Downloadsからパッケージを手動で導入
1.は(少くとも2012年1月現在では)割と論外気味で、CDH3はSun Java1.6のみが動作保証となってゐる。たぶん動くんじゃないかとは思ってるけど、Clauderaは推奨しないよーって言ってるらしいので、とりあへずいまのところはパス。
2.はアレだ、めんどい。現実にはローカルに確保しておいてインストールしたいところにコピーして持っていく運用になるのかな。EC2でクラスタを作りたいときはS3上に置いとくのが便利だと思ふ。
でもあれだよね、せっかくUbuntuなんだから、APTの世界で完結したいよねーって思ひもありまして。
で、探してみたらLaunchpadにSun Java6 Community PPAなんてものがありまして。やったー!
でもこのPPAを公開してるCommunity Team to provide regular Sun Java Updatesはメンバーひとりで、作ったきりアップデートもされてない? とまあ怪しさ抜群ではありますが、まあ使へさうなので。
sudo add-apt-repository ppa:sun-java-community-team/sun-java6 sudo apt-get update
これでリポジトリに追加できたはずですね。じゃあ確認してみませうかー。
$ apt-cache showpkg sun-java6-jdk Package: sun-java6-jdk Versions: 6.21dlj-0ubuntu1~lucid1~ppa1 (/var/lib/apt/lists/ppa.launchpad.net_sun-java-community-team_sun-java6_ubuntu_dists_lucid_main_binary-i386_Packages) (/var/lib/dpkg/status) Description Language: File: /var/lib/apt/lists/ppa.launchpad.net_sun-java-community-team_sun-java6_ubuntu_dists_lucid_main_binary-i386_Packages MD5: cb47d4c49fa7317c472613b7010ef9d8 Reverse Depends: sun-java6-source,sun-java6-jdk 6.21dlj-0ubuntu1~lucid1~ppa1 sun-java6-javadb,sun-java6-jdk sun-java6-javadb,sun-java6-jdk 6.21dlj-0ubuntu1~lucid1~ppa1 sun-java6-demo,sun-java6-jdk sun-java6-demo,sun-java6-jdk sun-java6-demo,sun-java6-jdk 6.21dlj-0ubuntu1~lucid1~ppa1 eclipse-jdt,sun-java6-jdk libnb-java3-java,sun-java6-jdk Dependencies: 6.21dlj-0ubuntu1~lucid1~ppa1 - sun-java6-bin (2 6.21dlj-0ubuntu1~lucid1~ppa1) libc6 (0 (null)) libx11-6 (0 (null)) debconf (18 0.5) debconf-2.0 (0 (null)) sun-java6-demo (0 (null)) openjdk-6-doc (0 (null)) sun-java6-source (0 (null)) Provides: 6.21dlj-0ubuntu1~lucid1~ppa1 - java6-sdk java5-sdk java2-sdk java2-compiler java-sdk java-compiler Reverse Provides:
もっといろいろバージョンあるのかと思ったらupdate21しかなくてがっかりな気分もありつつ、CDH3が推奨してるバージョンはupdate20とupdate21の二つなので、まあ今回に限っては願ったり叶ったりですね。
じゃあ今度こそインストールしてみませうか。
sudo apt-get install sun-java6-jdk=6.21dlj-0ubuntu1~lucid1~ppa1
このPPA自体が全然保守されてないんで今後も新しいsun-javaが追加されることはない気がするんですけど、欲しいバージョンはupdate21で将来別のバージョンが追加されても困ることには困るんで、念のためバージョンも指定しておきます。
ライセンス読んだか同意するかみたいな選択肢を選ぶのがめんどいんですけど、どうにか自動化できる方法はないものか……。
これでsun-java6-jdkは入るはずなんで、CDH3を入れるにはCDH3 Installation - Cloudera SupportのTo add the CDH3 repository
の言ふとほりに従ってリポジトリを追加します。
echo deb http://archive.cloudera.com/debian lucid-cdh3 contrib | sudo tee -a /etc/apt/sources.list echo deb-src http://archive.cloudera.com/debian lucid-cdh3 contrib | sudo tee -a /etc/apt/sources.list curl -s http://archive.cloudera.com/debian/archive.key | sudo apt-key add - sudo apt-get update sudo apt-get install hadoop-0.20
こんな感じでCDHのHadoop一式も入ったんじゃないかしら。
$ hadoop version Hadoop 0.20.2-cdh3u2 Subversion file:///tmp/nightly_2011-10-13_20-02-02_3/hadoop-0.20-0.20.2+923.142-1~lucid -r 95a824e4005b2a94fe1c11f1ef9db4c672ba43cb Compiled by root on Thu Oct 13 21:52:18 PDT 2011 From source with checksum 644e5db6c59d45bca96cec7f220dda51
Javaが入ってないと変なメッセージが出てくるはずなんで、トリアーエズたぶんこれでおk。
hadoop jar /usr/lib/hadoop/hadoop-examples.jar pi 2 10000000
とかやって動いたら、スタンドアロンモードでは動作することが確認できますね。たぶん。