SlideShare a Scribd company logo
1 of 21
Download to read offline
Hadoopとその周辺の紹介
BPStyle #41
tokibito
Apache Hadoopとは
● 分散処理基盤
○ HDFS - 分散ファイルシステム
○ MapReduce - 分散処理フレームワーク

● Apache財団のプロジェクト
● Javaで作られている
● http://hadoop.apache.org/
HDFSとは
● 分散ファイルシステムのサービス
● Unixのファイルシステムのように、ディレクトリや
パーミッション、所有者の概念がある
● 大きく分けて2つのコンポーネントで構成
○ NameNode - 各ファイルのメタ情報を管理
○ DataNode - 実データを持つ
NameNodeとDataNodeのイメージ
NameNode

DataNode

DataNode

DataNode

HDD

HDD

HDD

NameNodeが1台でDataNodeが複数台
HDFSの操作
$ hdfs dfs -ls /user/tokibito
Found 3 items
drwx------ tokibito tokibito
0
drwxrwxrwx
- tokibito tokibito
0
-rw-r--r-3 tokibito tokibito
419
$ hdfs dfs -put test.txt /user/tokibito/
$ hdfs dfs -ls /user/tokibito/
Found 4 items
drwx------ tokibito tokibito
0
drwxrwxrwx
- tokibito tokibito
0
-rw-r--r-3 tokibito tokibito
419
-rw-r--r-3 tokibito tokibito
5
$ hdfs dfs -cat /user/tokibito/test.txt
hoge

hdfs dfsコマンドを使ってファイルを操作できる
put get mv rm ls mkdirなどのサブコマンドがある

2013-12-06 09:00 /user/tokibito/.Trash
2013-12-04 18:18 /user/tokibito/tab1
2013-12-06 15:34 /user/tokibito/test.tsv

2013-12-06
2013-12-04
2013-12-06
2014-01-08

09:00
18:18
15:34
11:18

/user/tokibito/.Trash
/user/tokibito/tab1
/user/tokibito/test.tsv
/user/tokibito/test.txt
MapReduceとは
● 分散処理フレームワーク
● 大きく分けて2つのコンポーネントで構成
○ JobTracker
○ TaskTracker

● ジョブ(Job)
○ Map処理とReduce処理の組み合わせ
■ org.apache.hadoop.mapreduce.Mapper
●

分割された入力データを並列処理

■ org.apache.hadoop.mapreduce.Reducer
●

Mapperの処理結果を一つにまとめる

○ jarパッケージにしてJobTrackerに登録する
JobTrackerとTaskTrackerのイメージ
JobTracker

TaskTracker

TaskTracker

JobTrackerが1台でTaskTrackerが複数台
TaskTrackerでMap/Reduce処理が実行される

TaskTracker
Map処理とReduce処理のイメージ
Job
Map処理

Input

Map処理

Map処理

Reduce処理

Output
MapReduceを使うのは面倒くさい
● Javaで処理を書く必要がある
● jarを作ってJobTrackerに登録しないといけない
● SQL使いたい

→そこでApache Hive
Apache Hive
● Hadoop上のクエリエンジン
● SQLで問い合わせ
○ SQLからMapReduceタスクを生成して実行

● Javaで実装されている
● http://hive.apache.org/
Hiveの操作
hiveコマンドで対話シェルを起動する
hive> show databases;
OK
default
tokibito
Time taken: 2.379 seconds
hive> use tokibito;
OK
Time taken: 0.047 seconds
hive> show tables;
OK
tab1
Time taken: 0.143 seconds
hive> select * from tab1;
OK
7
NULL
1
NULL
1
foo
2
hoge
3
bar
4
5
NULL
Time taken: 1.971 seconds
Hiveは遅い?
● 小さなデータに対してクエリした場合でも数十秒
かかったりすることがある
○ HDFSへのアクセスのオーバーヘッドが大きい
○ MapReduce処理が遅い

