• 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
 

 Google Developer Day 2011 Japanに行ってきたので会場の様子をちょっと紹介。

 基調講演やブレイクアウトセッションについては前のエントリで少し書いたのでそちらをどうぞ。

 エントランスロビー。オブジェは正二十面体にGDDの開催地がマッピングされた展開図になってるらしいです。

 デベロッパーサンドボックスのコーナー。芝浦工業大学とco-meetingの説明を聞いてきました。

 NFCを使ったスタンプラリー的なもので、「NFC QUEST」。会場内のいろんなところにNFCのチェックポイントがあって、入場時に配布されたカードでタッチするようになってました。右下の写真はBar Androidの出張店舗。

 こちらはGTUGコーナー。

 Chrome Bookも展示されていました。ちょっとしか触ってないですが、普通のノートPCとすごく違うような印象は受けませんでしたね。

 さらにGoogle TVも。今度docomoから出るGalaxyも展示されてたらしいのですが、私は見てきませんでした。

 こちらはAndroid関連の展示。

 パノラマなGoogle Earth。

 メディアラボとGooglerによるパフォーマンス。メディアラボはGoogleとのコラボでWebサイトへアクセスすることによる観客参加型のセッション。Node.jsとWeb Audio APIを使った仕組みだそうです。Googlerは須藤元気のWORLD ORDERと同じダンスパフォーマンス。ダンス経験者はほとんどいなかったそうですがそうとは思えないなかなかすごいものでした。

 「あなたが書いた自慢のコードは何ですか?GDD会場に刻みつけよう!」ということで参加者が自由にコードを書き込めるボード。右は終了後に会場外で取った夜景です。

 GDD Tシャツ。洗うとすごく色落ちしますw 缶バッジは入場時に一人当たり同じものが10個ずつ配られて、他の参加者と交換してコンプリートしてくださいということでした。参加者間の交流を促すための取り組みですね。私は知らない人に話しかけるのが苦手なので集まったのはこれだけw

 こちらも全員に配布されたzeemoteのBluetooth接続のジョイスティック。Android端末でゲームをやるときに使えます。ゲーム以外にもBluez IMEというIMEアプリを入れるとキーボード入力代わりにつかえるので、プレゼンでスライド送ったりとかにも使えていい感じです。3Dメガネはクロージングで動画を見るのに使う予定だったらしいのですが、Igniteが長引いたことで割愛されてしまったそうで。。。出番ありませんでした。

 全体的な感想としては、入場時の配布物とか昼のお弁当配布とかはもうちょっとスムーズにならないかなぁという感じです。だいぶ並んで待っている時間が長かったので。。
 セッションをしっかり聞こうと思うとバッジの交換とかブースを回ったりとかっていう時間はあんまり取れないのが残念なところですね。
 あとはセッション会場でも電源が取れると良かったんですが。。

posted by Png akanuma on Sat 5 Nov 2011 at 00:10

 Google Developer Day 2011 Japan に行ってきました。

 午前中の基調講演については前のエントリで感想等書いたので、今度は午後のブレイクアウトセッションについて少し。

「App Engine最新機能」

 今回のGDDでは自分としてはクラウド関係の情報に触れたいと思っていたので、主にクラウドトラックのセッションに参加してきました。中でもやっぱりGAEのセッション、「App Engine最新機能」を楽しみにしていました。

 セッションで使われたスライドはこちら。  http://goo.gl/2pNfD

 サイト上のセッション紹介ではMapReduce APIについても紹介がありそうに書かれていたので期待していたのですが、残念ながらセッションでの紹介はありませんでした。
 セッション冒頭で会場にアンケートを取ったところ、GAEを使っている人は6割程度、Java版とPython版が半々、Go版は3名ほどという感じ。自分のイメージではJava版を使っている人が多いと思っていたのですが、Python版を使っている方も多いんですね。

 自分はGAEについてはかなり前にチュートリアルをやった程度で今まで足りなかった機能とか最新機能としてこれが追加されてすごく良くなったとかはまりピンと来ていないのですが、いろいろなAPIがあったり、セキュリティやパフォーマンスの改善が行われていたり、トランザクションがサポートされるようになったり(XG Transaction)と最近追加されている内容だけでも盛りだくさんの様です。
 GAEのチームでは公約はしていないものの毎月リリースをする方針の様で、どんどん改善されていっている様ですね。ただ開発する側は大変だそうですw
 自分としては最近HadoopやAWSを触る機会が多かったので、比較できるように色々調べてみたいと思っています。

 そのほかに参加したセッションとしては、

「クラウド上でイケてるゲームを構築しよう」

 つかわれた資料はこちら

 ゲーム開発をほとんどしたことがない自分としては新鮮でした。PlanNというフレームワークを紹介していて、セッション内でバグレポートを実際に投稿したりw、その場でどんどんゲームの画面を作っていってしまうところがおもしろかったですが、なんと20分ぐらいでセッション終了。。

