• 配下のプロジェクト
    • Hadoop Streaming ... PerlやPHP言語でMap/Reduceプログラムを作成
    • Hadoop Hive ... SQL風言語でMap/Reduceプログラムを作成
    • Hadoop Pig ... MapプログラムはPerl言語など、ReduceプログラムはPig Latinという独自言語で作成
  • 小さいファイルを処理する際には、サーバー間通信・プログラム起動などのオーバーヘッドの方が大きくなる

システム構成

Facebook

eBay

レイヤツール
監視・アラートGanglia, Nagios
ツール・ライブラリHUE/Mobius, UC4, Oozie, Mahout
データアクセスPig, Hive, MQL
MapReduce?Java, Pipes, Scala, Python
Hadoop CoreHadoop, HDFS

Twitter

レイヤツール
Data Products
Data AnalyticsJava ME, Pig, Hive, Oozie
Data InputScribe, Crane
Data FormatsElephant Bird, Hadoop-LZO
HDFS
  • Elephant-birdはlzo圧縮したデータをproto bufで圧縮して送る仕組み。In/OutFormat?, Pig, StoreFunc?など。

関連ツール

S4

Pig

  • PigのDSLは、独特な言語体系を持ち、ステップ単位で集合演算を実行可能

Hive

  • Hiveはデータを構造化し、SQLライクな言語(HiveQL)でデータを扱えるようにすることができる
  • 半構造化されたテキストファイルをタブ区切り、カンマ区切り、正規表現でのグルーピングなどを組み合わせてカラムに分け、テーブル名、カラム名で扱えるようにできる
  • テーブル定義情報はメタストアに保存される
  • メタストアには組み込みDBやMySQLなどが利用可能
  • パーティショニングが使える
  • ユーザ定義関数の作成も可能
  • 基本的に単一のソース(入力データ)とシンク(出力データ)を前提として、各データに抽出系の処理を行い、演算フローをつなげていくという構成
  • Hadoop/Hiveを用いたログ解析基盤の構築
    • 決まった解析をDailyやMonthlyで行う場合はスケジューリングしてHiveジョブを実行し、その結果をサマリデータベース(MySQLを使用しています)に入れ、Web UIからグラフ表示するなどしていつでも確認できるようにしている。

Oozie

  • 米Yahoo! で開発、運用されている Apache Hadoop のためオープンソースのワークフローエンジン
  • HDFSへの操作、Pigスクリプトの実行そしてMap/Reduce処理を含めた複雑なジョブの実行を管理することが可能

Flume

  • Flume is a distributed, reliable, and available service for efficiently collecting, aggregating, and moving large amounts of log data. Being highly configurable and very extensible means that there are many options and thus many decisions that need to be made by an operator.

Scribe

ディストリビューション

適用の仕方

ファイルが小さい場合

構築事例

  • 楽天の事例から見えた「Hadoop」構築の誤解
    • 現実的には、Hadoopを最適に動かすためのハードウェアは相応なスペックが必要になる
    • データレプリカの配置が障害レベルに応じてきちんと分散された状態になるかどうかを意識する必要がある
    • サーバをフル稼働させるために電力使用効率なども真剣に考える必要がある
    • SQLに似た言語を用いてHadoopのMapReduce?処理が記述可能なHiveなどを活用すれば、マーケティング部門のメンバーにも使えるようになるかもしれない
企業プロセッサ数データサイズ
Yahoo40001.5PB
eBay850016PB
NewYorkTimes?
Facebook
Twitter
Apple

可用性向上

0.20系

  • メタデータのバックアップ
    • 0.20系にはBackupNode?の機能がない。自分でNFSマウントとかしてローカルとマウント先の2箇所に書くような仕組みを作る必要あり

0.21系

  • CheckpointNode?
  • BackupNode?

Hadoopを気軽に試す

Amazon Elastic MapReduce?

  • 100台を1時間、1000円程度