→そこでCloudera Impala
Cloudera Impala
● Hadoop上のクエリエンジン
● SQLで問い合わせ
○ ImpalaDaemonがSQLをコンパイルして実行(LLVM)

● MapReduce処理の最適化
○ Impaladのノードと同じマシンのDataNodeを直接参照
■ ネットワーク転送のオーバーヘッド軽減

● C++で実装
● Hiveのメタ情報を利用
○ hiveのテーブルを参照できる

● 現状ではHiveの全機能はカバーできてない
● http://impala.io/
Impalaの操作
impala-shellコマンドで対話シェルを起動する
[slave1:21000] > use tokibito;
Query: use tokibito
[slave1:21000] > select * from tab1;
Query: select * from tab1
Query finished, fetching results ...
+----+-------+
| id | col_1 |
+----+-------+
| 7 | NULL |
| 1 | foo
|
| 2 | hoge |
| 3 | bar
|
| 4 |
|
| 5 | NULL |
| 1 | NULL |
+----+-------+
Returned 7 row(s) in 2.46s
他のHadoop関連のプロダクト
●
●
●
●

Apache HBase - KVS
Apache Flume - ログ収集
Apache Oozie - ワークフローエンジン
Cloudera Hue - Hadoopのフロントエンド

など
Hadoopは大変
● コンポーネントの数が多い
● 依存関係の解決が面倒(バージョンも気にする
必要ある)
● 複数台のサーバー管理が必要(HA構成なら最
低でも7〜11台以上)
→そこでCDHとCloudera Manager
CDH
● Cloudera's Distribution Including Apache
Hadoop
● 米Cloudera社
● Hadoopのパッケージ
○ rpm
○ 依存関係が解決されている
○ 安定したバージョンのパッケージ

● http://www.cloudera.
com/content/cloudera/en/products-andservices/cdh.html
Cloudera Manager
● Hadoopクラスタの管理ツール
● Webベース
● ホストの管理
○ 対象の各ホストにagentをインストールする

● ホストへのCDHのインストール
○ 一括で自動インストール可能

● サービスの管理
○ どのホストでどのサービスを動かすかをWebUIから一括
設定可能

● http://www.cloudera.
com/content/cloudera/en/products-and-
Hadoopの利点は?
● 一台で処理できないような量のデータを扱える
○ MapReduce

● 一台で保存できないような量のデータを扱える
○ HDFS
○ 容量が足りなければ台数を増やせばよい
○ 台数を増やせばパフォーマンスも上がる

● メモリに載り切らないようなデータを現実的な時
間で処理できる
● 正規化されていないデータを処理できる
Hadoopの欠点は?
● 速くはない
○ メモリに乗る程度のデータ量ならRDBMSを使ったほう
がかなり速い

● 推奨マシンスペックは低くない
○ Impalaの推奨メモリは128GB以上
■ コモディティサーバー≠安価なサーバー
○ 最低でも1ノードあたり4〜8GB程度ないと、まともに動
かない

● 最小構成のサーバー台数が多い
○ HA構成ならマスター3台、スレーブ4〜8台以上

● コンポーネント数が多く、複雑なのでトラブル
シューティングは大変
http://www.slideshare.net/Cloudera_jp/cloudera-manager-5-hadoop-cwt2013

More Related Content

What's hot

Hdfsソースコードリーディング第一回
Hdfsソースコードリーディング第一回Hdfsソースコードリーディング第一回
Hdfsソースコードリーディング第一回
shunsuke Mikami
 
コード読経会報告書
コード読経会報告書コード読経会報告書
コード読経会報告書
Masahiko Toyoshi
 
Quick Introduction to GlusterFS
Quick Introduction to GlusterFSQuick Introduction to GlusterFS
Quick Introduction to GlusterFS
Etsuji Nakai
 

What's hot (20)

Hdfsソースコードリーディング第一回
Hdfsソースコードリーディング第一回Hdfsソースコードリーディング第一回
Hdfsソースコードリーディング第一回
 
