• 検索結果がありません。

Linux勉強会 ~Hadoopと高可用性~ Hadoop入門

N/A
N/A
Protected

Academic year: 2021

シェア "Linux勉強会 ~Hadoopと高可用性~ Hadoop入門"

Copied!
36
0
0

読み込み中.... (全文を見る)

全文

(1)

Linux勉強会 ~Hadoopと高可用性~

Hadoop入門

日本ヒューレット・パッカード株式会社

ESSNプリセールス統括本部

エンタープライズサーバー・ストレージ技術第1本部

Linuxソリューション部

Cloudera Certified Administrator for Apache Hadoop'CCAH(認定技術者

古賀 政純

Twitter: @masazumi_koga

(2)
(3)

背景:データ処理のニーズの変化

定型処理

非定型処理

• 人間が介在しない完全な自動化が可

• 厳密さが求められる

• トランザクション管理

• データ量は多くても

Gbytesオーダー

• 給与計算、売上集計、伝票処理など

• 人間の介在が必要

• 厳密さよりカバレッジ重視(データ量が

重要

)

• データ量はTbytes~Pbytesオーダーにな

り得る

• スケールアウトによる性能向上

• 統計データ作成、検索、データ・マイ

ニングなど

RDBMSが得意とする領域

RDBMSが苦手とする領域

従来からの定型処理に加え近年では、非定形処理が必要になってきた。

(4)

Hadoopが必要か?

• ペタ級のデータ処理

–テラ級ならRDBMSで処理可能

項目 RDBMS Hadoop データサイズ ~テラ ペタ 想定データ操 作 小さなデータ 参照/更新 大きなデータ 挿入/参照 レスポンス 速い 遅い スケールアッ プ・アウト せいぜい1ケタ 台のサーバ 数十台~数千 台 データ構造 構造化データ 準構造化デー タ

レスポンス長い

DWH

アプライアンス

RDBMS

(5)

Hadoop開発の歴史的経緯

GoogleFileSystemやMapReduceなどと呼ばれる分

散処理技術を独自に開発。ソースコードではなく、そ

の仕組みを論文として発表'