「今までにないサイトを作る:HTML5 による最新ウェブアプリ」

 Power of Cloud + Rich Front End でWebアプリを構築していくという内容で、「とにかくユーザの参入障壁を低くすることが重要」で、ユーザがサービスを使い始めるまでに必要な手間を極力減らすべきというようなことを言っていました。この点はすごく共感できますね。
 業務でWebアプリ開発をやっていると、サービス提供側としてはいろいろな情報を取りたくなってしまいますが、やっぱりそれではユーザがなかなか使い始めてくれないので、まずは使ってもらうことを意識することが必要ですね。

行っときゃ良かったと思ったセッション

 他のセッションとかぶっていたので出なかったんですが、Chromeのデベロッパーツールのセッションには行っておけば良かったと思ってます。他の方のTweetを見ていてもかなり良かったようで、実はこの一番日々の開発にすぐに活かせる内容だったのではないかと思ってます。

DevQuizの解説

 Igniteの最後にDevQuizの解説がありました。今回のボーダーラインは100.56点。自分は100.8点だったのでやっぱりギリギリ。。危なかった~。

 1400人以上が100点以上を獲得して、出題チームの意図に反して最後のスライドパズルの問題が決戦の場になってしまったようです。スライドパズル5000問のうち4000問目以上はそこまでより一気に難易度が上がっていた様で、解けた人は解けなかった人の1000倍速いアルゴリズムを組んでいたとのことです。自分は力づくのやり方しかできなかったので足元にも及びませんね。。

posted by Png akanuma on Thu 3 Nov 2011 at 13:49

 Google Developer Day 2011 Japan に行ってきました。日本では今年で5回目らしいですが、私は初参加です。

 ここではとりあえず午前中2時間の基調講演について。

 今回のGDDテーマは主に4つ。

  • Android
  • Chrome/HTML5
  • GAE
  • Google+

 基調講演だけでなく、セッションも上記4種+TechTalkという構成になっていました。

 今回一番ホットなトピックはやはりつい先日 IceCreamSandwich がリリースされたAndroidですね。基調講演の中でも一番最初でしたし、午後のセッションの会場もAndroidのセッションは主に一番広いメインホールが割り当てられていました。
 デモでは新しい連絡先アプリにあたるものと、Android Beam, Face Unlockの紹介がありました。新しい連絡先アプリのUIは、WindowsPhoneのメトロUIに近いような印象を受けました。メトロUIは良さそうだと思っていましたが、今後UIはこちら方向へ進んでいくんでしょうかね。
 Androidはどんどん機能が追加されてますます面白いことが出来そうな気がしてきますが、開発側として気になるのはデバイスの乱立への対応なので、そのあたりのいい解決方法が見つかるとみんな幸せになれるんじゃないかと思います。

 あと力を入れている印象が強かったのはChrome/HTML5でした。標準技術であるHTML5 + クラウド + Chromeでリッチなアプリケーションという流れを加速させて行こうという印象でした。一般的にはまだChrome Web Storeからアプリをインストールして使うというのはメジャーではない気がしていますが、シェアが拡大できればおもしろくなっていきそうです。
 また、アプリの構築に使う技術だけでなく、ChromeのDeveloperToolの紹介もありました。今まではあまり深く使っていなかったんですが、これはかなり便利そうです。デモでは難読化されたJavascriptを整形して表示したり、CSSを直接編集して変更履歴の追跡やファイルの上書きというようなことをやっていました。このあたりの内容はすぐに日常の業務に生かせそうですし、相当高機能っぽいということを実感しました。午後にDeveloperToolのセッションがあったのですが他に出たいセッションとかぶっていてあきらめたら、あとでTweetをみるとかなりよさそうだったので、そちらにいけばよかったと後悔。。。DeveloperToolの詳しい使い方を調べてみようかという気にさせられました。

 個人的に今回色々情報収集したいと思っていたのはクラウド関連で、デモでは最近追加された Google Cloud SQL が紹介されました。HadoopのHiveだとHiveQLがMapReduceのジョブに変換されるので、それを意識したクエリにしないと結局遅かったりしますが、Google Cloud SQLはどうなのか気になるところです。パフォーマンスが良いのであれば普通にSQLで書けた方がやっぱり便利なので、その辺調べてみたいですね。
 GAEはAndroidなどと比べると派手さはないと思いますが、Android, Chromeなど様々なサービスの基盤となる部分で、自分としても今注目している分野なので、Googleのクラウドのことをもっと調べてみたいと思います。

 それとGoogle+。自分としては純粋に「おもしろそう」と思えるサービスで、デモでやっていたHangoutのアプリなんかはすごいなぁと思うのですが、カギはやっぱりユーザ数でしょうね。増えてきてはいるようですがまだまだ少ないですし、やはりFacebookという巨人がいるので、すでにそちらでネットワークが構築されてしまっている場合にはなかなかGoogle+に変更しようという気にはなれないと思うので、普及するとしてももう少し時間がかかるかなぁという印象です。

 そして最後にはエンジニアの価値向上のために「Three More Things」ということで3つの言葉が挙げられました。

   1  なにごともエンジニアありき
   2  百聞は一デモに如かず
   3  日本で「イケる!」と思ったら、世界のみんなも同感するかも

 うーむ、大事ですね。うちの会社は比較的エンジニアを大切にしてくれている方だと思っているのですが、もっと、いい意味でエンジニアが幅をきかせることができるようにしていきたいなぁと思います。そしてあんまり考えすぎるより実際に手を動かして示してみるというのも改めて大事だなぁと思いました。

