象本:Chapter9 Setting Up a Hadoop Clusterの第一版/第二版の差分をみてみたよ

英語の第二版をHadoop Worldのおまけセットでもらったので、Adminの試験に向けてちょっと読んで人間diffしようかと思います。いろいろあって試験これからなんですよね。

日本語の第一版と英語の第二版の比較なので、まあ微妙なところはあるかもです。
追っていきます。

【前書き】
・変更なし

【Cluster Specification】
・price/performance curveって変更?日本語訳ではしょっただけだと思うけど。
・標準的なTaskTracker/DataNodeの構成が2010バージョンに。2010年クラスタはプロセッサはquad 2-2.5GHz、メモリは16-24GBくらい積んでおけという(あと、どうでもいいけど日本語第一版のディスク容量がtypo)。
・ノードの追加のところが2010クラスタ前提になってる。どうでもいいけど。
・Compressed Ordinary Object Pointerを圧縮オブジェクトポインタって訳すのはOrdinary抜けてるけどそういうものかな?と思ったけど本題とは関係ないし普通のポインタってのもどうなのかなーとか。結局どうでもいいけど、http://www.narihiro.info/translate/CompressedOops.html がチラ見それっぽかったけどよくわからんかった。

【Network Topology】
・変更なし

【Rack Awareness】
・ラックとノードの対応付けは、http://wiki.apache.org/hadoop/topology_rack_awareness_scripts にサンプルがあるよという記述に

【Cluster Setup And Installation】
・変更なし

【Installing Java
・変更なし

【Creationg a Hadoop User】
・変更なし

【Installing Hadoop
・コラムみたいなところで、HDFSのモジュールとMapReduceを個別にインストールしてもログは同じディレクトリにおけるよ、という記述が追加

【Testing The Installation】
・変更なし

SSH Configuration】
・変更なし

Hadoop Configuration】
・変更なし

【Condiguration Manaement】
・変更なし

【Control Scripts】
・変更なし

【Master Node Scenarios】
・変更なし

【Environment Settings】
・変更なし

【Memory】
・変更なし

Java
・変更なし

【System Logfiles】
・変更なし

SSH Settings】
・最後の文章のところが、「各ワーカーマシンでコマンドを実行した後にマスターがスリープする」的な感じだけど一版が間違ってたのか誤訳かはわかんない感じ

【Important Hadoop Daemon Properties】
・変更なし

【HDFS】
・変更なし

【MapReduce】
・変更なし

Hadoop Daemon Addresses and Ports】
・表9-5と表9-6の間にセンテンスが移動(なんだろ?割とどうでもいいけど)

【Other Hadoop Properties】
・変更なし

【Cluster Membership】
・dfs.hostsで指定するのは対象のリストじゃなくてファイルっぽいけど、第二版の記述が間違ってるように見えたり?おしえてえらいひと。

【Buffer Size】
・変更なし

【HDFS Block Size】
・変更なし

【Reserved Storage Space】
・変更なし

【Trash】
・変更なし

【Task Memory Limits】
・変更なし

【Job Scheduler】
・変更なし

【User Account Creation】
・セクション名が「インストール後の後処理」から変更されてるっぽい

【Security、以降の小節】
・新規追加、英語第二版281から
・ユーザーごとのデータに対するアクセス制御ができる
・クライアントは、Ticket-Granting TicketをAuthentication Serverからもらい、Service TicketをTicket Granting Serverからもらい、サーバーにサービス要求する
・Delegation Tokenというのを使ってたり
・ブロックアクセスの制御は、dfs.block.access.token.enableを有効にする
・HBaseとかHiveとのセキュリティの統合はまだ
・その他いろいろ細かいところも書いてあるっぽい

【Benchmarking a Hadoop Cluster】
・変更なし

Hadoop Benchmarks】
・変更なし

【Benchmarking HDFS With TestDFSIO】
・変更なし

【Benchmarking MapReduce With Sort】
・変更なし

【Other Benchmarks】
・変更なし

Hadoop in the Cloud】
・変更なし

Hadoop on Amazon EC2
Apache Whirr projectについての記述が追加
HadoopのEC2向け便利スクリプトはもうdeprecatedらしい、src/contrib/ec2とか
・whirrはpythonもあるしjavaもある
・EC2だとネットワークトポロジが意識できないという内容のコラムが削除、いまは意識できるんすかね?

【Setup】
・AWSの環境情報の書き先の話が削除。whirrだとAWSの環境情報の書き方先がsrc/contrib/ec2/bin/hadoop-ec2-env.shじゃないところで、hadoop.propertiesに書くっぽい。

【Launching a Cluster】
・AWSのクラスタに触るにはSSHのトンネリングがいるらしく、eval 'hadoop-ec2 proxy クラスタ名'とかしないといけないらしい

【Running a MapReduce Job】
・EC2の中からしかジョブが実行できなかったのが、そとからも行けるようになってる
hadoopの設定ディレクトリがクラスタ起動時に作成されるので、それをみるようにすればいい
・インプットデータは取り込んでおけば普通にアクセスできるし、S3をそのままみてもおk
・proxy auto-configをやっておくと、ローカルからjobの実行情報をみる50030のあれがみれたり。細かいことはwhirrみてねって書いてある。

【Terminating a Cluster】
・ローカルからhadoopを操作してる前提だと、hadoop-ec2 terminate-clusterしたあとに、sshのプロキシを止める。kill $HADOOP_CLOUD_PROXY_PIDでおk。



あと、個人的に読み落としていたところ。多分、trainingでも話してたと思うけど聞き取れなかった議論があるかも。
・DataNode/TaskTrackerのプロセスもスロットを消費する
・ストレージはnotimeでマウントする。そりゃそうですが、気づいてないとやらないですねすいません。
・mapred.jpb.trackerプロパティはURIじゃなくてコロン区切りのホスト/ポートのペア。だから何だって話ですが。
・DataNode/TaskTrackerのipアドレスとしてどのネットワークカードのあれを使うかとかも設定できたり
・ブロックサイズだけじゃなくてバッファサイズのチューニングも大事
・ストレージの容量全部をHDFSに使われると困るときは、dfs.datanode.du.reservedを設定すればおk
・プログラムからもゴミ箱が使える。Trash#moveToTrash


ということで、大きな変更としては、
・セキュリティについての記述が追加
・EC2使いたいときのhadoop便利スクリプトがdeprecatedになってたりするのでwhirr使おう

という感じでした。