SlideShare una empresa de Scribd logo
1 de 24
1 広域分散ファイルシステムGfarm上でのMapReduceを用いた大規模分散データ処理 三上俊輔1)      太田一樹2)      建部修見1) 1)  筑波大学 2)  Preferred Infrastructure, Inc.
2 発表の概要 研究の背景 MapReduceと分散ファイルシステム 研究の目的 提案システムの設計と実装 性能評価 関連研究 結論と今後の課題
研究の背景 データの大規模化 インターネット規模 生命情報学,天文学,素粒子物理学 ペタバイト、エクサバイト級 分散ファイルシステム Google file system, HDFS,Gfarm, PVFS, Ceph 大容量,スケーラブルな並列I/Oバンド幅 コモディティで構成 分散処理 MPI (Message Passing Interface) MapReduce 3
MapReduce, Hadoop MapReduce [2004 Dean] 大規模データの並列処理のフレームワーク 処理をMapフェーズとReduce フェーズにわける Google の実装ではデータの入出力にGoogle File Systemを使用 Hadoop Google MapReduceのオープンソース実装 データの入出力にはHDFS(Hadoop Distributed File System)を使用 4 Sawzall Hive Pig MapReduce HadoopMapReduce Google File System Hadoop Distributed File System Google の基盤技術 OSSの基盤技術
HDFS マスター ファイルのメタデータを管理し、単一名前空間を提供 スレーブ データを保存 データの入出力はスレーブへ直接行われる ファイルをブロック分割する(デフォルトでは64MB) 複製による信頼性の向上 Hadoopに対してデータの位置を提供 ストリーミングアクセスに特化している 5
HDFS Architecture 6 HDFSメタデータサーバー HDFSストレージサーバー HDFSストレージサーバー HDFSストレージサーバー Client Metadata ops Read or Write Read or Write 仮想的な共有ファイルシステム(HDFS)
HDFSの問題点 MapReduceのジョブ以外での利用が困難 APIがPOSIXに準拠していない ファイルの任意の位置の修正ができない 複数クライアントからの単一ファイルへの書き込みができない 基本はJavaの特定APIからのアクセス データのインポート,エクスポートが必要になる コピーするために時間がかかる ストレージの無駄 7
研究の目的 汎用的な一つのファイルシステムでストレージを一元的に管理 大容量、高信頼、高性能、低コスト MapReduce処理においてもHDFSと同等以上の性能 8 Hive Hive Pig Pig Legacy application MPI application Hadoop MapReduce HadoopMapReduce Distributed File System Hadoop Distributed File System 目的とするデータ基盤 Hadoopデータ基盤
Gfarm[2002 建部ら] 広域分散ファイルシステム マスター ファイルのメタデータを管理し、単一名前空間を提供 スレーブ データを保存 ファイルの局所性を利用したスケーラブルな性能 複製による信頼性の向上とアクセスの負荷分散 ファイル単位で保存 POSIX準拠のAPI FUSEによって既存のソフトウェアから透過にアクセス可能 9
提案システム Hadoop-Gfarmプラグインの概要 10 FUSEを使ってアクセスすることも考えられるが、FUSEのオーバーヘッド、データの位置を取得できないなどの欠点 Hadoopから直接Gfarm上のファイルへアクセス プラグインを開発する必要 HadoopMapReduce applications File System API 本研究で開発 HDFS client library Gfarm JNI shim layer Gfarm client library Gfarm servers HDFS servers ソフトウェアスタック
Hadoop-Gfarmプラグインの実装 HadoopがHDFS以外のファイルシステムを利用できるように,抽象化されたFile System APIを備えている org.apache.hadoop.fs.FileSystem Gfarm用にそのインターフェースを実装 initialize, terminate, checkPath, makeQualified, setWorkingDirectory, getWorkingDirectory, open, create, rename, delete, getFileSize, delete, listStatus, mkdirs, getFileStatus, getFileBlockLocations, read, isOpen, write, flush, sync, seek, tell, close ファイルの複製の格納場所一覧を返す関数getFileBlockLocationsを実装 HadoopMapReduceがこの関数を使用し,Mapタスクをデータに近いノードに割り当てる Java Native Interface(JNI) を使用 コピーは発生しない 11
Hadoop-Gfarmプラグインの実装 Java 側のコード private final static native long open(String path);  C++ のコード #include <gfarm/gfarm.h> JNIEXPORT jlong JNICALL Java_org_apache_hadoop_fs_gfarmfs_GfarmFSNativeInputChannel_open   (JNIEnv *env, jclasscls, jstringjstrpath) {   string path = jstr2cppstr(env, jstrpath); GFS_File f = NULL; gfarm_error_t e = gfs_pio_open(path.c_str(), GFARM_FILE_RDONLY, &f);    return (jlong)f; } 12
HadoopとGfarmの構成 13 ローカリティを考慮してタスクを配置し,Gfarm上のファイルへアクセス ファイルの複製が保存されているノード一覧を取得 Hadoopジョブ管理サーバー Hadoop計算サーバー Hadoop計算サーバー Hadoop計算サーバー タスク0 タスク0 タスク0 Gfarmメタデータサーバー Gfarmストレージサーバー Gfarmストレージサーバー Gfarmストレージサーバー Input0 Input1 Input2 仮想的な共有ファイルシステム(Gfarm)
性能評価 マシン性能 14
JNI shim layer に関するオーバーヘッドの評価 15 ,[object Object]
JNIのオーバーヘッドは読み込みで1%未満、書き込みで約6%,[object Object]
各ノードが別々の50GBのファイルを書き込む(複製はなし)
ローカルに書き込むのでスケールする
Gfarmが約30%高い性能,[object Object]
各ノードが5GBの別々のファイルを読み込む
HDFSとGfarmはほぼ同等の性能
Gfarm w/o ではデータの位置を考慮せずにタスクを配置
しかし、10GEのネットワークのためか大きな性能差はなかった,[object Object]
HDFSとGfarmはほぼ同程度の性能