posted by Png akanuma on Wed 2 Nov 2011 at 00:08

Mahout In Actionのコードを実行するために、EclipseでMahoutの開発をする環境を作成してみました。

下記サイトを参考にさせていただきました。
mahout/レコメンドシステムの作り方

前提

  • Java, Maven, Eclipseがインストール済みであること

手順

  1. m2eclipseプラグインのインストール
  2. Maven Projectの作成
  3. M2_REPOの設定
  4. mahout-coreのdependency設定
  5. Javaクラスの作成

それぞれの手順の内容は下記のとおりです。

・m2eclipseプラグインのインストール

Eclipse上からMavenの操作ができるようにするために、m2eclipseというプラグインをインストールします。
Eclipse の Helpメニュー > Install New Software... で下記URLを指定してインストールします。

http://m2eclipse.sonatype.org/sites/m2e

インストール後にはEclipseの再起動が必要です。

・Maven Projectの作成

Eclipse の Fileメニュー > New > Other...
Maven > Maven Project を選択して Maven Project を作成します。

・M2_REPOの設定

MavenのローカルリポジトリのパスをM2_REPOという変数名で設定します。

Eclipse の Windowメニュー > Preferences
Java > Build Path > Classpath Variables
Newボタンをクリックして Name と Value を設定します。私の場合は下記の用に設定しました。

  • Name: M2_REPO
  • Value: /home/h-akanuma/.m2/repository

・mahout-coreのdependency設定

Mahout のライブラリを使用できるようにするために、mahout-core の dependency を設定します。pom.xml の に下記の内容を追加します。

   1     <dependency>
   2        <groupId>org.apache.mahout</groupId>
   3        <artifactId>mahout-core</artifactId>
   4        <version>0.5</version>
   5      </dependency>	
   6      <dependency>
   7        <groupId>org.slf4j</groupId>
   8        <artifactId>slf4j-jcl</artifactId>
   9        <version>1.6.0</version>
  10        <scope>test</scope>
  11      </dependency>

追加後にworkspace内のプロジェクトのディレクトリで下記mvnコマンドを実行して、依存性の解決とソースコードをダウンロードしてEclipseから参照できるようにします。

   1  ~/workspace/ml$ mvn eclipse:eclipse -DdownloadSources=true

・Javaクラスの作成

Mahout In Action のサンプルクラスを作成してみます。

   1  public class RecommenderIntro {
   2    public static void main(String[] args) throws Exception {
   3      DataModel model = new FileDataModel (new File("/tmp/intro.csv"));
   4      UserSimilarity similarity = new PearsonCorrelationSimilarity (model);
   5      UserNeighborhood neighborhood = new NearestNUserNeighborhood (2, similarity, model);
   6      Recommender recommender = new GenericUserBasedRecommender (model, neighborhood, similarity);
   7      List<RecommendedItem> recommendations = recommender.recommend(1, 1);
   8      for (RecommendedItem recommendation : recommendations) {
   9        System.out.println(recommendation);
  10      }
  11    }
  12  }

Ctrl+Shift+O などでクラスパスを解決できればMahoutのライブラリが参照できているので環境としてはとりあえずOKです。
上記Javaクラス内で使用している intro.csv の内容は下記のとおりです。

   1  1,101,5.0
   2  1,102,3.0
   3  1,103,2.5
   4  
   5  2,101,2.0
   6  2,102,2.5
   7  2,103,5.0
   8  2,104,2.0
   9  
  10  3,101,2.5
  11  3,104,4.0
  12  3,105,4.5
  13  3,107,5.0
  14  
  15  4,101,5.0
  16  4,103,3.0
  17  4,104,4.5
  18  4,106,4.0
  19  
  20  5,101,4.0
  21  5,102,3.0
  22  5,103,2.0
  23  5,104,4.0
  24  5,105,3.5
  25  5,106,4.0

Javaクラスと同じパスに保存してEclipse上から実行すると下記のような結果が得られます。

   1  RecommendedItem[item:104, value:4.257081]

※初稿掲載時は実行時に「intro.csvが見つからないと言われてしまう」と書いていましたが、intro.csvをフルパスで /tmp/intro.csv と指定することで解決しました。

posted by Png akanuma on Sun 30 Oct 2011 at 10:06

GTUGのBootCamp 2011 Japan でGoogleAppEngineのセッションに参加してきました。

  • ハッシュタグは #bc2011jp #gae1

 最近HadoopやAWS方面に力を入れ始めているところなので、Googleのサービスの中でもGAEには興味があって、色々勉強したいと思ってます。かなり前にチュートリアルやった程度なのですっかり忘れてますし。。

 最近のGAEの話題としてはやっぱり新料金体系のことですね。場合によっては今までの20~30倍になるという話も聞きましたし。

 セッションでは節約の話の前に前半でまずGAEの概要やGAEがリクエストを処理する仕組みを説明していただいたので、節約の話もわかりやすかったです。

