インソースマーケティングデザイン
2014.09.26 システム
[ビッグデータ]Hadoopという技術
こんにちは。エンジニアの高田です。
前回「ビッグデータって何だろう?」ということで、「ビッグデータ」について紹介しました。
「ビッグデータ」の特徴は、「多量性」「多様性」「リアルタイム性」でしたね。
以前に比べて、現在は大量のデータを収集しやすい状況にあります。目的は収集ではなく、
そのデータをどのように付加価値を付けて利用していくかというところにあるようです。
最近よく「データマイニング」という言葉を目にしますが、
大量のデータを解析し、相関関係やパターンなどを探し出す技術、
まさにこのことですね。
そこで今回は、ビッグデータを処理するための技術「Hadoop」について簡単に紹介します。
本当は、何の知識もないまま…Facebookで開発されたビッグデータ処理も可能な
分散SQLエンジン「Presto」を紹介しようと思っていたのですが、
調べてみると分からない言葉が次々と。。。
Facebookのデータ・ウェアハウスのデータたちはHadoop/HDFSベースのコンピュータ・クラスターに保存されているそうで、まずは「Hadoop」って何なの?ってところから。
「HadoopはファイルシステムであるHDFS(Hadoop Distributed Filesystem)及び分散処理のフレームワークであるMapReduceから構成されます。」
ん~何のことやら(笑)
今うちで作っているWebサイトといえば、1台のサーバで事足ります。
多くても2~3台です。アクセスログの集計もそう時間のかかるものではありません。
しかしサイトの規模が大きくなってくると集計が1日では終わらなくなってしまうかもしれません。
そんな話を社内でも最近したような気がします。
そんなとき、PCの数を増やして処理性能をあげる方法があります。
(スケールアウトというそうです。)
しかし、処理性能があがっても台数が増えることによって問題もでてきます。
「データの共有」「資源の効率的な利用」「PCの故障」「管理の手間」「プログラミングの手間」などです。
これらの問題を解決するために登場したのが「Hadoop」です。
Hadoopには大きく分けて、データを複数のPCに分散させる「Hadoop分散ファイルシステム」(HDFS)と、1つの大きな処理(ジョブ)を小さな単位に分割して並列実行する「MapReduce実行システム」という2つの側面があります。
Hadoopは、これらの2つの側面が互いに絡み合って動いています。
参考にしたサイトにHdoopとRDBを比較してこんな表現がされていました。
「Hadoopはよくデータベースと比べられます。Hadoopはシーケンシャルアクセスによるバッチ処理に特化した作りになっており、インデックスが無い為にランダムアクセス機能はサポートしていない点で違います。Hadoopが原材料の倉庫(HDFS)であり、加工や製造を行う(MapReduce)のに対し、データベースは加工済みの製品を整然と管理したお店の陳列棚で、SQLがベテランの店員というイメージが近いかもしれません。」
ほぉ~。
この技術がFacebookやTwitter様々な場面で利用されています。
HadoopのHDFSとMapReduceが具体的にどのように活用されているのかは、
まだわかりませんが、今回はこの辺で終わりにします。
ではまた。
<参考:Hadoopって何がすごいの>
<参考:ビッグデータとHadoop>