MapReduce入門
MapReduce入門MapReduce入門
MapReduce入門
 
レッドハット グラスター ストレージ Red Hat Gluster Storage (Japanese)
レッドハット グラスター ストレージ Red Hat Gluster Storage (Japanese)レッドハット グラスター ストレージ Red Hat Gluster Storage (Japanese)
レッドハット グラスター ストレージ Red Hat Gluster Storage (Japanese)
 
コード読経会報告書
コード読経会報告書コード読経会報告書
コード読経会報告書
 
Hadoopことはじめ
HadoopことはじめHadoopことはじめ
Hadoopことはじめ
 
Hadoop 基礎
Hadoop 基礎Hadoop 基礎
Hadoop 基礎
 
Hadoopのシステム設計・運用のポイント
Hadoopのシステム設計・運用のポイントHadoopのシステム設計・運用のポイント
Hadoopのシステム設計・運用のポイント
 
Quick Introduction to GlusterFS
Quick Introduction to GlusterFSQuick Introduction to GlusterFS
Quick Introduction to GlusterFS
 
分散処理のすゝめ?
分散処理のすゝめ?分散処理のすゝめ?
分散処理のすゝめ?
 
JavaOne2013報告会 LT資料 Hadoopの話を聞いてきた
JavaOne2013報告会 LT資料 Hadoopの話を聞いてきたJavaOne2013報告会 LT資料 Hadoopの話を聞いてきた
JavaOne2013報告会 LT資料 Hadoopの話を聞いてきた
 
データベース入門
データベース入門データベース入門
データベース入門
 
Drill超簡単チューニング
Drill超簡単チューニングDrill超簡単チューニング
Drill超簡単チューニング
 
MapReduce解説
MapReduce解説MapReduce解説
MapReduce解説
 
Hadoop / MapReduce とは
Hadoop / MapReduce とはHadoop / MapReduce とは
Hadoop / MapReduce とは
 
Learning spaerk chapter03
Learning spaerk chapter03Learning spaerk chapter03
Learning spaerk chapter03
 
SASとHadoopとの連携
SASとHadoopとの連携SASとHadoopとの連携
SASとHadoopとの連携
 
はやわかりHadoop
はやわかりHadoopはやわかりHadoop
はやわかりHadoop
 
HDFS新機能総まとめin 2015 (日本Hadoopユーザー会 ライトニングトーク@Cloudera World Tokyo 2015 講演資料)
HDFS新機能総まとめin 2015 (日本Hadoopユーザー会 ライトニングトーク@Cloudera World Tokyo 2015 講演資料)HDFS新機能総まとめin 2015 (日本Hadoopユーザー会 ライトニングトーク@Cloudera World Tokyo 2015 講演資料)
HDFS新機能総まとめin 2015 (日本Hadoopユーザー会 ライトニングトーク@Cloudera World Tokyo 2015 講演資料)
 
Apache Spark チュートリアル
Apache Spark チュートリアルApache Spark チュートリアル
Apache Spark チュートリアル
 
Dat009 クラウドでビック
Dat009 クラウドでビックDat009 クラウドでビック
Dat009 クラウドでビック
 

Similar to Hadoopとその周辺の紹介

Hadoopのインストール
HadoopのインストールHadoopのインストール
Hadoopのインストール
Noritada Shimizu
 
【17-E-3】Hadoop:黄色い象使いへの道 ~「Hadoop徹底入門」より~
【17-E-3】Hadoop:黄色い象使いへの道 ~「Hadoop徹底入門」より~【17-E-3】Hadoop:黄色い象使いへの道 ~「Hadoop徹底入門」より~
【17-E-3】Hadoop:黄色い象使いへの道 ~「Hadoop徹底入門」より~
Developers Summit
 

Similar to Hadoopとその周辺の紹介 (20)

AI・HPC・ビッグデータで利用される分散ファイルシステムを知る
AI・HPC・ビッグデータで利用される分散ファイルシステムを知るAI・HPC・ビッグデータで利用される分散ファイルシステムを知る
AI・HPC・ビッグデータで利用される分散ファイルシステムを知る
 