料金体系の変更としては簡単に言ってしまうと、

  • CPU Hours から Instance Hoursへ
  • APIも使用回数で課金(今まではCPU Hoursに含まれていた)

ということです。詳細はここでは説明しませんが。

 節約するには色々大変なことをしないといけないのかなぁと思っていましたが、どうやら設定を変更するだけでもかなり節約できるようですね。デフォルトの設定だとガンガンスケールアウトしていく設定らしいので、そこはしっかりチェックしておく必要がありますね。

 新料金については随分評判が悪いようですが、今までがほぼ無料だっただけに余計に高くなったように感じる部分もあるんではないかと思います。まだちゃんと使ってませんが、クラウド環境としてはかなりよい環境なのではないかと思うので、新料金の値段だけに気を取られるのではなく、節約するところは賢く節約して、有効活用していくのがいいかなぁと思います。個人で手軽に利用できるクラウド環境としてはすごく良いサービスだと思いますので。

IMAG0241.jpg

posted by Png akanuma on Sat 29 Oct 2011 at 22:36

 GTUGのBootCamp 2011 Japan でChrome Extensionのセッションに参加してきました。

  • セッション資料の公開はこちら
  • ハッシュタグは #bc2011jp #chr1

 Chrome Extensionは今年のGDDのDevQuizで初めて触りました。簡単に言ってしまうとChromeを拡張して操作を自動化したりできるわけなんですが、最初に触ったときの印象としてはSelenium に近いものがあるかなという気がしました。

 技術的には使うものはHTML,CSS,Javascriptなので、今までWebアプリを開発してる人なら学習コストはかなり低いんじゃないでしょうか。

 例えば"Hello World!"を表示するだけの簡単なExtensionなら、必要なものとしては、

  • manifest.json

   1  {
   2    "name": "SampleExtension",
   3    "version": "0.1",
   4    "browser_action": {
   5      "default_popup": "popup.html",
   6      "default_icon": "icon.png"
   7    }
   8  }

  • popup.html

   1  <!DOCTYPE html>
   2  <html lang="ja">
   3    <head>
   4      <meta charset="UTF-8">
   5      <style>
   6        p{
   7          font-size: 32px;
   8        }
   9      </style>
  10    </head>
  11    <body>
  12      <p>Hello, World!</p>
  13    </body>
  14  </html>

 とりあえずこれだけです。この例では使ってませんがJavascriptでページの要素を操作したりもできるので、かなりいろんなことがやれると思います。デバッグもデベロッパーツールでWebアプリと同じようにやれます。

 自分としては、Webアプリを開発する時のテスト用ツールとして使えないかなぁと思ってます。開発時には何回もブラウザから同じ操作を繰り返したりするので、そういう作業を自動化したりとかするのに使えないかなーと。

 Chromeは急速にシェアを拡大していて、このままの勢いだと来年中にIEを抜くんじゃないかという話もあるようなので、そうしたら自分で使う便利ツール以外にもExtension開発に力を入れたらおもしろいかなぁとも思いました。

 仕事でブラウザチェックをするときにはChromeはバージョンアップが早すぎて推奨環境から外れてしまってますけどね・・・。

posted by Png akanuma on Sat 29 Oct 2011 at 21:45

 GTUGのBootCamp 2011 Japan でGoogleAppsScriptのハンズオンに参加してきました。

セッション資料はこちらに公開されています。
Twitterのハッシュタグは #bc2011jp #gas1

 本当はGAEのセッションに参加するつもりだったのですが、GAEコーナーはセッションではなくオフィスアワーだったらしく、急遽こちらに参加しました。

 Google Apps ScriptというのはGoogle Apps内で提供されているスクリプト実行環境で、自分の認識としては、マイクロソフトオフィスでいうところのVBA的なものという感じです。VBAをろくに触ったことはありませんが。。Script自体は基本的にJavascriptなので、jsを使える人なら言語自体の学習コストはほぼゼロです。

 例えば値を受け取って消費税分を加算して戻すような関数は下記のような感じでJavascriptそんまんまです。

   1  function calc_tax(no_tax_price) {
   2    var inc_tax_price = no_tax_price * 1.05;
   3    return inc_tax_price
   4  }

 ハンズオンでやったのは、TwitterのAPIからJsonデータを取得・パースしてSpreadsheetに表示したり、Tasksと連携させたりといった内容。 時間内で最後まで終わらせることはできませんでしたが、Javascriptは一応知識がありますし、純粋に楽しくやれました。 皆がTwitterのAPIにアクセスしたのでアクセス数制限にひっかかってエラーになっていたりといくつかハプニングはありましたがw

 GAS自体については確かに便利なので、自分で使うだけのちょっとした便利ツールを作ったりするのにはすごくいいんじゃないかとおもいますが、ExcelのVBAがいろんなところで問題になってたりするように、GASもGoogleAppsにロックインしたものになってしまうので、業務上クリティカルなものを作るために使うべきではありませんね。
 GoogleAppsのサービス自体がいつどうなるかわかりませんし、メンテナンスできる人が多いとも思えないですし。構文はJavascriptと同じですが、例えばSpreadsheetにデータを書き込むなどはやはりSpreadsheetにロックインされたものになります。

   1  var doc = SpreadsheetApp.getActiveSpreadsheet();
   2  var sheet = doc.getSheetByName("hoge");
   3  var start_row = sheet.getLastRow() + 1;
   4  var data = [
   5    [1,2,3], 
   6    [10,20,30]
   7  ];
   8  sheet.getRange(start_row, 1, data.length, data[0].length).setValues(data);

 あとは、エラー内容によっては一度エラーになると二度とスクリプトエディタで開けなくなったりとか、結構致命的なところもあったりします。 その辺もうちょっと整備されてくると、ブラウザ上だけで作業できたり手軽に作れたりと良いところも多いので、使いどころを間違えなければ便利なツールだと思います。

