SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Amazon Elastic MapReduceで手軽に始めるビッグデータ解析

Elastic MapReduceとHiveの概要と利用準備

Amazon Elastic MapReduceで手軽に始めるビッグデータ解析(1)

  • X ポスト
  • このエントリーをはてなブックマークに追加

 この連載ではプログラマーを主な対象として、クラウド上でビッグデータを扱うシステムを開発するための最低限の知識とノウハウを提供することを目的としています。第1回ではHadoopという技術の概要、クラウドとHadoopの親和性の高さ、そして次回からの環境準備を中心に解説します。

  • X ポスト
  • このエントリーをはてなブックマークに追加

対象読者

  • ビッグデータを使ったアプリケーション開発に興味を持っている人
  • Java、PHP、Ruby、Pythonなど、一般的なプログラミング知識とSQLを理解している人

必要な環境

  • Windows、Macなどインターネットが利用可能なOS環境

クラウドでHadoopを使うメリット

 昨今ビッグデータ格納の基盤としてHadoopを使う事例が増えてきています。大規模なストレージを必要とせずにビッグデータを扱える環境は非常に魅力的です。

 HadoopはGoogleの検索エンジンの基盤として開発されたGoogle File SystemおよびMapReduceの技術仕様を元に開発されたオープンソースソフトウェアです。ファイルを複数のサーバに冗長化した上で分散配置するHDFS(Hadoop Distributed File System)と、分散配置されている大量データから必要なデータの抽出や分解を行うHadoop MapReduceにより構成されています。

 現在、Hadoopはクレジットカード会社の売上データの解析や、国立国会図書館が提供している検索サービスのインデックス作成、大手ECサイトのリコメンドデータの生成など、少なくとも億単位以上のデータを対象とする分析処理の基盤として使われています。

Hadoop運用の課題

 Hadoopは特性上、最小でも数台~数十台規模のサーバを必要としますが、オンプレミス環境下でその規模のサーバを運用するには、導入および運用コスト(人的作業コスト含む)ともに相応のものになります。

 またHadoopのMapReduceを利用した分散処理は、バッチ駆動型の仕組みとなるため常時起動されているわけではなく、Hadoopクラスタを構成する各サーバのリソースに「遊び時間」が発生することは避けられません。

 以上のような理由から、スタートアップベンチャーや新規事業ではなかなかオンプレミス環境にHadoopを展開させるのが難しいというのが実情でした。

オンプレミスでの課題をAmazon Elastic MapReduceで解決

 前述のような課題は、必要な時に必要な分だけ自由にサーバリソースを利用できるパブリッククラウド上にHadoopを乗せることで大きく改善することができます。特にAmazon Web Services(AWS)Amazon Elastic MapReduce(EMR)というサービスを使えば、Hadoopがすでにセットアップされた状態で利用することができ、前述したようなオンプレミスでHadoopを展開させる際に発生するリスクを大きく低減させることができます。EMRは2011年4月より東京リージョンでも利用できるようになっており、日本国内から低レイテンシで利用できます。

Hadoopをサポートする拡張ツール

 Hadoopに格納したデータから目的のものを取り出すには、mapperとreducerという処理を記述しアプリケーションから実行する必要がありますが、Hadoop自体はJavaで記述されたソフトウェアであるため、普段Javaを利用していない開発者の方にとってはやや敷居が高く感じられるかもしれません。

 そのため、HadoopではMapReduce操作を簡単にするためのさまざまなツールが有志により開発されています。EMRはその中で下記のツールを利用可能です。

表1.EMRでサポートされているHadoop拡張ツール
ツール 説明
Streaming 任意の言語での標準入出力を介したプログラムで処理を記述する
Hive HiveQLという言語を用いて処理を記述する
Pig Pig Latinという言語を用いて処理を記述する
Custom JAR HadoopそのものをJavaで記述して拡張する
図1.EMRの構成
図1.EMRの構成

 いずれも実装としては、Hadoopよりもユーザに近い上位レイヤをサポートする仕組みとなっています。

次のページ
HadoopのMapReduce操作をより簡単にするHive

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
この記事の著者

津久井 浩太郎(ツクイ コウタロウ)

ヴェルク株式会社 取締役/アーキテクト。ITコンサルティングファーム、ネット広告系SIerにて主にインフラからミドルウェアを中心としたアーキテクチャの設計、構築、運用に関わる。ヴェルクではクラウドやビッグデータを最大限に活用した受託開発や独自の商品開発に注力。同時に社団法人クラウド利用促進機構(CU...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/6571 2012/05/17 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング