SlideShare una empresa de Scribd logo
1 de 17
Descargar para leer sin conexión
HDFS ソースコードリーディング(第一回),[object Object],三上俊輔 @shun0102,[object Object],2010/08/17,[object Object]
自己紹介,[object Object],筑波大学大学院1年,[object Object],Hadoop, Gfarmなど分散ファイルシステムを研究中(主に性能評価など),[object Object],クックパッドでインターン中,[object Object],Twitter: @shun0102,[object Object],三上俊輔の研究日記 : http://shun0102.net,[object Object]
HDFSリーディング概要,[object Object],Hadoopのバージョンは 0.20.1,[object Object],対象はorg.apache.hadoop.fsと hdfs,[object Object],クライアント側から見ていく,[object Object],全3回くらい,[object Object]
HDFSソースコード概要,[object Object],cdsrc/hdfs/org/apache/hadoop/hdfs/,[object Object],wc -l  *.java */*.java */*/*.java36690 total,[object Object],hdfs,[object Object],DistributedFileSystem.java,[object Object],protocol,[object Object],tools,[object Object],server,[object Object],datanode,[object Object],namenode,[object Object]
今回の概要,[object Object],Hadoopの FileSystem周りのスタック,[object Object],0.21以降で導入されるFileContextについて,[object Object],FileSystem API の使用法からソースを見る,[object Object],FileSystem,[object Object],FSDataInputStream,[object Object],FSDataOutputStream,[object Object],HDFS側の実装を見る,[object Object],DistributedFileSystem,[object Object]
Hadoopのファイルシステム周りのスタック,[object Object],HadoopMapReduce,[object Object],org.apache.hadoop.fs.FileSystem,[object Object],HDFS client,[object Object],Other Filesystems client,[object Object],HDFS server,[object Object],Other Filesystems server,[object Object]
org.apache.hadoop.fs.FileSystem,[object Object],Hadoopにおけるファイルシステムを抽象化して、汎用的なAPIを提供している,[object Object],各ファイルシステムの実装はこのクラスを継承している,[object Object],しかし、0.21以降からは新しいAPIになる予定,[object Object]
FileContext,[object Object],Old: 1Layer (0.20まで),[object Object],New: 2Layer (0.21以降),[object Object],FileContext,[object Object],UserAPI,[object Object],UserAPI,[object Object],FS Imple API,[object Object],FileSystem,[object Object],AbstractFileSystem,[object Object],FS Imple API,[object Object],DistributedFS,[object Object],S3,[object Object],Local,[object Object],FS,[object Object],FS,[object Object],implementations,[object Object],DistributedFS,[object Object],S3,[object Object],Local,[object Object],FS,[object Object]
FileContextに関する詳細,[object Object],http://www.slideshare.net/hadoopusergroup/file-context,[object Object],HADOOP-4952,[object Object],HADOOP-6223,[object Object]
FileSystem APIの使い方,[object Object],ファイルシステムのインスタンスを取得,[object Object],FileSystem get(URI uri, Configuration conf),[object Object],入力ストリームを取得,[object Object],FSDataInputStream open(Path path),[object Object],データ読み出し,[object Object],int read(long position, byte[] buffer, int offset, int length),[object Object],void seek(long position),[object Object]
ソースコードを見てみましょう,[object Object],org.apache.hadoop.fs.FileSystem,[object Object],org.apache.hadoop.fs.FSDataInputStream,[object Object],org.apache.hadoop.fs.FSDataOutputStream,[object Object]
設定ファイルからそのスキームに対応するファイルシステムのクラスを取得,[object Object],fs.hdfs.impl,[object Object],org.apache.hadoop.hdfs.DistributedFileSystem,[object Object],fs.s3.impl,[object Object],org.apache.hadoop.fs.s3.S3FileSystem,[object Object]
HDFSでの実装は?,[object Object],org.apache.hadoop.fs.FileSystem,[object Object],DistributedFileSystem,[object Object],org.apache.hadoop.fs.FSDataInputStream,[object Object],DFSClient.DFSInputStream,[object Object],org.apache.hadoop.fs.FSDataOutputStream,[object Object],DFSClient.DFSOutputStream,[object Object]
DFSOutputStream,[object Object],データは64KB のパケットに分割される,[object Object],それぞれのパケットは 512KB のチャンクを形成,[object Object],パケットはまずdataQueueに入れられる,[object Object],そこからDataNodeへパケットを転送開始して、ackQueueに移す,[object Object],全てのDataNodeからackを受け取ったらackQueueから削除する,[object Object]
DFSOutputStream(エラーが起こった場合),[object Object],ackQueueからdataQueueへパケットを移動し、エラーの起こったDataNodeを除外して、再度dataQueueから転送を開始,[object Object]
その他のFileSystemクラスのメソッド,[object Object],ファイルシステム操作,[object Object],mkdir(), rename(), delete(), copyFromLocalFile(), setPermission(),setOwener(),[object Object],ファイルシステムの情報取得,[object Object],listStatus(), globStatus(),[object Object],ブロックの配置情報取得,[object Object],getBlockSize( ),[object Object],getFileBlockLocations(),[object Object]
まとめ,[object Object],HadoopのFileSystem周りのコードを見ていった,[object Object],Hadoopはファイルシステムがプラガブルになっている,[object Object],DistributeFileSystemからHDFSのコードを見ていった,[object Object],DFSOutputStream,[object Object],getFileBlockLocations(),[object Object]

Más contenido relacionado

La actualidad más candente

Tuning maniax 2014 Hadoop編
Tuning maniax 2014 Hadoop編Tuning maniax 2014 Hadoop編
Tuning maniax 2014 Hadoop編ThinkIT_impress
 
レッドハット グラスター ストレージ Red Hat Gluster Storage (Japanese)
レッドハット グラスター ストレージ Red Hat Gluster Storage (Japanese)レッドハット グラスター ストレージ Red Hat Gluster Storage (Japanese)
レッドハット グラスター ストレージ Red Hat Gluster Storage (Japanese)Katsutoshi Kojima
 
分散ファイルシステムGfarm上でのHadoop MapReduce
分散ファイルシステムGfarm上でのHadoop MapReduce分散ファイルシステムGfarm上でのHadoop MapReduce
分散ファイルシステムGfarm上でのHadoop MapReduceshunsuke Mikami
 
データベース入門
データベース入門データベース入門
データベース入門拓 小林
 
2019-10-18 JXUG Xamarin.Essentials - #3 File System Helpers
2019-10-18 JXUG Xamarin.Essentials - #3 File System Helpers2019-10-18 JXUG Xamarin.Essentials - #3 File System Helpers
2019-10-18 JXUG Xamarin.Essentials - #3 File System HelpersTakeshi Fujimoto
 
2019-09-20 JXUG Introduction to Xamarin.Essentials #2 Preferences
2019-09-20 JXUG Introduction to Xamarin.Essentials #2 Preferences2019-09-20 JXUG Introduction to Xamarin.Essentials #2 Preferences
2019-09-20 JXUG Introduction to Xamarin.Essentials #2 PreferencesTakeshi Fujimoto
 
HBaseを用いたグラフDB「Hornet」の設計と運用
HBaseを用いたグラフDB「Hornet」の設計と運用HBaseを用いたグラフDB「Hornet」の設計と運用
HBaseを用いたグラフDB「Hornet」の設計と運用Toshihiro Suzuki
 
DBP-011_Apache Spark for Azure HDInsight ~新世代の Big Data 処理基盤~
DBP-011_Apache Spark for Azure HDInsight ~新世代の Big Data 処理基盤~DBP-011_Apache Spark for Azure HDInsight ~新世代の Big Data 処理基盤~
DBP-011_Apache Spark for Azure HDInsight ~新世代の Big Data 処理基盤~decode2016
 
Quick Introduction to GlusterFS
Quick Introduction to GlusterFSQuick Introduction to GlusterFS
Quick Introduction to GlusterFSEtsuji Nakai
 
MapReduceプログラミング入門
MapReduceプログラミング入門MapReduceプログラミング入門
MapReduceプログラミング入門Satoshi Noto
 
Osc2012 spring HBase Report
Osc2012 spring HBase ReportOsc2012 spring HBase Report
Osc2012 spring HBase ReportSeiichiro Ishida
 
遊休リソースを用いた 相同性検索処理の並列化とその評価
遊休リソースを用いた相同性検索処理の並列化とその評価遊休リソースを用いた相同性検索処理の並列化とその評価
遊休リソースを用いた 相同性検索処理の並列化とその評価Satoshi Nagayasu
 
オライリーセミナー Hive入門 #oreilly0724
オライリーセミナー Hive入門  #oreilly0724オライリーセミナー Hive入門  #oreilly0724
オライリーセミナー Hive入門 #oreilly0724Cloudera Japan
 
20120913 nosql@hikarie(okuyama fuse)
20120913 nosql@hikarie(okuyama fuse)20120913 nosql@hikarie(okuyama fuse)
20120913 nosql@hikarie(okuyama fuse)Takahiro Iwase
 
ただいまHadoop勉強中
ただいまHadoop勉強中ただいまHadoop勉強中
ただいまHadoop勉強中Satoshi Noto
 
Data replication and synchronization ガイダンス
Data replication and synchronization ガイダンスData replication and synchronization ガイダンス
Data replication and synchronization ガイダンスKazuhiro Taguchi
 

La actualidad más candente (20)

Cache勉強会
Cache勉強会Cache勉強会
Cache勉強会
 
Tuning maniax 2014 Hadoop編
Tuning maniax 2014 Hadoop編Tuning maniax 2014 Hadoop編
Tuning maniax 2014 Hadoop編
 
レッドハット グラスター ストレージ Red Hat Gluster Storage (Japanese)
レッドハット グラスター ストレージ Red Hat Gluster Storage (Japanese)レッドハット グラスター ストレージ Red Hat Gluster Storage (Japanese)
レッドハット グラスター ストレージ Red Hat Gluster Storage (Japanese)
 
Hadoop
HadoopHadoop
Hadoop
 
分散ファイルシステムGfarm上でのHadoop MapReduce
分散ファイルシステムGfarm上でのHadoop MapReduce分散ファイルシステムGfarm上でのHadoop MapReduce
分散ファイルシステムGfarm上でのHadoop MapReduce
 
H2O 3.0 with .net
H2O 3.0 with .netH2O 3.0 with .net
H2O 3.0 with .net
 
データベース入門
データベース入門データベース入門
データベース入門
 
2019-10-18 JXUG Xamarin.Essentials - #3 File System Helpers
2019-10-18 JXUG Xamarin.Essentials - #3 File System Helpers2019-10-18 JXUG Xamarin.Essentials - #3 File System Helpers
2019-10-18 JXUG Xamarin.Essentials - #3 File System Helpers
 
2019-09-20 JXUG Introduction to Xamarin.Essentials #2 Preferences
2019-09-20 JXUG Introduction to Xamarin.Essentials #2 Preferences2019-09-20 JXUG Introduction to Xamarin.Essentials #2 Preferences
2019-09-20 JXUG Introduction to Xamarin.Essentials #2 Preferences
 
SASとHadoopとの連携
SASとHadoopとの連携SASとHadoopとの連携
SASとHadoopとの連携
 
HBaseを用いたグラフDB「Hornet」の設計と運用
HBaseを用いたグラフDB「Hornet」の設計と運用HBaseを用いたグラフDB「Hornet」の設計と運用
HBaseを用いたグラフDB「Hornet」の設計と運用
 
DBP-011_Apache Spark for Azure HDInsight ~新世代の Big Data 処理基盤~
DBP-011_Apache Spark for Azure HDInsight ~新世代の Big Data 処理基盤~DBP-011_Apache Spark for Azure HDInsight ~新世代の Big Data 処理基盤~
DBP-011_Apache Spark for Azure HDInsight ~新世代の Big Data 処理基盤~
 
Quick Introduction to GlusterFS
Quick Introduction to GlusterFSQuick Introduction to GlusterFS
Quick Introduction to GlusterFS
 
MapReduceプログラミング入門
MapReduceプログラミング入門MapReduceプログラミング入門
MapReduceプログラミング入門
 
Osc2012 spring HBase Report
Osc2012 spring HBase ReportOsc2012 spring HBase Report
Osc2012 spring HBase Report
 
遊休リソースを用いた 相同性検索処理の並列化とその評価
遊休リソースを用いた相同性検索処理の並列化とその評価遊休リソースを用いた相同性検索処理の並列化とその評価
遊休リソースを用いた 相同性検索処理の並列化とその評価
 
オライリーセミナー Hive入門 #oreilly0724
オライリーセミナー Hive入門  #oreilly0724オライリーセミナー Hive入門  #oreilly0724
オライリーセミナー Hive入門 #oreilly0724
 
20120913 nosql@hikarie(okuyama fuse)
20120913 nosql@hikarie(okuyama fuse)20120913 nosql@hikarie(okuyama fuse)
20120913 nosql@hikarie(okuyama fuse)
 
ただいまHadoop勉強中
ただいまHadoop勉強中ただいまHadoop勉強中
ただいまHadoop勉強中
 
Data replication and synchronization ガイダンス
Data replication and synchronization ガイダンスData replication and synchronization ガイダンス
Data replication and synchronization ガイダンス
 

Similar a Hdfsソースコードリーディング第一回

データインターフェースとしてのHadoop ~HDFSとクラウドストレージと私~ (NTTデータ テクノロジーカンファレンス 2019 講演資料、2019...
データインターフェースとしてのHadoop ~HDFSとクラウドストレージと私~ (NTTデータ テクノロジーカンファレンス 2019 講演資料、2019...データインターフェースとしてのHadoop ~HDFSとクラウドストレージと私~ (NTTデータ テクノロジーカンファレンス 2019 講演資料、2019...
データインターフェースとしてのHadoop ~HDFSとクラウドストレージと私~ (NTTデータ テクノロジーカンファレンス 2019 講演資料、2019...NTT DATA Technology & Innovation
 
CDH4.1オーバービュー
CDH4.1オーバービューCDH4.1オーバービュー
CDH4.1オーバービューCloudera Japan
 
Hadoop Compatible File Systems 2019 (db tech showcase 2019 Tokyo講演資料、2019/09/25)
Hadoop Compatible File Systems 2019 (db tech showcase 2019 Tokyo講演資料、2019/09/25)Hadoop Compatible File Systems 2019 (db tech showcase 2019 Tokyo講演資料、2019/09/25)
Hadoop Compatible File Systems 2019 (db tech showcase 2019 Tokyo講演資料、2019/09/25)NTT DATA Technology & Innovation
 
分散処理基盤Apache Hadoopの現状と、NTTデータのHadoopに対する取り組み
分散処理基盤Apache Hadoopの現状と、NTTデータのHadoopに対する取り組み分散処理基盤Apache Hadoopの現状と、NTTデータのHadoopに対する取り組み
分散処理基盤Apache Hadoopの現状と、NTTデータのHadoopに対する取り組みNTT DATA OSS Professional Services
 
2014-07-26 Exploration into HDInsight Tuning Maniax 2014 Hadoopコース参戦記
2014-07-26 Exploration into HDInsight Tuning Maniax 2014 Hadoopコース参戦記2014-07-26 Exploration into HDInsight Tuning Maniax 2014 Hadoopコース参戦記
2014-07-26 Exploration into HDInsight Tuning Maniax 2014 Hadoopコース参戦記Yoshiyuki Nakamura
 
Hadoop Compatible File Systems (Azure編) (セミナー「Big Data Developerに贈る第二弾 ‐ Azur...
Hadoop Compatible File Systems (Azure編) (セミナー「Big Data Developerに贈る第二弾 ‐ Azur...Hadoop Compatible File Systems (Azure編) (セミナー「Big Data Developerに贈る第二弾 ‐ Azur...
Hadoop Compatible File Systems (Azure編) (セミナー「Big Data Developerに贈る第二弾 ‐ Azur...NTT DATA Technology & Innovation
 
Apache Hadoopに見るJavaミドルウェアのcompatibility(Open Developers Conference 2020 Onli...
Apache Hadoopに見るJavaミドルウェアのcompatibility(Open Developers Conference 2020 Onli...Apache Hadoopに見るJavaミドルウェアのcompatibility(Open Developers Conference 2020 Onli...
Apache Hadoopに見るJavaミドルウェアのcompatibility(Open Developers Conference 2020 Onli...NTT DATA Technology & Innovation
 
HAWQをCDHで動かしてみた
HAWQをCDHで動かしてみたHAWQをCDHで動かしてみた
HAWQをCDHで動かしてみたadachij2002
 
サポートメンバは見た! Hadoopバグワースト10 (adoop / Spark Conference Japan 2016 ライトニングトーク発表資料)
サポートメンバは見た! Hadoopバグワースト10 (adoop / Spark Conference Japan 2016 ライトニングトーク発表資料)サポートメンバは見た! Hadoopバグワースト10 (adoop / Spark Conference Japan 2016 ライトニングトーク発表資料)
サポートメンバは見た! Hadoopバグワースト10 (adoop / Spark Conference Japan 2016 ライトニングトーク発表資料)NTT DATA OSS Professional Services
 
Hadoop Trends & Hadoop on EC2
Hadoop Trends & Hadoop on EC2Hadoop Trends & Hadoop on EC2
Hadoop Trends & Hadoop on EC2Yifeng Jiang
 
Hadoopのインストール
HadoopのインストールHadoopのインストール
HadoopのインストールNoritada Shimizu
 
php-src の歩き方
php-src の歩き方php-src の歩き方
php-src の歩き方do_aki
 

Similar a Hdfsソースコードリーディング第一回 (20)

HDFS basics from API perspective
HDFS basics from API perspectiveHDFS basics from API perspective
HDFS basics from API perspective
 
Hadoop gfarm使い方
Hadoop gfarm使い方Hadoop gfarm使い方
Hadoop gfarm使い方
 
データインターフェースとしてのHadoop ~HDFSとクラウドストレージと私~ (NTTデータ テクノロジーカンファレンス 2019 講演資料、2019...
データインターフェースとしてのHadoop ~HDFSとクラウドストレージと私~ (NTTデータ テクノロジーカンファレンス 2019 講演資料、2019...データインターフェースとしてのHadoop ~HDFSとクラウドストレージと私~ (NTTデータ テクノロジーカンファレンス 2019 講演資料、2019...
データインターフェースとしてのHadoop ~HDFSとクラウドストレージと私~ (NTTデータ テクノロジーカンファレンス 2019 講演資料、2019...
 
AI・HPC・ビッグデータで利用される分散ファイルシステムを知る
AI・HPC・ビッグデータで利用される分散ファイルシステムを知るAI・HPC・ビッグデータで利用される分散ファイルシステムを知る
AI・HPC・ビッグデータで利用される分散ファイルシステムを知る
 
CDH4.1オーバービュー
CDH4.1オーバービューCDH4.1オーバービュー
CDH4.1オーバービュー
 
Hadoop Compatible File Systems 2019 (db tech showcase 2019 Tokyo講演資料、2019/09/25)
Hadoop Compatible File Systems 2019 (db tech showcase 2019 Tokyo講演資料、2019/09/25)Hadoop Compatible File Systems 2019 (db tech showcase 2019 Tokyo講演資料、2019/09/25)
Hadoop Compatible File Systems 2019 (db tech showcase 2019 Tokyo講演資料、2019/09/25)
 
分散処理基盤Apache Hadoopの現状と、NTTデータのHadoopに対する取り組み
分散処理基盤Apache Hadoopの現状と、NTTデータのHadoopに対する取り組み分散処理基盤Apache Hadoopの現状と、NTTデータのHadoopに対する取り組み
分散処理基盤Apache Hadoopの現状と、NTTデータのHadoopに対する取り組み
 
2014-07-26 Exploration into HDInsight Tuning Maniax 2014 Hadoopコース参戦記
2014-07-26 Exploration into HDInsight Tuning Maniax 2014 Hadoopコース参戦記2014-07-26 Exploration into HDInsight Tuning Maniax 2014 Hadoopコース参戦記
2014-07-26 Exploration into HDInsight Tuning Maniax 2014 Hadoopコース参戦記
 
Hadoop Compatible File Systems (Azure編) (セミナー「Big Data Developerに贈る第二弾 ‐ Azur...
Hadoop Compatible File Systems (Azure編) (セミナー「Big Data Developerに贈る第二弾 ‐ Azur...Hadoop Compatible File Systems (Azure編) (セミナー「Big Data Developerに贈る第二弾 ‐ Azur...
Hadoop Compatible File Systems (Azure編) (セミナー「Big Data Developerに贈る第二弾 ‐ Azur...
 
Apache Hadoopに見るJavaミドルウェアのcompatibility(Open Developers Conference 2020 Onli...
Apache Hadoopに見るJavaミドルウェアのcompatibility(Open Developers Conference 2020 Onli...Apache Hadoopに見るJavaミドルウェアのcompatibility(Open Developers Conference 2020 Onli...
Apache Hadoopに見るJavaミドルウェアのcompatibility(Open Developers Conference 2020 Onli...
 
Hadoop ~Yahoo! JAPANの活用について~
Hadoop ~Yahoo! JAPANの活用について~Hadoop ~Yahoo! JAPANの活用について~
Hadoop ~Yahoo! JAPANの活用について~
 
HAWQをCDHで動かしてみた
HAWQをCDHで動かしてみたHAWQをCDHで動かしてみた
HAWQをCDHで動かしてみた
 
サポートメンバは見た! Hadoopバグワースト10 (adoop / Spark Conference Japan 2016 ライトニングトーク発表資料)
サポートメンバは見た! Hadoopバグワースト10 (adoop / Spark Conference Japan 2016 ライトニングトーク発表資料)サポートメンバは見た! Hadoopバグワースト10 (adoop / Spark Conference Japan 2016 ライトニングトーク発表資料)
サポートメンバは見た! Hadoopバグワースト10 (adoop / Spark Conference Japan 2016 ライトニングトーク発表資料)
 
Hadoop Trends & Hadoop on EC2
Hadoop Trends & Hadoop on EC2Hadoop Trends & Hadoop on EC2
Hadoop Trends & Hadoop on EC2
 
Hadoop 基礎
Hadoop 基礎Hadoop 基礎
Hadoop 基礎
 
Distributed data stores in Hadoop ecosystem
Distributed data stores in Hadoop ecosystemDistributed data stores in Hadoop ecosystem
Distributed data stores in Hadoop ecosystem
 
VIOPS07: “Practical” Guide to GlusterFS
VIOPS07: “Practical” Guide to GlusterFSVIOPS07: “Practical” Guide to GlusterFS
VIOPS07: “Practical” Guide to GlusterFS
 
Hadoopのインストール
HadoopのインストールHadoopのインストール
Hadoopのインストール
 
Touch the mahout
Touch the mahoutTouch the mahout
Touch the mahout
 
php-src の歩き方
php-src の歩き方php-src の歩き方
php-src の歩き方
 

Hdfsソースコードリーディング第一回

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.