@shiumachi による hadoop tips 集 #14e35d

その日の仕事の終わりに hadoop に関する tips をツイートするという日課をはじめてみました。 たまに役に立つ tips も流しますが、基本スタンスはトリビア的な微妙なラインです。 ハッシュタグ #14e35d は、ユニークなハッシュタグ名がほしかっただけで特に意味はありません。
9
Tatsuo Kawasαki @kernel023

36. CDH4 (Hadoop0.23 or 2.0.0)でdeplicatedになっているプロパティ一覧: http://t.co/XMt59bDE #14e35d

2012-09-11 22:53:20
Tatsuo Kawasαki @kernel023

35. JobTracker Recovery機能はMapReduceでジョブを実行中にJobTrackerに障害が発生した場合、JobTrackerの再起動後に該当するジョブを再サブミットする #14e35d

2012-09-07 23:38:17
Sho Shimauchi @shiumachi

34. mapred. cluster. map. memory. mbを使えば、タスクの使用メモリに応じたスロット数を割り当てることができる。例えば1GBに設定した状態でタスクが2GBのヒープを使う場合、そのタスクは2スロット使っているとみなされる #14e35d

2012-09-03 20:10:08
Sho Shimauchi @shiumachi

33. Hadoop のログレベルを変更したい場合は conf/log4j . properties の中で log4j . logger . (ログを出力したいパッケージ・クラス名)=(ログレベル) と設定すればいい #14e35d

2012-08-29 19:32:49
Sho Shimauchi @shiumachi

32. HBaseの書き込み性能によるサイジングの指標は、おおざっぱに「セルサイズKB*OPS=10-50MB/ノード」で計算できる。あくまでラフな計算なので過信しないこと。参考 http://t.co/VElKFouR #14e35d

2012-08-27 19:55:19
Sho Shimauchi @shiumachi

31. map 出力に何も指定していなくても、reduce は実行される。reduce を無効にするには mapreduce . job . reduces (CDH3では mapred . reduce . tasks) を 0 とする。 #14e35d #hadoop

2012-08-25 01:01:20
Sho Shimauchi @shiumachi

30. Hadoop のチューニングも重要だが、ノードを追加して解決するという選択肢を常に忘れないこと。サーバ代はかかるもののチューニングにかかる人件費と時間を節約できる #14e35d

2012-08-23 23:40:37
Sho Shimauchi @shiumachi

29. フィルタ機能を使えば、HBase の巨大なテーブル内の指定した条件の行だけを結果として取得できる。標準で既に何種類ものフィルタがあるが、カスタムフィルタを作成することも可能 #14e35d

2012-08-22 22:51:28
Sho Shimauchi @shiumachi

28. hadoop fs -moveToLocalというコマンドがある。名前から、HDFS上からローカルへファイルを移動するコマンドのように見えるが実際は「まだ実装されていません」と出力されるだけである #14e35d

2012-08-21 23:15:15
Sho Shimauchi @shiumachi

27. CDH3u4及びCDH4に追加されたNNリカバリツールを使えば、たとえeditsが壊れたとしても壊れた部分だけを削除して修復することが可能。これを使わない場合バイナリの直接編集しか手がない http://t.co/l8fHqMT3 #14e35d #hadoop

2012-08-20 23:57:34
Tatsuo Kawasαki @kernel023

26. Fair Schedulerのログを記録するにはmapred.fairscheduler.eventlog.enabledをtrueに設定する。デフォルトはfalse #14e35d

2012-08-17 20:36:54
Sho Shimauchi @shiumachi

25. hadoop dfsadmin -safemode enterコマンドにより、Hadoopをセーフモードに変更することができる。この状態にすれば一切書き込みや削除ができなくなるので、クラスタに何か深刻な異常が発生した場合に安全に検査を行うことができる #14e35d

2012-08-16 21:44:05
Sho Shimauchi @shiumachi

24. hbase shell における status コマンドは、'detailed' を付与することでその真価を発揮する。CDH4 ならリージョンごとのストアファイルの数やサイズから、読み書きのリクエスト数、さらにはコプロセッサまで表示してくれる #14e35d

2012-08-14 22:12:36
Sho Shimauchi @shiumachi

23. HBaseのWeb UIは、クラスタ全体の情報からテーブル・リージョン情報まで細かく表示してくれる。さらに、Web UI上からスプリットやコンパクションも行うことができる。hbase shellしか使ってない人は一度試してみよう #14e35d

2012-08-09 19:46:57
Sho Shimauchi @shiumachi

22. HDFSのクラスタのサイズを知る一番簡単な方法はNNのWeb UIを見ることである。ファイル数、ブロック数、ヒープなどを表示する。CDH4なら各DNのディスク使用量について中間値や標準偏差まで表示してくれる #14e35d http://t.co/SrHMDyqO

2012-08-06 22:21:39
拡大
Sho Shimauchi @shiumachi

21. Hadoop 用のローカルファイルシステムは ext3/ext4 で十分。ZFS や Btrfs 等の高機能なファイルシステムは必要ない。noatime をつけるのを忘れないように。#14e35d

2012-08-02 20:25:33
Sho Shimauchi @shiumachi

20. HBase のカラムファミリ(列ファミリ)は印刷可能文字列(printable string)でなければならない。これは、HDFS においてディレクトリ名として扱われるからである. #14e35d

2012-08-01 21:12:37
Sho Shimauchi @shiumachi

19. hadoop mapreduce にはカウンタという機能があり、実行中のジョブにおける様々な情報を記録し、JTのUIから閲覧することができる。デフォルトでは入出力のバイト数などをカウントする。独自のカウンタも容易に定義可能。 #14e35d

2012-07-29 22:36:42
Sho Shimauchi @shiumachi

18. Cloudera Manager は、バージョン4から国際化対応した。日本語でもドイツ語でも表示可能。 #14e35d

2012-07-28 00:16:18
Sho Shimauchi @shiumachi

17. HBase で不整合が発生した場合にまずやるべきこと 1 hbase hbck 2 scan meta 通常は復旧可能なので落ち着いて行動すること #14e35d

2012-07-26 22:14:55
Sho Shimauchi @shiumachi

16. reduce 側での投機的実行はあまり効率がよくないので無効にすることが多い #14e35d #hadoop

2012-07-25 21:17:11
Sho Shimauchi @shiumachi

15. HBaseコプロセッサは非常に扱いが難しいので、たとえ使われている事例があったとしてもいきなり使ったりしないこと。既存のHBaseの機能を調べ尽くし、どうしても他に解決策がない場合のみ使うこと。アセンブラでコーディングするようなもの #14e35d

2012-07-24 23:17:26
Sho Shimauchi @shiumachi

14. Hadoop HDFS に深刻な問題が発生した場合にやるべきこと 1 nn dirのバックアップ、必要ならsavenamespaceによるイメージのダンプ 2 セーフモードのしきい値を 1.0 より多くしてから再起動 #14e35d

2012-07-23 19:26:32
Sho Shimauchi @shiumachi

13. FileInputFormat はデフォルトで ‘_’ と ‘.’ で始まるファイルやディレクトリを除外する #14e35d #hadoop

2012-07-20 23:13:47
Sho Shimauchi @shiumachi

12. Hadoop で雨が降ることを予測することはできるかもしれないが、残念ながら傘の代わりにはならない #14e35d

2012-07-18 22:15:01