HDFS basics from API perspective
HDFS basics from API perspectiveHDFS basics from API perspective
HDFS basics from API perspective
 
Hadoop, NoSQL, GlusterFSの概要
Hadoop, NoSQL, GlusterFSの概要Hadoop, NoSQL, GlusterFSの概要
Hadoop, NoSQL, GlusterFSの概要
 
CDH4.1オーバービュー
CDH4.1オーバービューCDH4.1オーバービュー
CDH4.1オーバービュー
 
Cloudera大阪セミナー 20130219
Cloudera大阪セミナー 20130219Cloudera大阪セミナー 20130219
Cloudera大阪セミナー 20130219
 
Hadoopのインストール
HadoopのインストールHadoopのインストール
Hadoopのインストール
 
Apache Hadoop の現在と将来(Hadoop / Spark Conference Japan 2016 キーノート講演資料)
Apache Hadoop の現在と将来(Hadoop / Spark Conference Japan 2016 キーノート講演資料)Apache Hadoop の現在と将来(Hadoop / Spark Conference Japan 2016 キーノート講演資料)
Apache Hadoop の現在と将来(Hadoop / Spark Conference Japan 2016 キーノート講演資料)
 
Distributed data stores in Hadoop ecosystem
Distributed data stores in Hadoop ecosystemDistributed data stores in Hadoop ecosystem
Distributed data stores in Hadoop ecosystem
 
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コース参戦記
 
【17-E-3】Hadoop:黄色い象使いへの道 ~「Hadoop徹底入門」より~
【17-E-3】Hadoop:黄色い象使いへの道 ~「Hadoop徹底入門」より~【17-E-3】Hadoop:黄色い象使いへの道 ~「Hadoop徹底入門」より~
【17-E-3】Hadoop:黄色い象使いへの道 ~「Hadoop徹底入門」より~
 
Hadoopエコシステムのデータストア振り返り
Hadoopエコシステムのデータストア振り返りHadoopエコシステムのデータストア振り返り
Hadoopエコシステムのデータストア振り返り
 
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...
 
sparksql-hive-bench-by-nec-hwx-at-hcj16
sparksql-hive-bench-by-nec-hwx-at-hcj16sparksql-hive-bench-by-nec-hwx-at-hcj16
sparksql-hive-bench-by-nec-hwx-at-hcj16
 
Hadoop splittable-lzo-compression
Hadoop splittable-lzo-compressionHadoop splittable-lzo-compression
Hadoop splittable-lzo-compression
 
Osc2012 spring HBase Report
Osc2012 spring HBase ReportOsc2012 spring HBase Report
Osc2012 spring HBase Report
 
Zabbix jp勉強会 Hadoop-HBaseの監視_20120512
Zabbix jp勉強会 Hadoop-HBaseの監視_20120512Zabbix jp勉強会 Hadoop-HBaseの監視_20120512
Zabbix jp勉強会 Hadoop-HBaseの監視_20120512
 
OSC2012 OSC.DB Hadoop
OSC2012 OSC.DB HadoopOSC2012 OSC.DB Hadoop
OSC2012 OSC.DB Hadoop
 
Hadoop Trends & Hadoop on EC2
Hadoop Trends & Hadoop on EC2Hadoop Trends & Hadoop on EC2
Hadoop Trends & Hadoop on EC2
 
Hadoop事始め
Hadoop事始めHadoop事始め
Hadoop事始め
 
Apache Hadoop HDFSの最新機能の紹介(2018)#dbts2018
Apache Hadoop HDFSの最新機能の紹介(2018)#dbts2018Apache Hadoop HDFSの最新機能の紹介(2018)#dbts2018
Apache Hadoop HDFSの最新機能の紹介(2018)#dbts2018
 

More from Shinya Okano

Python札幌201406
Python札幌201406Python札幌201406
Python札幌201406
Shinya Okano
 