posted by Png akanuma on Sat 29 Oct 2011 at 12:44

CDH3u2ではMahoutもサポートされるようになったのでインストールしてみます。
Mahout Installation - Cloudera Support

CDH3u1からCDH3u2へのアップデートの作業メモはこちら

   1  $ sudo apt-get install mahout
   2  [sudo] password for h-akanuma: 
   3  パッケージリストを読み込んでいます... 完了
   4  依存関係ツリーを作成しています                
   5  状態情報を読み取っています... 完了
   6  以下のパッケージが自動でインストールされましたが、もう必要とされていません:
   7    libfolks-telepathy22 libpanel-applet-4-0 python-opengl libio-string-perl libunity4 diffstat gir1.2-vte-0.0
   8    libindicator3 intltool-debian libedataserverui1.2-11 libclass-accessor-perl patchutils g++-4.5
   9    linux-headers-2.6.38-8 python-gtkglext1 libcamel1.2-19 libapt-pkg-perl libdvbpsi6
  10    libboost-serialization1.42.0 libgcj11 libfolks22 libnet-domain-tld-perl libparse-debianchangelog-perl gettext
  11    libebook1.2-10 libgdata11 libgwibber1 libsub-name-perl libecal1.2-8 libipc-run-perl libstdc++6-4.5-dev
  12    libasm2-java python-rsvg linux-headers-2.6.38-8-generic gir1.2-appindicator-0.1 libedata-cal1.2-10
  13    libedata-book1.2-8 gcj-4.5-jre-lib libio-pty-perl python-wsgi-intercept libunistring0 libunity-misc0
  14    libemail-valid-perl libquicktime1 lintian libgtkglext1 freeglut3 libmatroska3 gir1.2-panelapplet-4.0
  15    gcj-4.5-base
  16  これらを削除するには 'apt-get autoremove' を利用してください。
  17  以下のパッケージが新たにインストールされます:
  18    mahout
  19  アップグレード: 0 個、新規インストール: 1 個、削除: 0 個、保留: 111 個。
  20  42.1 MB のアーカイブを取得する必要があります。
  21  この操作後に追加で 89.7 MB のディスク容量が消費されます。
  22  取得:1 http://archive.cloudera.com/debian/ maverick-cdh3/contrib mahout all 0.5+9.1-1~maverick-cdh3 [42.1 MB]
  23  42.1 MB を 3分 2秒 で取得しました (230 kB/s)                                                                    
  24  未選択パッケージ mahout を選択しています。
  25  (データベースを読み込んでいます ... 現在 261373 個のファイルとディレクトリがインストールされています。)
  26  (.../mahout_0.5+9.1-1~maverick-cdh3_all.deb から) mahout を展開しています...
  27  mahout (0.5+9.1-1~maverick-cdh3) を設定しています ...
  28  update-alternatives: /etc/mahout/conf (mahout-conf) を提供するために 自動モード で /etc/mahout/conf.dist を使います。

apt-getコマンド一発。簡単ですね。

posted by Png akanuma on Wed 26 Oct 2011 at 23:48

 

2011/10/21にCDH3u2がリリースされたのでアップデートしてみました。
CDH3 Installation Guide - Cloudera Support
Upgrading to CDH3 - Cloudera Support

 

   1  $ hadoop version
   2  Hadoop 0.20.2-cdh3u1
   3  Subversion file:///tmp/nightly_2011-07-18_07-57-52_3/hadoop-0.20-0.20.2+923.97-1~maverick -r bdafb1dbffd0d5f2fbc6ee022e1c8df6500fd638
   4  Compiled by root on Mon Jul 18 09:40:07 PDT 2011
   5  From source with checksum 3127e3d410455d2bacbff7673bf3284c

 

