hadoopの概念と基本的知識
TRANSCRIPT
![Page 1: Hadoopの概念と基本的知識](https://reader030.vdocuments.net/reader030/viewer/2022020218/55a9312b1a28ab7e2a8b4617/html5/thumbnails/1.jpg)
Hadoopの概念&基本的知識
2015/1/6
DMM.comラボ勉強会資料
![Page 2: Hadoopの概念と基本的知識](https://reader030.vdocuments.net/reader030/viewer/2022020218/55a9312b1a28ab7e2a8b4617/html5/thumbnails/2.jpg)
今回の勉強会の目標
1.Hadoopがどんなものかなんとなく理解する
2.Hadoopシステムをどう作れば良いか学ぶ
3.Hadoopとどう付き合うか考える
全部で60ページあるので、飛ばし気味でいきます。
![Page 3: Hadoopの概念と基本的知識](https://reader030.vdocuments.net/reader030/viewer/2022020218/55a9312b1a28ab7e2a8b4617/html5/thumbnails/3.jpg)
わかりやすいHadoop
![Page 4: Hadoopの概念と基本的知識](https://reader030.vdocuments.net/reader030/viewer/2022020218/55a9312b1a28ab7e2a8b4617/html5/thumbnails/4.jpg)
+パンチ
HADOO Punch
![Page 5: Hadoopの概念と基本的知識](https://reader030.vdocuments.net/reader030/viewer/2022020218/55a9312b1a28ab7e2a8b4617/html5/thumbnails/5.jpg)
わかりにくいHadoop
![Page 6: Hadoopの概念と基本的知識](https://reader030.vdocuments.net/reader030/viewer/2022020218/55a9312b1a28ab7e2a8b4617/html5/thumbnails/6.jpg)
Apache Hadoopは大規模データの分散処理を支えるJavaソフトウェアフレームワークであり、フリーソフトウェアとして配布されている。[2]Hadoopはアプリケーションが数千ノードおよびペタバイト級のデータを処理することを可能としている。HadoopはGoogleのMapReduceおよびGoogle File System(GFS)論文に触発されたものである。
Apache Hadoop (wikipediaより)
よくわからん!!!
今回説明するのは、こっちね。
![Page 7: Hadoopの概念と基本的知識](https://reader030.vdocuments.net/reader030/viewer/2022020218/55a9312b1a28ab7e2a8b4617/html5/thumbnails/7.jpg)
Hadoopがわかりにくい点
● ソフトウェアフレームワーク??、なにそれ??● Googleと関係あるの??
● MapReduceって何??● 用語やツールが沢山ありすぎる??● Hadoopエコシステム??地球にやさしい?
● 具体的に何をするものなのかわからない
![Page 8: Hadoopの概念と基本的知識](https://reader030.vdocuments.net/reader030/viewer/2022020218/55a9312b1a28ab7e2a8b4617/html5/thumbnails/8.jpg)
なぜHadoopが必要になったか 1
● 生み出されるデータはどんどん増える。
● データから価値を得るためには処理をしなきゃいけない。
● データを格納するためのハードディスクの容量はどんどん増えて値段も下がっている。
● ところが転送レートは容量に追随できていない。
年 容量(GB) 転送レート(MB/s) ディスク読み込み時間
1997 2.1 16.6 126秒
2004 200 56.6 59分
2014 3,000 210 3時間58分
(Cloudera Administrator Training資料から引用)
![Page 9: Hadoopの概念と基本的知識](https://reader030.vdocuments.net/reader030/viewer/2022020218/55a9312b1a28ab7e2a8b4617/html5/thumbnails/9.jpg)
なぜHadoopが必要になったか 2
● 巨大なデータを1台のマシンで処理しようとするとバス幅がボトルネックになる
● データ処理はデータを保持しているノード毎に行なって、それを集計すれば良さそう?
● GoogleがMapReduceおよびGoogle File System(GFS)論文を発表。
● インスパイア!!!(Googleのものとは違う!!)
(参考) Googleの論文
http://static.googleusercontent.com/media/research.google.com/en//archive/gfs-sosp2003.pdf
http://static.googleusercontent.com/media/research.google.com/ja//archive/mapreduce-osdi04.pdf
![Page 10: Hadoopの概念と基本的知識](https://reader030.vdocuments.net/reader030/viewer/2022020218/55a9312b1a28ab7e2a8b4617/html5/thumbnails/10.jpg)
Hadoopの超訳的説明
● 巨大なデータを格納するHDFS● 分散処理技術MapReduce
この2つの技術を軸とするフレームワーク
膨大な量のデータを処理する道具の集合体(→Hadoopエコシステム)
![Page 11: Hadoopの概念と基本的知識](https://reader030.vdocuments.net/reader030/viewer/2022020218/55a9312b1a28ab7e2a8b4617/html5/thumbnails/11.jpg)
HDFS
![Page 12: Hadoopの概念と基本的知識](https://reader030.vdocuments.net/reader030/viewer/2022020218/55a9312b1a28ab7e2a8b4617/html5/thumbnails/12.jpg)
HDFSの概要
● GFS(Google File System)をベースにしている● 膨大なデータ量を格納可能● シンプルなアーキテクチャ● ライトワンス● 低レイテンシーではない。(応答は遅い)● データスループット指向。● データは標準で3重化。
● データは128MB毎(以前のバージョンは64MB)に分割。分散配置される。(ブロックサイズ大きめ)
● データの格納先(メタデータ)を保持するNameNodeはシングルポイント。(※シングルポイントの問題を回避する方法は後で説明)
● HDFSクライアントを使ってアクセスする。
● HTTP、FTP、Fuseなどからもアクセスできる(専用のHDFSクライアント経由)。
![Page 13: Hadoopの概念と基本的知識](https://reader030.vdocuments.net/reader030/viewer/2022020218/55a9312b1a28ab7e2a8b4617/html5/thumbnails/13.jpg)
古典的HDFS構成図
NameNode
DataNode
DataNode
DataNode
DataNode
DataNode
DataNode
DataNode
DataNode
DataNode
DataNode
DataNode
DataNode
DataNode
DataNode
DataNode
DataNode
〜
〜メタデータを格納するNameNodeは1台
実データを格納するDataNodeは沢山
SecondaryNameNode
注意!!!Secondary NameNodeはバックアップではない。編集ログを元にメタデータを再構成するためのもの。
※古典的じゃないのは後で説明する
![Page 14: Hadoopの概念と基本的知識](https://reader030.vdocuments.net/reader030/viewer/2022020218/55a9312b1a28ab7e2a8b4617/html5/thumbnails/14.jpg)
HDFSへのアクセス(READ)
NameNode
DataNode
DataNode
DataNode
DataNode
DataNode
DataNode
DataNode
DataNode
DataNode
DataNode
DataNode
DataNode
DataNode
DataNode
DataNode
DataNode
〜
〜
HDFS Client
1:格納先問い合わせ
2:格納先を返答
3:データ取得依頼
4:データ転送
![Page 15: Hadoopの概念と基本的知識](https://reader030.vdocuments.net/reader030/viewer/2022020218/55a9312b1a28ab7e2a8b4617/html5/thumbnails/15.jpg)
HDFSへのアクセス(Write)
NameNode
DataNode
DataNode
DataNode
DataNode
DataNode
DataNode
DataNode
DataNode
DataNode
DataNode
DataNode
DataNode
DataNode
DataNode
DataNode
DataNode
〜
〜HDFS Client
1:格納先問い合わせ ラック配置等を考慮して格納先を決める
3:データ投入
4:書きこみ成功5:DataNode間での複製
標準だと3重化
2:格納先を返答
![Page 16: Hadoopの概念と基本的知識](https://reader030.vdocuments.net/reader030/viewer/2022020218/55a9312b1a28ab7e2a8b4617/html5/thumbnails/16.jpg)
DataNodeでの障害
NameNode
DataNode
DataNode
DataNode
DataNode
DataNode
DataNode
DataNode
DataNode
DataNode
DataNode
DataNode
DataNode
DataNode
DataNode
DataNode
DataNode
〜
〜
1:ハートビートおよびチェックサムによる障害検知
2:格納位置を再設定、データ複製指令
3:データ複製
欠損したブロックが保持していたデータを、他のDataNodeから複製することで、3重化を保つようにする。
![Page 17: Hadoopの概念と基本的知識](https://reader030.vdocuments.net/reader030/viewer/2022020218/55a9312b1a28ab7e2a8b4617/html5/thumbnails/17.jpg)
HDFSのトラフィックのポイント
● データ通信はNameNodeを経由しない。
● 読み込み時のデータ通信はHDFS ClientとDataNodeの間の通信。
● 書きこみ時の複製はDataNode間の通信
● DataNode障害時は、DataNode間の通信。
NameNodeのトラフィックはボトルネックにならない。DataNodeを増やせばトラフィック上限を増やせる
![Page 18: Hadoopの概念と基本的知識](https://reader030.vdocuments.net/reader030/viewer/2022020218/55a9312b1a28ab7e2a8b4617/html5/thumbnails/18.jpg)
NameNodeでの障害
NameNode
DataNode
DataNode
DataNode
DataNode
DataNode
DataNode
DataNode
DataNode
DataNode
DataNode
DataNode
DataNode
DataNode
DataNode
DataNode
〜
〜
シングルポイント。アクセス不能になってしまう。
DataNode中のデータは無事。
メタデータがバックアップしてあれば、NameNodeを作り直して復旧できる
HDFS Client
1:格納場所問い合わせ
![Page 19: Hadoopの概念と基本的知識](https://reader030.vdocuments.net/reader030/viewer/2022020218/55a9312b1a28ab7e2a8b4617/html5/thumbnails/19.jpg)
HDFSへのアクセス(hadoop fsコマンド)
● シェルからhadoop fsコマンドでアクセスできる
● UNIXを知ってる人なら直感的に操作可能
$ hadoop fs -cat /user/pochi/test.txt$ hadoop fs -mkdir /report$ hadoop fs -ls /user$ hadoop fs -get log.txt log.txt$ hadoop fs -put log.txt log.txt$ hadoop fs -rm /user/pochi/test.txt$ hadoop fs -chown pochi /user/pochi$ hadoop fs -chmod 777 log.txt
※ hadoop fs コマンドの代わりに hdfs dfs コマンドでも同じことができます。
![Page 20: Hadoopの概念と基本的知識](https://reader030.vdocuments.net/reader030/viewer/2022020218/55a9312b1a28ab7e2a8b4617/html5/thumbnails/20.jpg)
MapReduce
![Page 21: Hadoopの概念と基本的知識](https://reader030.vdocuments.net/reader030/viewer/2022020218/55a9312b1a28ab7e2a8b4617/html5/thumbnails/21.jpg)
MapReduce処理のイメージ
UNIX の wc コマンド
wc -w <ファイル名> 単語の数を数える
超巨大なファイル
ファイルを分割
分割されたファイル毎に単語の数を数える
集計
全体の単語の数がわかる
巨大なファイルのまま単語の数を数えるより高速
※実際にMapReduce処理のサンプルとして使われるWord Count とは違うことに注意。
![Page 22: Hadoopの概念と基本的知識](https://reader030.vdocuments.net/reader030/viewer/2022020218/55a9312b1a28ab7e2a8b4617/html5/thumbnails/22.jpg)
MapReduceと相性が良いHDFS
• ファイルが128MB毎に分割され、複数の筐体に格納されている。
• 格納先は通常のサーバ。そのCPUを分散処理に利用できる。
データがあるノードで処理を行なうことができる
![Page 23: Hadoopの概念と基本的知識](https://reader030.vdocuments.net/reader030/viewer/2022020218/55a9312b1a28ab7e2a8b4617/html5/thumbnails/23.jpg)
MapReduceのバージョン
● MapReduceには、Version 1と2がある。
● Version2では、YARNというリソースマネジメントの仕組みが加わった。
MapReduce V1 MapReduce V2
YARN
![Page 24: Hadoopの概念と基本的知識](https://reader030.vdocuments.net/reader030/viewer/2022020218/55a9312b1a28ab7e2a8b4617/html5/thumbnails/24.jpg)
MapReduce V1のシステム構成
TaskTracker DataNode
TaskTracker DataNode
TaskTracker DataNode
TaskTracker DataNode
NameNodeJobTracker
クライアント
1筐体上で DataNode と TaskTracker が動く
![Page 25: Hadoopの概念と基本的知識](https://reader030.vdocuments.net/reader030/viewer/2022020218/55a9312b1a28ab7e2a8b4617/html5/thumbnails/25.jpg)
MapReduce V1 の動作
TaskTracker DataNode
TaskTracker DataNode
TaskTracker DataNode
TaskTracker DataNode
NameNodeJobTracker
クライアント
1.タスク依頼
2.MAP
3.Reduce
元データ、中間データ、最終データは、すべてHDFS上に置かれる
![Page 26: Hadoopの概念と基本的知識](https://reader030.vdocuments.net/reader030/viewer/2022020218/55a9312b1a28ab7e2a8b4617/html5/thumbnails/26.jpg)
YARN+MapReduce V2のシステム構成
NodeManager DataNode
NameNodeResourceManager
クライアント
1筐体上で DataNode と NodeManager が動くJob Trackerの代わりにResource Managerを使う履歴を管理するための Job History Server が追加
NodeManager DataNode
NodeManager DataNode
NodeManager DataNodeJob HistoryServer
![Page 27: Hadoopの概念と基本的知識](https://reader030.vdocuments.net/reader030/viewer/2022020218/55a9312b1a28ab7e2a8b4617/html5/thumbnails/27.jpg)
NodeManagerの機能
● Mapタスク、Reduceタスクを実行するコンテナとして動作する
● Application Masterとして機能する
![Page 28: Hadoopの概念と基本的知識](https://reader030.vdocuments.net/reader030/viewer/2022020218/55a9312b1a28ab7e2a8b4617/html5/thumbnails/28.jpg)
YARN+MapReduce V2の動作 1
NodeManager DataNode
NameNodeResourceManager
クライアント
Jobを投入されたNodeManagerは、Application MasterになるApplication MasterはResource Managerにリソースを要求し割り当てられたリソースにMAPタスクを投入する
NodeManager DataNode
NodeManager DataNode
NodeManager DataNodeJob HistoryServer
1.タスク依頼
2.Job投入
Application Master3.リソース要求
4.MAP
![Page 29: Hadoopの概念と基本的知識](https://reader030.vdocuments.net/reader030/viewer/2022020218/55a9312b1a28ab7e2a8b4617/html5/thumbnails/29.jpg)
YARN+MapReduce V2の動作 2
NodeManager DataNode
NameNodeResourceManager
クライアント
Application MasterはResource Managerにリソースを要求し割り当てられたリソースにReduceタスクを投入する処理完了後履歴を記録する元データ、中間データ、最終データは、すべてHDFS上に置かれる
NodeManager DataNode
NodeManager DataNode
NodeManager DataNodeJob HistoryServer
Application Master5.リソース要求
6.Reduce
7.履歴記録
![Page 30: Hadoopの概念と基本的知識](https://reader030.vdocuments.net/reader030/viewer/2022020218/55a9312b1a28ab7e2a8b4617/html5/thumbnails/30.jpg)
なんか複雑に
なってきたぞ。。。
![Page 31: Hadoopの概念と基本的知識](https://reader030.vdocuments.net/reader030/viewer/2022020218/55a9312b1a28ab7e2a8b4617/html5/thumbnails/31.jpg)
シングルポイントはなんとかしたいNameNodeを冗長化
DataNode DataNode DataNode DataNode
Zookeeper Zookeeper Zookeeper
JournalNode
JournalNode
JournalNodeNameNode
QuorumJournal Manager
ZookeeperFailover
Controller
NameNode
QuorumJournal Manager
ZookeeperFailover
Controller
![Page 32: Hadoopの概念と基本的知識](https://reader030.vdocuments.net/reader030/viewer/2022020218/55a9312b1a28ab7e2a8b4617/html5/thumbnails/32.jpg)
冗長性確保のために
こんなに複雑に。。。
シンプルさはどこへ。。。
![Page 33: Hadoopの概念と基本的知識](https://reader030.vdocuments.net/reader030/viewer/2022020218/55a9312b1a28ab7e2a8b4617/html5/thumbnails/33.jpg)
Hadoopエコシステム
● Hadoopの関連ツール
– データ投入: Sqoop、Flume
– データ処理: Spark
– データ分析: Hive、Pig、Impala
– データ探索: Solr
– 機械学習: Mahout、Oryx
– ユーザインターフェイス: Hue
– ワークフロー管理: Oozie
– クラスタ管理: Cloudera Manager等
Hadoopはこういうプログラム経由で利用される
![Page 34: Hadoopの概念と基本的知識](https://reader030.vdocuments.net/reader030/viewer/2022020218/55a9312b1a28ab7e2a8b4617/html5/thumbnails/34.jpg)
さらにHadoopに足りない機能
• ちゃんとしたセキュリティの仕組み• 統合管理のための仕組み
![Page 35: Hadoopの概念と基本的知識](https://reader030.vdocuments.net/reader030/viewer/2022020218/55a9312b1a28ab7e2a8b4617/html5/thumbnails/35.jpg)
(参考)Googleは今はMapReduceを使っていない
● 「Google I/O 2014」(2014年6月25日)で、「Google Cloud Dataflow」を発表
● 基調講演で「Google社内でMapReduceをほとんど使っていない」と語る
● Googleは並列パイプライン処理技術である「FlumeJava」や大規模ストリーム処理技術である「MillWheel」など新しい技術を次々と開発している。
※その1ヶ月後、やっぱりMapReduceも使ってるよ、と別の人が言ってるけどね→Appendix参照
![Page 36: Hadoopの概念と基本的知識](https://reader030.vdocuments.net/reader030/viewer/2022020218/55a9312b1a28ab7e2a8b4617/html5/thumbnails/36.jpg)
Hadoopも進化している
● Hadoop 2 リリース(2013年10月)– MapReduce以外の処理にも対応
– DAGエンジンを使うことで100倍高速化も実現
– SparkはDAGエンジンの1つ
● HDFSの性能向上、別のファイルシステムへの移行
– HDFSのAPI、MapReduceのAPIを維持できれば内部構造は柔軟に変更できる。
– HDFS以外のファイルシステムも、HDFS、MapReduceのAPIを実装してきている。
![Page 37: Hadoopの概念と基本的知識](https://reader030.vdocuments.net/reader030/viewer/2022020218/55a9312b1a28ab7e2a8b4617/html5/thumbnails/37.jpg)
素朴に手作業でインストールするのは
無茶!!!
![Page 38: Hadoopの概念と基本的知識](https://reader030.vdocuments.net/reader030/viewer/2022020218/55a9312b1a28ab7e2a8b4617/html5/thumbnails/38.jpg)
Hadoopのディストリビューション
沢山ある。
これらを使えば楽にインストールと管理が可能。
● Cloudera CDH● MapR● Hortonworks HDP● Pivotal● IBM Biginsights● Microsoft HDinsight
笑っちゃうぐらい便利!!
![Page 39: Hadoopの概念と基本的知識](https://reader030.vdocuments.net/reader030/viewer/2022020218/55a9312b1a28ab7e2a8b4617/html5/thumbnails/39.jpg)
Hadoopシステムを作るにあたって考えるべきこと
![Page 40: Hadoopの概念と基本的知識](https://reader030.vdocuments.net/reader030/viewer/2022020218/55a9312b1a28ab7e2a8b4617/html5/thumbnails/40.jpg)
どんなシステム開発でも共通のこと
● このへんはちゃんと決めておく(仮説でもOK)– システムのオーナー– 目的– 体制– 運用プラン– システムの寿命– KPI– コスト
これがはっきりしてないシステム開発は要注意!!
![Page 41: Hadoopの概念と基本的知識](https://reader030.vdocuments.net/reader030/viewer/2022020218/55a9312b1a28ab7e2a8b4617/html5/thumbnails/41.jpg)
Hadoopで考慮すること
● どんなデータを溜めるのか?● 容量はどのぐらい?、どのぐらいの容量で増加する?● システムを段階的に増強していく?、作ったシステムはそのまま?● データのバックアップはどうする?● そのデータをどう処理する?● データを誰が使う?● アプリケーション開発者との連携はどうする?● Hadoopの技術サポート体制をどうする?
これらにより用意するデータセンター、ネットワーク、ハードウェア、が変わってくる。
![Page 42: Hadoopの概念と基本的知識](https://reader030.vdocuments.net/reader030/viewer/2022020218/55a9312b1a28ab7e2a8b4617/html5/thumbnails/42.jpg)
それ自前Hadoopでいいの?
● 自前でHadoopを構築する以外にも選択肢はある。
● Amazon Redshift 等も有力。
● ログ解析だったら、Fluentd+Riakを使うとか。
● Treasure Data のような便利なASPもある。
Hadoop以外の技術を使う、自前でやらない、という選択肢も捨てるべきではない。
それでも自前でやるメリットはあるぞ。
![Page 43: Hadoopの概念と基本的知識](https://reader030.vdocuments.net/reader030/viewer/2022020218/55a9312b1a28ab7e2a8b4617/html5/thumbnails/43.jpg)
ハードウェア選定等
![Page 44: Hadoopの概念と基本的知識](https://reader030.vdocuments.net/reader030/viewer/2022020218/55a9312b1a28ab7e2a8b4617/html5/thumbnails/44.jpg)
ハードウェア選定のポイント
● MasterNode(NameNode、ResourceManager等)と、SlaveNode(データを格納するストレージ)は、特性が異なる。
![Page 45: Hadoopの概念と基本的知識](https://reader030.vdocuments.net/reader030/viewer/2022020218/55a9312b1a28ab7e2a8b4617/html5/thumbnails/45.jpg)
SlaveNodeの推奨ハードウェア
● 筐体は2Uのサーバ等、ハードディスクが沢山載るもの。R720とか。
● メモリは多め。● ハードディスクはRAIDを組まない。
– OS部分はRAID1とかのほうが良いかも。
– OSはSDカードから起動してハードディスクは全部データ領域とかも。
● ネットワークは最低1G、できれば10G。
● CPUは動かすプログラムによるが6コア程度でOK。● コストパフォーマンスが良い筐体を選ぶ。
![Page 46: Hadoopの概念と基本的知識](https://reader030.vdocuments.net/reader030/viewer/2022020218/55a9312b1a28ab7e2a8b4617/html5/thumbnails/46.jpg)
SlaveNodeの非推奨事項
● 仮想サーバはできればNG。共有リソースがボトルネックになる可能性がある。
● ブレードサーバもNG。共有部分がボトルネックになる可能性がある。
● RAID構成もNG。遅くなる可能性がある。
![Page 47: Hadoopの概念と基本的知識](https://reader030.vdocuments.net/reader030/viewer/2022020218/55a9312b1a28ab7e2a8b4617/html5/thumbnails/47.jpg)
MasterNodeの推奨ハードウェア
● コモディティハードウェアじゃなく、キャリアクラスハードウェアを選ぶ。
● ハードウェアで冗長化できるところは冗長化する。● 電源冗長化。● ハードディスクはRAIDを組む。● ネットワークはボンディング構成。● メモリは沢山積む。
![Page 48: Hadoopの概念と基本的知識](https://reader030.vdocuments.net/reader030/viewer/2022020218/55a9312b1a28ab7e2a8b4617/html5/thumbnails/48.jpg)
その他注意点
● ハードディスクはLVM等も使わず素の状態で1台ずつmountする
● Java は Oracle Java を使う。
● Chef等の構成管理、自動化ツールは必需品
● IPv6は無効化する!!!
![Page 49: Hadoopの概念と基本的知識](https://reader030.vdocuments.net/reader030/viewer/2022020218/55a9312b1a28ab7e2a8b4617/html5/thumbnails/49.jpg)
Hadoopを配置するネットワークセグメントのセキュリティについて
![Page 50: Hadoopの概念と基本的知識](https://reader030.vdocuments.net/reader030/viewer/2022020218/55a9312b1a28ab7e2a8b4617/html5/thumbnails/50.jpg)
セキュリティに関しての考慮事項
● Hadoopの各システム間は通信できる必要がある。
● Hadoopのセキュリティ機能はあてにできない。● データの中には大事なものが含まれる、と考える。● MySQL等のデータベースと同じぐらい大事。● アクセスできる人をネットワーク的に制限すべき。● Hadoopの各システムはウェブインターフェイスを
持っており、ウェブアクセスできたほうが運用は楽
![Page 51: Hadoopの概念と基本的知識](https://reader030.vdocuments.net/reader030/viewer/2022020218/55a9312b1a28ab7e2a8b4617/html5/thumbnails/51.jpg)
どう設計するか(案)
● データベースと同等のセキュリティレベルを持つ隔離されたセグメント中に構築する。
● そのセグメントの中へウェブアクセスできるような仕組みを作る。
– セグメント中にRDP端末を用意しそのRDP端末へのログインを制限する or
– 認証機能を持つプロキシサーバを設置する
● ユーザには、必要なHadoopクライアントのインターフェイスを公開し、そこを通してHadoopを使ってもらうようにする。
![Page 52: Hadoopの概念と基本的知識](https://reader030.vdocuments.net/reader030/viewer/2022020218/55a9312b1a28ab7e2a8b4617/html5/thumbnails/52.jpg)
Hadoopの運用
![Page 53: Hadoopの概念と基本的知識](https://reader030.vdocuments.net/reader030/viewer/2022020218/55a9312b1a28ab7e2a8b4617/html5/thumbnails/53.jpg)
ハードウェア障害時
● SlaveNodeのハードディスク障害時の対応。– ハードディスクが故障するとが自動的にクラスタから外れ、別の筐体に
データが複製される。– ハードディスクが故障してもすぐに直さず1週間ぐらい放っておいて、まと
めて修理させても問題はない。– 新たに投入した筐体内のデータはなくなる。– 偏りが生じた場合にはリバランス処理を行なう。
● SlaveNode障害時の対応
– ハードディスク障害と同じようにまとめて修理でOK。
● MasterNodeの障害対応– すみやかに直すべき。
![Page 54: Hadoopの概念と基本的知識](https://reader030.vdocuments.net/reader030/viewer/2022020218/55a9312b1a28ab7e2a8b4617/html5/thumbnails/54.jpg)
なんらかのアラート発生時
● 管理ツール等からステータスを確認する– 原因がわかったら、その原因を修正する。
● パラメータチューニングとか● プログラムの修正とか● ハードウェアの増強とか
● MySQLの運用なんかと同じように、知識は必要。
![Page 55: Hadoopの概念と基本的知識](https://reader030.vdocuments.net/reader030/viewer/2022020218/55a9312b1a28ab7e2a8b4617/html5/thumbnails/55.jpg)
Hadoopエコシステムを構成するソフトウェアの特徴
● ほとんどはJavaで書かれている
– Javaのお作法を知ってれば管理が楽● 起動オプションによるメモリ管理● XMLで記述された設定ファイル
● 各プログラムがウェブインターフェイスを持っている– ステータスやログをウェブから確認できる
![Page 56: Hadoopの概念と基本的知識](https://reader030.vdocuments.net/reader030/viewer/2022020218/55a9312b1a28ab7e2a8b4617/html5/thumbnails/56.jpg)
どうやって勉強するか?
● 概要がわかったらいじってみれば良いかと。● 1つのサーバにすべてのプログラムを入れて動かして
みることも可能。
● Cloudera主催のHadoop管理者研修のハンズオン演習は、Hadoopエコシステムを構成する各プログラムを手で1つずつインストールしていく、という地味な演習。仕組みを理解するには一番わかりやすいかも。
![Page 57: Hadoopの概念と基本的知識](https://reader030.vdocuments.net/reader030/viewer/2022020218/55a9312b1a28ab7e2a8b4617/html5/thumbnails/57.jpg)
Special Thanks
● Cloudera 川崎さん
– Hadoop管理者向けトレーニング↓では大変お世話になりました。
● http://www.cloudera.co.jp/university/courses/administrator-training.html
![Page 58: Hadoopの概念と基本的知識](https://reader030.vdocuments.net/reader030/viewer/2022020218/55a9312b1a28ab7e2a8b4617/html5/thumbnails/58.jpg)
おしまい
![Page 59: Hadoopの概念と基本的知識](https://reader030.vdocuments.net/reader030/viewer/2022020218/55a9312b1a28ab7e2a8b4617/html5/thumbnails/59.jpg)
(Appendix) Hadoopの名前の由来
The name my kid gave a stuffed yellow elephant. Short, relatively easy to spell and pronounce, meaningless, and not used elsewhere: those are my naming criteria. Kids are good at generating such. Googol is a kid's term.
私の子供が付けた黄色い象のぬいぐるみの名前から来てるよ。短くて、スペルと発音が簡単で、意味がなくて、他で使われてない、というのが命名の基準。子供はそういうの考えるのうまいよね。Googolも子供が作った言葉だし。
http://weblogs.java.net/blog/tomwhite/archive/2006/02/hadoop.html
![Page 60: Hadoopの概念と基本的知識](https://reader030.vdocuments.net/reader030/viewer/2022020218/55a9312b1a28ab7e2a8b4617/html5/thumbnails/60.jpg)
(Appendix) GoogleではまだMapReduceを使ってる
2014/7に、Google Senior Fellow の Jeff Dean’s がこんなことを喋ってる。
Jeff also spent some time addressing how MapReduce, Bigtable, and other familiar technologies are being used at Google today.
For example, Jeff told us that more than 1 million MR jobs run at Google daily, although use of the native API was largely dropped in favor of FlumeJava (the inspiration for Apache Crunch) and other abstractions some time ago
使われる頻度は減っているようだが、レガシーな処理では相変わらず現役っぽい。1日に100万個のMapReduceのJobが走ってるとのこと。
http://blog.cloudera.com/blog/2014/07/jeff-deans-talk-at-cloudera/