Google BigQuery?

環境構築

自動構築

  • kickstart ... OSの自動インストールで使用
  • Puppet ... Hadoop関連の自動インストールで使用

NameNode?の冗長化

HDFS

開発

開発ツール

Hadoop Streaming

運用

チューニング

NameNode?

  • Block Sizeは128Mで運用
  • 1ファイルは平均1.5ブロック(192MB)
  • NameNode?では、(1 file object + 2 block object)で1ファイル約600byteのメモリが必要
    • 1億ファイル時には60GBのメモリがNameNode?に必要
  • 1ファイルのサイズ平均は減少する傾向にある
    • NameNode?のメモリ使用料が更に増加傾向
  • BlockReport?を10分おき、Heartbeatを3秒おきにDataNode?が送信するとする
  • 10000 DataNode?の時、
    • NameNode?は秒間639,713のブロックを処理する必要が有る
    • NameNode?は秒間300,000のハートビートを処理する必要が有る
  • これは、NameNode?のワークロードの約30%にあたる

圧縮

フレームワーク

Asakusa

導入支援サービス

Hadoop用サーバ

Cloudera’s Support Team Shares Some Basic Hardware Recommendations

  • datanodes/tasktrackers
    • 4 1TB hard disks in a JBOD (Just a Bunch Of Disks) configuration
    • 2 quad core CPUs, running at least 2-2.5GHz
    • 16-24GBs of RAM (24-32GBs if you’re considering HBase)
    • Gigabit Ethernet
  • namenode/jobtracker
    • 1GB of namenode memory for every one million blocks stored in the distributed file system
    • With 100 datanodes in a cluster, 32GBs of RAM on the namenode provides plenty of room to grow
    • We also recommend having a standby machine to replace the namenode or jobtracker, in the case when one of these fails suddenly
  • When you expect your Hadoop cluster to grow beyond 20 machines we recommend that the initial cluster be configured as it were to span two racks, where each rack has a top of rack gigabit switch, and those switches are connected with a 10 GigE interconnect or core switch.
  • Light Processing Configuration (1U/machine): Two quad core CPUs, 8GB memory, and 4 disk drives (1TB or 2TB). Note that CPU-intensive work such as natural language processing involves loading large models into RAM before processing data and should be configured with 2GB RAM/core instead of 1GB RAM/core.
  • Balanced Compute Configuration (1U/machine): Two quad core CPUs, 16 to 24GB memory, and 4 disk drives (1TB or 2TB) directly attached using the motherboard controller. These are often available as twins with two motherboards and 8 drives in a single 2U cabinet.
  • Storage Heavy Configuration (2U/machine): Two quad core CPUs, 16 to 24GB memory, and 12 disk drives (1TB or 2TB). The power consumption for this type of machine starts around ~200W in idle state and can go as high as ~350W when active.
  • Compute Intensive Configuration (2U/machine): Two quad core CPUs, 48-72GB memory, and 8 disk drives (1TB or 2TB). These are often used when a combination of large in-memory models and heavy reference data caching is required.

Lindacloud for Hadoop

HP ProLiant SLサーバー

  • HP Cluster Management Utility (HP-CMU)
    • 多数のLinuxサーバを効率的に構築・運用・監視するためのソフトウェア
    • 運用管理機能 ... 複数の演算ノードに対するファイル操作・編集、コマンド発行、ブート、シャットダウン、リブートや電源のオン/オフなどの処理を一括で実行
    • クローン機能 ... 演算ノードのシステムディスクを他のノードに複製することが可能
    • モニタ機能 ... 各演算ノードの負荷状況などさまざまなモニタ項目を、グラフや表で一覧可能

HP DLシリーズ

  • DL2000 ... namenodeとか、マスター系にはこのモデル
  • DL180 G6 ... HDD容量をかせぐならこのモデル

その他


トップ   編集 凍結解除 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2017-04-09 (日) 21:28:04 (2567d)