2004年(

膨大なデータに対する検索処理で課題を抱えていた

Yahoo Inc.は、著名なエンジニアであるDoug Cutting

氏を中心に上記論文を元に、

Hadoopを開発。

Apache Hadoopプロジェクトとして公開され、オープ

ンソースソフトウェアとして開発が進む。

米国を中心に利用が進み、

Hadoop自

体も様々な改良が加えられる。

日本でも導入事例

が増えつつある。

(6)

なにを

Hadoopに期待するか

– 過去できない/できなかったことの実現

−ペタ級のデータ処理

従来方式との差がなにか

実感できるようなことがで

きないか

やっぱり、データ

検索

/集計だよね

レポートのたびに

Javaで開発する

のは

(7)

業務系

ITにおける、RDBMS、DWH

および

Hadoopの位置づけ

RDBMS

Oracle / MySQL

MS SQL Server など

データウェアハウス

RDBMS/DWH専用機

トランザクション処理

Hadoopクラスタ

データ分析

BI

データ蓄積

非構造型データ

膨大な過去データ

複雑かつ大量のデータを高速に分析

(8)

結局、

Hadoopとは?

(9)
(10)

HDFSのデータ保持、管理概要

Name Node

Master Node

1 2 3 4

ブロック

1

4

クライアント

データ

4

1

1

4

2

2

2

3

3

3

問い合わせ

メタデータ管理 DataNode 状態監視 ブロック管理

1

4

2

3

DataNodes

Name Nodeを利用して、 データをブロックに分割 し、DataNodeに配置 1つのブロックを複 数の、DataNodeに 複製'複製数:3(

(11)

HDFSを体験しよう:

1(巨大なファイルをHDFSにコピー&様子を見る

•HDFSに置きたいファイルを生成する。今回はファイルサイズが10GBのファイルを生成

する。

# dd if=/dev/zero of=/tmp/file10GB bs=1024M count=10

# ls -lh /tmp/file10GB

-rw-r--r-- 1 root root 10G 3月 1 02:41 /tmp/file10GB

コピー元の巨大ファイル:

/tmp/file10GB

分散

FS

HDFS

(12)

HDFSを体験しよう:

1(巨大なファイルをHDFSにコピー&様子を見る

HDFS上に保存用のディレクトリを生成する。Cloudera版Hadoopにおいて、

HDFSの操作は、アカウントhdfsで行う。

# su – hdfs

$ whoami

hdfs

$ hadoop fs –mkdir /user/hdfs/BIGFILEDIR/

Name Nodeの/tmpに作成した10GBのファイルfile10GBをHDFSにコピーする。

$ hadoop fs -put /tmp/file10GB /user/hdfs/BIGFILEDIR/

上記コマンドを実行することで、データノードで構成されている

HDFSに、目的のファイル

(13)

HDFSを体験しよう:

1(巨大なファイルをHDFSにコピー&様子を見る

•WebブラウザでHDFSの使用量を確認する。Webブラウザで、Name NodeのIPアドレス

またはホスト名に

50070ポートでアクセスする。

Webブラウザをリロードすると、「DFS Used」の値が変化することが わかる。 上記例は、10GBのファイルのコピー途中での様子 '4GBあたりまでコピーした状態で画面ダンプを取得した( 10GBのファイルのコピー操作を 行う前の段階。 「DFS Usedは1.41MB」である。

HDFS上にファイルfile10GBがコピーされていることを確認する。

$ hadoop fs -ls /user/hdfs/BIGFILEDIR/ Found 1 items -rw-r--r-- 2 hdfs supergroup 10737418240 2011-03-01 02:51 /user/hdfs/BIGFILEDIR/file10GB

(14)

HDFSの基礎

•前提となる考え

•構成されるノードは障害率が高いという前提で進める。

•安価なサーバーはいつダウンしてもおかしくないという考え。

•ファイルサイズ

•HDFSで取り扱うファイルは

TB~PBクラス

•一つのファイルサイズが巨大

•アクセス

•ファイルはライトワンス。

•大規模なストリーミングリード。

•ランダムアクセスはしない。

•性能、特徴

•安定したスループットを目的とする。

•低レイテンシではない

ブロック'128MB( ブロック'128MB( ブロック'128MB( ブロック'128MB( ブロック'128MB( ブロック'128MB( ブロック'128MB( ブロック'128MB(

HDFSのブロック書き込み例

ブロック'128MB( ブロック'128MB( ブロック'128MB( ブロック'128MB( ブロック'128MB( ブロック'128MB( ブロック'128MB( ブロック'128MB( HP ProLiant DL2000

(15)
(16)

Map処理とReduce処理の例:

文字例のカウントを行う

<Hello, 1回出現> <World, 1回出現> <Bye, 1回出現> <World, 1回出現> <Hello, 2個> <World, 2個> <Bye, 1個> <Bob, 1個>

出力

Bob 1

Bye 1

Hello 2

World 2

Map

Reduce

<Hello, 1回出現> <Bob, 1回出現>

入力

Hello World Bye World Hello Bob Hello World Bye World Hello Bob

Map

テキストの

1行目

テキストの

2行目

処理対象となるログデータ等を入力にする。 Map処理: ログデータを行毎に処理して、検索結果をキーと値の組にする Reduce処理: 同じキー'文字列(を集計し、結果を出す。

(17)

Map Reduceを体験しよう:

2(テキストファイルの単語数をカウントする

•対象のテキストファイル例:

/usr/share/doc/glibc-2.5/以下のテキストファイル「NEWS」 調査対象となる

入力ファイル:/usr/share/doc/glibc-2.5/NEWSファイル

Map Reduce

the 315 * 314 NEW: 313 and 192 C 173 to 152 ISO 149 for 147 9x 141 of 135 The 127 by 115 … …

得たい結果:

単語数のリスト

GNU C Library NEWS -- history of user-visible changes. 2006-09-29

Copyright (C) 1992-2002,2003,2004,2005,2006 Free Software Foundation, Inc.

See the end for copying conditions.

Please send GNU C library bug reports via <http://sources.redhat.com/bugzilla/> using `glibc' in the "product" field. ^L

Version 2.5

* For Linux, the sorting of addresses returned by getaddrinfo now also

handles rules 3, 4, and 7 from RFC 3484. I.e., all rules are handled.

Implemented by Ulrich Drepper.… …

… …

(18)

HDFSに配置したINDIR/NEWSファイルをHadoopのMap Reduceで分散処理を行う $ cd $HOME; pwd

/usr/lib/hadoop-0.20 $ whoami

hdfs

$ hadoop jar contrib/streaming/hadoop-streaming-0.20.2-CDH3B4.jar ¥

-file bin/map.py -mapper bin/map.py -file bin/red.py -reducer bin/red.py ¥ -input INDIR -output OUTDIR1

...

11/03/01 01:48:08 INFO streaming.StreamJob: map 0% reduce 0% 11/03/01 01:48:10 INFO streaming.StreamJob: map 50% reduce 0% 11/03/01 01:48:11 INFO streaming.StreamJob: map 100% reduce 0% 11/03/01 01:48:17 INFO streaming.StreamJob: map 100% reduce 33% 11/03/01 01:48:19 INFO streaming.StreamJob: map 100% reduce 100%

11/03/01 01:48:20 INFO streaming.StreamJob: Job complete: job_201102281749_0005 11/03/01 01:48:20 INFO streaming.StreamJob: Output: OUTDIR1

$ hadoop dfs -ls Found 2 items drwxr-xr-x - hdfs supergroup 0 2011-03-01 01:10 /user/hdfs/INDIR drwxr-xr-x - hdfs supergroup 0 2011-03-01 01:48 /user/hdfs/OUTDIR1 •出力するディレクトリにOUTDIR1を指定したので HDFS上にOUTDIR1が生成されていることがわかる Hadoop Streamingを利用することで、Javaで記述しなくても、PythonやPerlなどの スクリプトでMapReduceを実現できる。

Map Reduceを体験しよう:

2(テキストファイルの単語数をカウントする

(19)
(20)

データウェアハウスとして

Hive

– Facebookのジョブの95%は、Hive

– 非常に早く書くことができ、普通は約10分しかかからない

– HiPalというwebベースのツール

Hiveを使うビジネスアナリストが、簡単にクエリを書ける

•データウェアハウスにロードされている20000のテーブルを調べることが

できる

•'HiPalは、公開されていない(

– 日に1回のバッチ処理からリアルタイムなクエリにずっと近いも

のに変化

– 最も速いクエリを1分以内で返すことができるシステムを開発

することが、全く新しい領域のアプリケーションを切り開くキー

となる

(21)

FacebookのHadoopの現状

– Facebookは、引き続きHadoop技術に投資

– 彼らが使っているHive (彼らが始めた) や HBase のよ

うなオープンソース プロジェクトに貢献

– コンピューティング クラスタで、大規模なデータを処理

– Hadoopとのデータベースの統合

– 高可用性、低遅延なアプリケーションをサポートする

アーキテクチャを有している。

(22)
(23)

Hadoopのシステム構成考慮点:

小規模から大規模クラスタ構成'

1000ノード(へ

Hadoop管理ノード: •Hadoop Name Node •Hadoop Job Tracker

Lig hts -O ut10 0 HP ProLiant SL170s G6 ラック HP ProLiant SL170s G6 x1 CPU: 2x QC Xeon Mem: 18GB Disk : 500GB x 4 SAS Lig hts -O ut10 0 ラック コアスイッチ 'アグリゲーション( コアスイッチ 'アグリゲーション( ネームノード'HA( セカンダリ・ネームノード ジョブ・トラッカー ジョブ・トラッカーの フェールバック先 ジョブ・トラッカーの フェールバック先 HP CMU/HP SIM Nagios/Ganglia

10GbE 10GbE 10GbE

管理ノード・ラック •Name Nodeは大容量メモリ で構成: データノードのデー タ量が大きくなると、ネーム ノードのメモリ中のメタデータ が大きくなるため。 •Name NodeはHA化 •Heartbeat + DRBD

(24)

HadoopにおけるRack Awareness構成例

Rack2

Rack3

– エンクロージャ障害、ラック障害に対応させるためのHadoopの機能

– レプリカはラックを跨いでHDFSに保存される

– NameNodeはラックを跨いでHA化

Rack1

Client

Client

Block 1 BLock 2 Block 3

ファイル

処理

ファイルは、

ブロックに分割さ

れる

Block 1 BLock 2 Block 3 Block 1 BLock 2 Block 3

レプリカ:

3

Rack

Awareness:

ブロックはラック

をまたいでレプリ

ケーションさせる。

所属するラックま

たはエンクロー

ジャを

IPアドレス

の範囲などで区

分けし、

Hadoop

に設定。

(25)

Hadoopのシステム構成考慮点:

Nagiosを使ったHadoopクラスタの監視

Data nodeのtasktrackerのポート監視を行う NagiosプラグインをNagiosにインストール Data nodeのポート監視を行う NagiosプラグインをNagiosにインストール HDFSのディスク使用量を監視する Nagiosプラグインcheck_hadoop_metrics をインストール

(26)

Hadoopのシステム構成考慮点:

Gangliaを使ったHadoopクラスタの監視

Name NodeとData Nodeのマルチキャスト アドレスは異なる値にすることが望ましい /etc/sysconfig/network-scripts/route-ethXの値 /etc/hadoop/conf.XXXにあ るhadoo-metrics.properties ファイルにDFSに関する マルチキャストアドレスを記述

(27)
(28)

Hadoopのサイジング:

コモディティハードウェアは

ローエンドという意味ではない

The Hadoop Distributed File System (HDFS) is a distributed file

system designed to run on commodity hardware.

Cloudera社のサイトにあるData nodeとTask Trackerのハードウェア例:

http://www.cloudera.com/blog/2010/03/clouderas-support-team-shares-some-basic-hardware-recommendations/

抜粋:

There are four types of nodes in a basic Hadoop cluster. We refer here to a node as

a machine performing a particular task. Most of the machines will function as both

datanodes and tasktrackers. As we described, these nodes both store data and

perform processing functions. We recommend the following specifications for

datanodes/tasktrackers in a balanced Hadoop cluster:

•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

(29)

Hadoopのサイジング:

コモディティハードウェアは

ローエンドという意味ではない

出典:http://hadoopblog.blogspot.com/2010/05/facebook-has-worlds-largest-hadoop.html

FacebookにおけるHadoop

Data Node1台あたりのスペック:

CPU: 16コア

Mem: 32GB

Disk: 12~24TB

(30)

Hadoopのサイジング:

コモディティハードウェアは

ローエンドという意味ではない

出典: http://developer.yahoo.com/blogs/ hadoop/posts/2010/05/scalability_of_the_hadoop_dist/

1億個のファイル'2億ブロックを参照(を格納するために、Name Node は最低でも60GB

RAM を持つべきである。

Yahooが提案するHadoopの性能に関する考察

•1億ファイルでは

Name Nodeのメモリ60GB以上

必要

1PBの物理ストレージ容量確保には、メタデータ用

RAMが約1GB必要

•1億ファイルに必要なHDFSクラスタは、10000

ノードで、

1ノードあたり8TBのディスク

が必要

(31)

2011年下半期以降

米国

HPにおけるHadoop/OSSの取り組み・最新情報

(32)

Hadoop in a Data Warehouse

Apache

Hadoop

Flume

Connector

SQOOP

Connector

MySQL

H D F S

Log Files

Relational

Data

Extract, Transform & Load

(33)

eBay

海外

Hadoop情報

•使用しているコンポーネント

•Java MapReduce

•Pig

•Hive

•HBase

•用途:

•検索

•研究

•監視

•Ganglia

Nagios

出典: http://vimeo.com/24541769 '2011年時点(

(34)

Hadoop at Macy’s

海外

Hadoop情報

(35)

HP POD

コンテナ型データセンター

HP PODに搭載されている

HP ProLiant SLシリーズ

HP POD内のHP ProLiantサーバー

米国本社

HP最新情報

データセンターの耐荷重を気

にせず

空き倉庫に設置

OSSを駆使した大規模分散

システムを導入されるお客様

向けに適

(36)

参照

関連したドキュメント

Found in the diatomite of Tochibori Nigata, Ureshino Saga, Hirazawa Miyagi, Kanou and Ooike Nagano, and in the mudstone of NakamuraIrizawa Yamanashi, Kawabe Nagano.. cal with

SUSE® Linux Enterprise Server 15 for AMD64 &amp; Intel64 15S SLES SUSE® Linux Enterprise Server 12 for AMD64 &amp; Intel64 12S. VMware vSphere® 7

Conjecture 5.4, concerning the existence of disordered sphere packings, is plausible for a number of reasons: (i) the decorrelation principle of Section 4.3; (ii) the neces- sary

瞼板中には 30~40 個の瞼板腺(マイボーム Meibome 腺)が一列に存在し、導管は眼瞼後縁に開口する。前縁には 睫毛(まつ毛)が 2~ 3

(G1、G2 及び G3)のものを扱い、NENs のうち低分化型神経内分泌腫瘍(神経内分泌癌 ; neuroendocrine carcinoma; NEC(G3)

The calibration problem for the Black-Scholes model was solved based on the S&amp;P500 data, and the S&amp;P 500 call and put option price data were interpreted in the framework

Furthermore, computing the energy efficiency of all servers by the proposed algorithm and Hadoop MapReduce scheduling according to the objective function in our model, we will get

また適切な音量で音が聞 こえる音響設備を常設設 備として備えている なお、常設設備の効果が適 切に得られない場合、クラ