現在はCDH3u1がインストールされてます。

 

   1  $ for x in /etc/init.d/hadoop-* ; do sudo $x stop ; done
   2  [sudo] password for h-akanuma:
   3  Stopping Hadoop datanode daemon: no datanode to stop
   4  hadoop-0.20-datanode.
   5  Stopping Hadoop jobtracker daemon: no jobtracker to stop
   6  hadoop-0.20-jobtracker.
   7  Stopping Hadoop namenode daemon: no namenode to stop
   8  hadoop-0.20-namenode.
   9  Stopping Hadoop secondarynamenode daemon: no secondarynamenode to stop
  10  hadoop-0.20-secondarynamenode.
  11  Stopping Hadoop tasktracker daemon: no tasktracker to stop
  12  hadoop-0.20-tasktracker.
  13  Stopping Hadoop HBase master daemon: no master to stop because kill -0 of pid 2271 failed with status 1
  14  hbase-master.
  15  Stopping Hadoop HBase regionserver daemon: stopping regionserver........
  16  hbase-regionserver.
  17  JMX enabled by default
  18  Using config: /etc/zookeeper/zoo.cfg
  19  Stopping zookeeper ... STOPPED
  20  $
  21  $ jps
  22  9534 Jps
  23  $
  24  $ ps aux | grep hadoop
  25  1000 9544 0.0 0.0 5164 788 pts/0 S+ 21:56 0:00 grep --color=auto hadoop

 

Hadoop関連プロセスを停止。

 

   1  $ sudo dpkg -i ダウンロード/cdh3-repository_1.0_all.deb 
   2  未選択パッケージ cdh3-repository を選択しています。
   3  (データベースを読み込んでいます ... 現在 262400 個のファイルとディレクトリがインストールされています。)
   4  (.../cdh3-repository_1.0_all.deb から) cdh3-repository を展開しています...
   5  cdh3-repository (1.0) を設定しています ...
   6  gpg: 鍵輪「/etc/apt/secring.gpg」ができました
   7  gpg: 鍵輪「/etc/apt/trusted.gpg.d/cloudera-cdh3.gpg」ができました
   8  gpg: 鍵02A818DD: 公開鍵“Cloudera Apt Repository”を読み込みました
   9  gpg: 処理数の合計: 1
  10  gpg: 読込み: 1

 

ダウンロードしたパッケージをインストール

 

   1  $ sudo apt-get update
   2  ・・・

 

APTパッケージインデックスを更新

 

   1  $ apt-cache search hadoop
   2  ubuntu-orchestra-modules-hadoop - Modules mainly used by orchestra-management-server
   3  flume - reliable, scalable, and manageable distributed data collection application
   4  hadoop-0.20 - A software platform for processing vast amounts of data
   5  hadoop-0.20-conf-pseudo - Pseudo-distributed Hadoop configuration
   6  hadoop-0.20-datanode - Data Node for Hadoop
   7  hadoop-0.20-doc - Documentation for Hadoop
   8  hadoop-0.20-fuse - HDFS exposed over a Filesystem in Userspace
   9  hadoop-0.20-jobtracker - Job Tracker for Hadoop
  10  hadoop-0.20-namenode - Name Node for Hadoop
  11  hadoop-0.20-native - Native libraries for Hadoop (e.g., compression)
  12  hadoop-0.20-pipes - Interface to author Hadoop MapReduce jobs in C++
  13  hadoop-0.20-sbin - Server-side binaries necessary for secured Hadoop clusters
  14  hadoop-0.20-secondarynamenode - Secondary Name Node for Hadoop
  15  hadoop-0.20-source - Source code for Hadoop
  16  hadoop-0.20-tasktracker - Task Tracker for Hadoop
  17  hadoop-hbase - HBase is the Hadoop database
  18  hadoop-hbase-doc - Documentation for HBase
  19  hadoop-hbase-master - HMaster is the "master server" for a HBase
  20  hadoop-hbase-regionserver - HRegionServer makes a set of HRegions available to clients
  21  hadoop-hbase-thrift - Provides an HBase Thrift service
  22  hadoop-hive - A data warehouse infrastructure built on top of Hadoop
  23  hadoop-hive-metastore - Shared metadata repository for Hive
  24  hadoop-hive-server - Provides a Hive Thrift service
  25  hadoop-pig - A platform for analyzing large data sets using Hadoop
  26  hadoop-zookeeper - A high-performance coordination service for distributed applications.
  27  hadoop-zookeeper-server - This runs the zookeeper server on startup.
  28  hue-common - A browser-based desktop interface for Hadoop
  29  hue-filebrowser - A UI for the Hadoop Distributed File System (HDFS)
  30  hue-jobbrowser - A UI for viewing Hadoop map-reduce jobs
  31  hue-jobsub - A UI for designing and submitting map-reduce jobs to Hadoop
  32  hue-plugins - Plug-ins for Hadoop to enable integration with Hue
  33  hue-shell - A shell for console based Hadoop applications
  34  libhdfs0 - JNI Bindings to access Hadoop HDFS from C
  35  libhdfs0-dev - Development support for libhdfs0
  36  mahout - A set of Java libraries for scalable machine learning.
  37  oozie - A workflow and coordinator sytem for Hadoop jobs.
  38  sqoop - Tool for easy imports and exports of data sets between databases and HDFS
  39  cdh3-repository - Cloudera's Distribution including Apache Hadoop

 

