Hadoopとその周辺の紹介

1,275 views

Published on

Published in: Technology
1 Comment
2 Likes
Statistics
Notes
No Downloads
Views
Total views
1,275
On SlideShare
0
From Embeds
0
Number of Embeds
53
Actions
Shares
0
Downloads
11
Comments
1
Likes
2
Embeds 0
No embeds

No notes for slide

Hadoopとその周辺の紹介

  1. 1. Hadoopとその周辺の紹介 BPStyle #41 tokibito
  2. 2. Apache Hadoopとは ● 分散処理基盤 ○ HDFS - 分散ファイルシステム ○ MapReduce - 分散処理フレームワーク ● Apache財団のプロジェクト ● Javaで作られている ● http://hadoop.apache.org/
  3. 3. HDFSとは ● 分散ファイルシステムのサービス ● Unixのファイルシステムのように、ディレクトリや パーミッション、所有者の概念がある ● 大きく分けて2つのコンポーネントで構成 ○ NameNode - 各ファイルのメタ情報を管理 ○ DataNode - 実データを持つ
  4. 4. NameNodeとDataNodeのイメージ NameNode DataNode DataNode DataNode HDD HDD HDD NameNodeが1台でDataNodeが複数台
  5. 5. 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
  6. 6. MapReduceとは ● 分散処理フレームワーク ● 大きく分けて2つのコンポーネントで構成 ○ JobTracker ○ TaskTracker ● ジョブ(Job) ○ Map処理とReduce処理の組み合わせ ■ org.apache.hadoop.mapreduce.Mapper ● 分割された入力データを並列処理 ■ org.apache.hadoop.mapreduce.Reducer ● Mapperの処理結果を一つにまとめる ○ jarパッケージにしてJobTrackerに登録する
  7. 7. JobTrackerとTaskTrackerのイメージ JobTracker TaskTracker TaskTracker JobTrackerが1台でTaskTrackerが複数台 TaskTrackerでMap/Reduce処理が実行される TaskTracker
  8. 8. Map処理とReduce処理のイメージ Job Map処理 Input Map処理 Map処理 Reduce処理 Output
  9. 9. MapReduceを使うのは面倒くさい ● Javaで処理を書く必要がある ● jarを作ってJobTrackerに登録しないといけない ● SQL使いたい →そこでApache Hive
  10. 10. Apache Hive ● Hadoop上のクエリエンジン ● SQLで問い合わせ ○ SQLからMapReduceタスクを生成して実行 ● Javaで実装されている ● http://hive.apache.org/
  11. 11. 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
  12. 12. Hiveは遅い? ● 小さなデータに対してクエリした場合でも数十秒 かかったりすることがある ○ HDFSへのアクセスのオーバーヘッドが大きい ○ MapReduce処理が遅い →そこでCloudera Impala
  13. 13. Cloudera Impala ● Hadoop上のクエリエンジン ● SQLで問い合わせ ○ ImpalaDaemonがSQLをコンパイルして実行(LLVM) ● MapReduce処理の最適化 ○ Impaladのノードと同じマシンのDataNodeを直接参照 ■ ネットワーク転送のオーバーヘッド軽減 ● C++で実装 ● Hiveのメタ情報を利用 ○ hiveのテーブルを参照できる ● 現状ではHiveの全機能はカバーできてない ● http://impala.io/
  14. 14. 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
  15. 15. 他のHadoop関連のプロダクト ● ● ● ● Apache HBase - KVS Apache Flume - ログ収集 Apache Oozie - ワークフローエンジン Cloudera Hue - Hadoopのフロントエンド など
  16. 16. Hadoopは大変 ● コンポーネントの数が多い ● 依存関係の解決が面倒(バージョンも気にする 必要ある) ● 複数台のサーバー管理が必要(HA構成なら最 低でも7〜11台以上) →そこでCDHとCloudera Manager
  17. 17. CDH ● Cloudera's Distribution Including Apache Hadoop ● 米Cloudera社 ● Hadoopのパッケージ ○ rpm ○ 依存関係が解決されている ○ 安定したバージョンのパッケージ ● http://www.cloudera. com/content/cloudera/en/products-andservices/cdh.html
  18. 18. Cloudera Manager ● Hadoopクラスタの管理ツール ● Webベース ● ホストの管理 ○ 対象の各ホストにagentをインストールする ● ホストへのCDHのインストール ○ 一括で自動インストール可能 ● サービスの管理 ○ どのホストでどのサービスを動かすかをWebUIから一括 設定可能 ● http://www.cloudera. com/content/cloudera/en/products-and-
  19. 19. Hadoopの利点は? ● 一台で処理できないような量のデータを扱える ○ MapReduce ● 一台で保存できないような量のデータを扱える ○ HDFS ○ 容量が足りなければ台数を増やせばよい ○ 台数を増やせばパフォーマンスも上がる ● メモリに載り切らないようなデータを現実的な時 間で処理できる ● 正規化されていないデータを処理できる
  20. 20. Hadoopの欠点は? ● 速くはない ○ メモリに乗る程度のデータ量ならRDBMSを使ったほう がかなり速い ● 推奨マシンスペックは低くない ○ Impalaの推奨メモリは128GB以上 ■ コモディティサーバー≠安価なサーバー ○ 最低でも1ノードあたり4〜8GB程度ないと、まともに動 かない ● 最小構成のサーバー台数が多い ○ HA構成ならマスター3台、スレーブ4〜8台以上 ● コンポーネント数が多く、複雑なのでトラブル シューティングは大変
  21. 21. http://www.slideshare.net/Cloudera_jp/cloudera-manager-5-hadoop-cwt2013

×