Más contenido relacionado

Más de shunsuke Mikami

アクセス解析システムの裏側 (公開用)
アクセス解析システムの裏側 (公開用)アクセス解析システムの裏側 (公開用)
アクセス解析システムの裏側 (公開用)
shunsuke Mikami
 
Hdfsソースコードリーディング第2回
Hdfsソースコードリーディング第2回Hdfsソースコードリーディング第2回
Hdfsソースコードリーディング第2回
shunsuke Mikami
 
Hdfsソースコードリーディング第一回
Hdfsソースコードリーディング第一回Hdfsソースコードリーディング第一回
Hdfsソースコードリーディング第一回
shunsuke Mikami
 
HDFSのスケーラビリティとマルチマスタへの取り組み
HDFSのスケーラビリティとマルチマスタへの取り組みHDFSのスケーラビリティとマルチマスタへの取り組み
HDFSのスケーラビリティとマルチマスタへの取り組み
shunsuke Mikami
 

Más de shunsuke Mikami (7)

アクセス解析システムの裏側 (公開用)
アクセス解析システムの裏側 (公開用)アクセス解析システムの裏側 (公開用)
アクセス解析システムの裏側 (公開用)
 
Fluent plugin-dstat
Fluent plugin-dstatFluent plugin-dstat
Fluent plugin-dstat
 
Hdfsソースコードリーディング第2回
Hdfsソースコードリーディング第2回Hdfsソースコードリーディング第2回
Hdfsソースコードリーディング第2回
 
Hdfsソースコードリーディング第一回
Hdfsソースコードリーディング第一回Hdfsソースコードリーディング第一回
Hdfsソースコードリーディング第一回
 
Hadoop gfarm使い方
Hadoop gfarm使い方Hadoop gfarm使い方
Hadoop gfarm使い方
 
Hadoop gfarm使い方
Hadoop gfarm使い方Hadoop gfarm使い方
Hadoop gfarm使い方
 
HDFSのスケーラビリティとマルチマスタへの取り組み
HDFSのスケーラビリティとマルチマスタへの取り組みHDFSのスケーラビリティとマルチマスタへの取り組み
HDFSのスケーラビリティとマルチマスタへの取り組み
 

広域分散ファイルシステムGfarm上でのMapReduceを用いた大規模分散データ処理 @ SWoPP2010