Hadoopパッケージの検索

 

   1  $ sudo apt-get install hadoop-0.20
   2  ・・・
   3  $ hadoop version
   4  Hadoop 0.20.2-cdh3u2
   5  Subversion file:///tmp/nightly_2011-10-13_20-02-02_3/hadoop-0.20-0.20.2+923.142-1~maverick -r 95a824e4005b2a94fe1c11f1ef9db4c672ba43cb
   6  Compiled by root on Thu Oct 13 21:52:18 PDT 2011
   7  From source with checksum 644e5db6c59d45bca96cec7f220dda51

 

Hadoopコアパッケージをインストール。
CDH3u2がインストールされました。
Hadoop各デーモンも同時にアップデートされています。

 

   1  $ sudo apt-get install hadoop-hbase-master
   2  ・・・
   3  $ sudo apt-get install hadoop-zookeeper-server
   4  ・・・
   5  $ hbase shell
   6  11/10/26 22:36:54 WARN conf.Configuration: DEPRECATED: hadoop-site.xml found in the classpath. Usage of hadoop-site.xml is deprecated. Instead use core-site.xml, mapred-site.xml and hdfs-site.xml to override properties of core-default.xml, mapred-default.xml and hdfs-default.xml respectively
   7  HBase Shell; enter 'help<RETURN>' for list of supported commands.
   8  Type "exit<RETURN>" to leave the HBase Shell
   9  Version 0.90.4-cdh3u2, r, Thu Oct 13 20:32:26 PDT 2011
  10 
  11  hbase(main):001:0>

 

HBase, Zookeeper もアップデート。CDH3u2にアップデートされました。

 

   1  $ sudo /etc/init.d/hadoop-0.20-namenode start
   2  Starting Hadoop namenode daemon: starting namenode, logging to /usr/lib/hadoop-0.20/logs/hadoop-hadoop-namenode-h-akanuma-CF-W4.out
   3  hadoop-0.20-namenode.
   4  $
   5  $ sudo /etc/init.d/hadoop-0.20-datanode start
   6  Starting Hadoop datanode daemon: starting datanode, logging to /usr/lib/hadoop-0.20/logs/hadoop-hadoop-datanode-h-akanuma-CF-W4.out
   7  hadoop-0.20-datanode.
   8  $
   9  $ sudo /etc/init.d/hadoop-0.20-secondarynamenode start
  10  Starting Hadoop secondarynamenode daemon: starting secondarynamenode, logging to /usr/lib/hadoop-0.20/logs/hadoop-hadoop-secondarynamenode-h-akanuma-CF-W4.out
  11  hadoop-0.20-secondarynamenode.
  12  $
  13  $ sudo /etc/init.d/hadoop-0.20-jobtracker start
  14  Starting Hadoop jobtracker daemon: starting jobtracker, logging to /usr/lib/hadoop-0.20/logs/hadoop-hadoop-jobtracker-h-akanuma-CF-W4.out
  15  hadoop-0.20-jobtracker.
  16  $
  17  $ sudo /etc/init.d/hadoop-0.20-tasktracker start
  18  Starting Hadoop tasktracker daemon: starting tasktracker, logging to /usr/lib/hadoop-0.20/logs/hadoop-hadoop-tasktracker-h-akanuma-CF-W4.out
  19  hadoop-0.20-tasktracker.
  20  $
  21  $ sudo jps
  22  12799 SecondaryNameNode
  23  12672 DataNode
  24  12552 NameNode
  25  12895 JobTracker
  26  13029 Jps
  27  11574 QuorumPeerMain
  28  12996 TaskTracker

 

