DT日記

家を離れた自宅警備員の日記

Ubuntu 10.04 LTSにsun-java6-jdk+CDH3をインストール

UbuntuHadoop(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から呈示された回避策はふたつ。

  1. openjdk-6-jdk に鞍替へする
  2. Java SE Downloadsからパッケージを手動で導入

1.は(少くとも2012年1月現在では)割と論外気味で、CDH3はSun Java1.6のみが動作保証となってゐる。たぶん動くんじゃないかとは思ってるけど、Clauderaは推奨しないよーって言ってるらしいので、とりあへずいまのところはパス。

2.はアレだ、めんどい。現実にはローカルに確保しておいてインストールしたいところにコピーして持っていく運用になるのかな。EC2でクラスタを作りたいときはS3上に置いとくのが便利だと思ふ。

でもあれだよね、せっかくUbuntuなんだから、APTの世界で完結したいよねーって思ひもありまして。

で、探してみたらLaunchpadSun 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 SupportTo 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

とかやって動いたら、スタンドアロンモードでは動作することが確認できますね。たぶん。