Delphi ideを使わない開発スタイルの紹介
Delphi ideを使わない開発スタイルの紹介Delphi ideを使わない開発スタイルの紹介
Delphi ideを使わない開発スタイルの紹介
Shinya Okano
 
電子書籍の話
電子書籍の話電子書籍の話
電子書籍の話
Shinya Okano
 
Python札幌 2012/06/17
Python札幌 2012/06/17Python札幌 2012/06/17
Python札幌 2012/06/17
Shinya Okano
 
mixiアプリ『the Actress』運用にあたっての課題へのチャレンジ
mixiアプリ『the Actress』運用にあたっての課題へのチャレンジmixiアプリ『the Actress』運用にあたっての課題へのチャレンジ
mixiアプリ『the Actress』運用にあたっての課題へのチャレンジ
Shinya Okano
 

More from Shinya Okano (17)

Djangoエンジニアの観点から見たHue
Djangoエンジニアの観点から見たHueDjangoエンジニアの観点から見たHue
Djangoエンジニアの観点から見たHue
 
Djangoフレームワークのユーザーモデルと認証
Djangoフレームワークのユーザーモデルと認証Djangoフレームワークのユーザーモデルと認証
Djangoフレームワークのユーザーモデルと認証
 
Djangoフレームワークの紹介
Djangoフレームワークの紹介Djangoフレームワークの紹介
Djangoフレームワークの紹介
 
Pyconjp2016 pyftplib
Pyconjp2016 pyftplibPyconjp2016 pyftplib
Pyconjp2016 pyftplib
 
Python入門 コードリーディング - PyConJP2016
Python入門 コードリーディング - PyConJP2016Python入門 コードリーディング - PyConJP2016
Python入門 コードリーディング - PyConJP2016
 
Djangoフレームワークの紹介
Djangoフレームワークの紹介Djangoフレームワークの紹介
Djangoフレームワークの紹介
 
Djangoのエントリポイントとアプリケーションの仕組み
Djangoのエントリポイントとアプリケーションの仕組みDjangoのエントリポイントとアプリケーションの仕組み
Djangoのエントリポイントとアプリケーションの仕組み
 
Djangoフレームワークの紹介 OSC2015北海道
Djangoフレームワークの紹介 OSC2015北海道Djangoフレームワークの紹介 OSC2015北海道
Djangoフレームワークの紹介 OSC2015北海道
 
Python札幌201406
Python札幌201406Python札幌201406
Python札幌201406
 
Spring4Dの紹介
Spring4Dの紹介Spring4Dの紹介
Spring4Dの紹介
 
Delphi ideを使わない開発スタイルの紹介
Delphi ideを使わない開発スタイルの紹介Delphi ideを使わない開発スタイルの紹介
Delphi ideを使わない開発スタイルの紹介
 
2011.06.01 和歌山高専
2011.06.01 和歌山高専2011.06.01 和歌山高専
2011.06.01 和歌山高専
 
電子書籍の話
電子書籍の話電子書籍の話
電子書籍の話
 
写真共有アプリのバックエンドサーバー
写真共有アプリのバックエンドサーバー写真共有アプリのバックエンドサーバー
写真共有アプリのバックエンドサーバー
 
Python札幌 2012/06/17
Python札幌 2012/06/17Python札幌 2012/06/17
Python札幌 2012/06/17
 
XenServerによるお手軽開発サーバ運用
XenServerによるお手軽開発サーバ運用XenServerによるお手軽開発サーバ運用
XenServerによるお手軽開発サーバ運用
 
mixiアプリ『the Actress』運用にあたっての課題へのチャレンジ
mixiアプリ『the Actress』運用にあたっての課題へのチャレンジmixiアプリ『the Actress』運用にあたっての課題へのチャレンジ
mixiアプリ『the Actress』運用にあたっての課題へのチャレンジ
 

Recently uploaded

Recently uploaded (11)

論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 

Hadoopとその周辺の紹介