SEの技術blogです。GCPあたりが好きです。>5分で分かるHadoopまとめ(初めての人用)2014/04/21はじめてのHadoopという本を読んでみました。他にもネットなどでも色々情報収集してある程度分かってきたのでまとめてみます。[tmkm-amazon]4774153893[/tmkm-amazon]Hadoopとは並列処理のためのアーキテクチャ(およびそれを構築するソフトウェア)です。フレームワークの側面も持っていますし、分散ファイルシステムやDBという側面も持っています。グリッドコンピューティングと近いです。グリッドコンピューティングはインターネット越しというイメージがあると思いますが、Hadoopは絶対ではないですがLANで完結しているイメージです。Hadoopの結果を見たり利用するためにインターネット越しにアクセスすることは十分あると思いますが、並列処理する部分はLANが多いと思います。Hadoopで何ができるのかビッグデータを分析できます。従来、1時間以上かかっていた処理が数分で実行できるようになります。その分、ハードウェアも沢山必要になりますが。Hadoopでより具体的に何ができるのか数億行のファイル、数百万ファイル、数億レコードという膨大なデータを複数のコンピュータによって分散処理することで分析等が行えます。結果はマーケティングとか経営判断の資料とかに使えると思いますし、アプリケーションの1コンテンツ(レコメンド、ランキング)としても使えます。いう事例は多いですね。Hadoopの仕組み本質は以下の2点です。HDFS(分散ファイルシステム)MapReduce(分散処理およびその結果の統合処理)HDFSという仕組みでファイルを複数のコンピュータの何台かに分散させます(レプリケーション)。これによってどれかが死んでも生きている場所からデータを取り出せます。MapReduceでは実際に処理を行います。HDFS上の100万行のファイルを20台で分散処理して、ファイルに登場する単語の数を結果として生成する、というようなことを行います。このMapReduceが分析処理の要です。どのような分析をするかはMapReduce次第です。通常MapReduceはプログラミングによって作成する必要があります。Hadoopシステムの構築と運用Hadoopは複数のコンピュータ(Linuxサーバ)を用意して構築します。複数のコンピュータを接続する為のネットワークを用意Linuxサーバを複数台用意Hadoopをインストールそれぞれのサーバの役割を決めて、各Hadoopプロセスを必要なものだけ稼働させる(プロセスにはいくつか種類があります。MasterとSlaveみたいな。結果を目的のために利用する(マーケティングやWebコンテンツなど)実態は分かりませんが、Hadoopは1社で1システムあれば十分かも知れません。MapReduceを切り替えさえすればHadoop環境は1つで良いため、1社に1つあれば良いでしょう。HDFSにはネームスペースの概念がありますので、製品や用途ごとにネームスペースを分けていればHDFS上のファイルがごちゃごちゃになることは無いかと思います。Hadoopはスケールアウトの思想ですので、製品や目的が増えてきた場合はその分コンピュータを増やせば良いかと思います。(気軽に増やしたり停止して節約できるAWSなんかは相性が良いでしょう)ですが、MapReduceの処理次第で必要なCPU数、速度、メモリ量は変わりますので、製品ごとにHadoop環境を分ける方が安全かもしれません。実はプログラミングしなくても使えるHadoopで分析を行うときは、その分析処理の本体であるMapReduceを独自にプログラミングする必要があります。必要という訳ではありません。HadoopはデフォルトでいくつかのMapReduce実装を持っていますので、これが用途にマッチすればそのまま使えます。他にもHiveやPigを利用する手段があります。これらはデータをSQLに近い形で操作し、分析するHadoop関連製品です。分析したい10億行のCSVファイルをHiveを使ってテーブルのような形式へ落とし込み、そこに対してHiveでSQLで操作するということができます。Hiveを使ってSQLのクエリを発行すると、それが自動でMapReduceに変換され、並列実行されるという仕組みです。BYが遅すぎてやばい。使えない・・・」というようなシーンであればHiveで事足りるかもしれません。プログラミングは必要ありません。MapReduceを独自に実装した方が柔軟性は高いのですが。BYが遅い点をHadoopによって解決しています。SlideSharePigを利用してMapReduceを作らずに運用されています。BlogHadoop導入によって何倍速くなったかを示されています。MapReduce周辺について詳しく解説されています。関連製品多し実はプログラミングしなくても分析はできるただし、MapReduceを独自に作った方が柔軟性は高い以上です。端折ってますが、お役に立てば幸いです。ご指摘ありましたらお願いします。コメントをキャンセルメールアドレスが公開されることはありません。...Python標準csvで改行ありエスケープありCSVを読み込むすごく些細なことなのにつまづいてしまったのでメモ。誰かの役に立てば良いです。仕事で多言語対応(i18n対応)をしたのですが、なかなか苦労しました。SEの技術blogです。GCPあたりが好きです。