Hadoop各デーモンを起動

 

   1  $ hadoop jar /usr/lib/hadoop-0.20/hadoop-0.20.2-cdh3u2-*examples.jar pi 10 10000
   2  Number of Maps = 10
   3  Samples per Map = 10000
   4  Wrote input for Map #0
   5  Wrote input for Map #1
   6  Wrote input for Map #2
   7  Wrote input for Map #3
   8  Wrote input for Map #4
   9  Wrote input for Map #5
  10  Wrote input for Map #6
  11  Wrote input for Map #7
  12  Wrote input for Map #8
  13  Wrote input for Map #9
  14  Starting Job
  15  11/10/26 23:09:21 INFO mapred.FileInputFormat: Total input paths to process : 10
  16  11/10/26 23:09:22 INFO mapred.JobClient: Running job: job_201110262307_0001
  17  11/10/26 23:09:23 INFO mapred.JobClient: map 0% reduce 0%
  18  11/10/26 23:09:42 INFO mapred.JobClient: map 20% reduce 0%
  19  11/10/26 23:09:57 INFO mapred.JobClient: map 40% reduce 0%
  20  11/10/26 23:10:12 INFO mapred.JobClient: map 60% reduce 0%
  21  11/10/26 23:10:14 INFO mapred.JobClient: map 60% reduce 13%
  22  11/10/26 23:10:20 INFO mapred.JobClient: map 80% reduce 20%
  23  11/10/26 23:10:26 INFO mapred.JobClient: map 100% reduce 20%
  24  11/10/26 23:10:29 INFO mapred.JobClient: map 100% reduce 33%
  25  11/10/26 23:10:32 INFO mapred.JobClient: map 100% reduce 100%
  26  11/10/26 23:10:34 INFO mapred.JobClient: Job complete: job_201110262307_0001
  27  11/10/26 23:10:35 INFO mapred.JobClient: Counters: 23
  28  11/10/26 23:10:35 INFO mapred.JobClient: Job Counters
  29  11/10/26 23:10:35 INFO mapred.JobClient: Launched reduce tasks=1
  30  11/10/26 23:10:35 INFO mapred.JobClient: SLOTS_MILLIS_MAPS=113667
  31  11/10/26 23:10:35 INFO mapred.JobClient: Total time spent by all reduces waiting after reserving slots (ms)=0
  32  11/10/26 23:10:35 INFO mapred.JobClient: Total time spent by all maps waiting after reserving slots (ms)=0
  33  11/10/26 23:10:35 INFO mapred.JobClient: Launched map tasks=10
  34  11/10/26 23:10:35 INFO mapred.JobClient: Data-local map tasks=10
  35  11/10/26 23:10:35 INFO mapred.JobClient: SLOTS_MILLIS_REDUCES=49553
  36  11/10/26 23:10:35 INFO mapred.JobClient: FileSystemCounters
  37  11/10/26 23:10:35 INFO mapred.JobClient: FILE_BYTES_READ=226
  38  11/10/26 23:10:35 INFO mapred.JobClient: HDFS_BYTES_READ=2420
  39  11/10/26 23:10:35 INFO mapred.JobClient: FILE_BYTES_WRITTEN=609632
  40  11/10/26 23:10:35 INFO mapred.JobClient: HDFS_BYTES_WRITTEN=215
  41  11/10/26 23:10:35 INFO mapred.JobClient: Map-Reduce Framework
  42  11/10/26 23:10:35 INFO mapred.JobClient: Reduce input groups=2
  43  11/10/26 23:10:35 INFO mapred.JobClient: Combine output records=0
  44  11/10/26 23:10:35 INFO mapred.JobClient: Map input records=10
  45  11/10/26 23:10:35 INFO mapred.JobClient: Reduce shuffle bytes=280
  46  11/10/26 23:10:35 INFO mapred.JobClient: Reduce output records=0
  47  11/10/26 23:10:35 INFO mapred.JobClient: Spilled Records=40
  48  11/10/26 23:10:35 INFO mapred.JobClient: Map output bytes=180
  49  11/10/26 23:10:35 INFO mapred.JobClient: Map input bytes=240
  50  11/10/26 23:10:35 INFO mapred.JobClient: Combine input records=0
  51  11/10/26 23:10:35 INFO mapred.JobClient: Map output records=20
  52  11/10/26 23:10:35 INFO mapred.JobClient: SPLIT_RAW_BYTES=1240
  53  11/10/26 23:10:35 INFO mapred.JobClient: Reduce input records=20
  54  Job Finished in 74.586 seconds
  55  Estimated value of Pi is 3.14120000000000000000

 

Hadoopジョブをテスト実行。
無事成功しました。

 

   1  $ sudo /etc/init.d/hadoop-hbase-master start
   2  Starting Hadoop HBase master daemon: starting master, logging to /usr/lib/hbase/logs/hbase-hbase-master-h-akanuma-CF-W4.out
   3  hbase-master.
   4  $
   5  $ sudo /etc/init.d/hadoop-hbase-regionserver start
   6  Starting Hadoop HBase regionserver daemon: starting regionserver, logging to /usr/lib/hbase/logs/hbase-hbase-regionserver-h-akanuma-CF-W4.out
   7  hbase-regionserver.
   8  $
   9  $ sudo jps
  10  14202 Jps
  11  12799 SecondaryNameNode
  12  12672 DataNode
  13  14134 HRegionServer
  14  13996 HMaster
  15  12552 NameNode
  16  12895 JobTracker
  17  11574 QuorumPeerMain
  18  12996 TaskTracker

 

HBaseのデーモンも起動。
擬似分散モードなのでZookeeperは起動させません。

 

   1  $ hbase shell
   2  HBase Shell; enter 'help<RETURN>' for list of supported commands.
   3  Type "exit<RETURN>" to leave the HBase Shell
   4  Version 0.90.4-cdh3u2, r, Thu Oct 13 20:32:26 PDT 2011
   5 
   6  hbase(main):001:0>
   7  hbase(main):002:0* list
   8  TABLE
   9  courses
  10  scores
  11  2 row(s) in 2.0210 seconds
  12 
  13  hbase(main):003:0>

 

hbase shell の listコマンドで動作確認。
こちらも成功です。

posted by Png akanuma on Wed 26 Oct 2011 at 22:43