Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Copyright © 2016 NTT DATA Corporation
2016/2/8
NTTデータ
鯵坂 明
サポートメンバは見た!
Hadoopバグワースト10
Hadoop Conference Japan 2016
ライトニングト...
Copyright © 2016 NTT DATA Corporation
2016/2/8
NTTデータ
鯵坂 明
サポートメンバは見た!
Hadoopバグワースト7 10
Hadoop Conference Japan 2016
ライトニン...
3Copyright © 2016 NTT DATA Corporation
 過去5年にわたるNTTデータのHadoopサポートサービスにおい
て、問題になったHadoopのバグをおおよそ時系列順に紹介
 対象バージョン
 詳細
 確...
4Copyright © 2016 NTT DATA Corporation
 対象: 2.0.3-alpha以前
 詳細:
 HDFSのファイル名に🐱(U+1F4131)のような、UTF-8において4バ
イトで表現される文字が含まれる場...
5Copyright © 2016 NTT DATA Corporation
 対象: 2.8.0以前 (現在のリリースバージョン全て)
 詳細:
 Hiveでは、クエリの先頭(コメント含む)を使って最大50文字になる
ようジョブ名を自動...
6Copyright © 2016 NTT DATA Corporation
 対策:
 Hiveクエリの先頭(コメント含む)にマルチバイト文字(ひらがなカタ
カナ漢字)を使わない
 Hiveのプロパティ "hive.jobname.le...
7Copyright © 2016 NTT DATA Corporation
 対象: 2.1.0-beta以前の2系
 詳細:
 pipeline recovery時にDNがdeadlockする可能性がある
 NNとheartbeat...
8Copyright © 2016 NTT DATA Corporation
 対策:
 Deadlockが発生したDNを再起動する
 関連: HDFS-4851, HDFS-5016
 Cloudera blog:
http://ww...
9Copyright © 2016 NTT DATA Corporation
 対象: 2.3.0以前
 詳細:
 append APIを実行すると、ブロックの世代が新しくなる
 このタイミングでover replicatedの状態にな...
10Copyright © 2016 NTT DATA Corporation
 対象: 2.7.0以前
 詳細:
 HDFSのチェックポイント処理中にタイムアウトした場合、転送途
中のfsimageが消されずに残る
- NN/SNNのデ...
11Copyright © 2016 NTT DATA Corporation
 対象: 2.6.4/2.7.2より前の2系
 詳細:
1. Excess Blockが発生 (replication数を変化させるなどで)
2. NNが該当ブ...
12Copyright © 2016 NTT DATA Corporation
 対象: 2.7.0, 2.7.1
 詳細:
 ContainerMetricsの取得時にdeadlockすることがある
 Metricsが取得できない (...
13Copyright © 2016 NTT DATA Corporation
 対策: ContainerMetricsを利用しない
 "yarn.nodemanager.container-metrics.enable"をfalseにす...
14Copyright © 2016 NTT DATA Corporation
HDFSのBlockが消える話
「本当にあったHadoopの恐い話~
Blockはどこへきえた?」
にて詳しく紹介!
Copyright © 2011 NTT DATA Corporation
Copyright © 2016 NTT DATA Corporation
Upcoming SlideShare
Loading in …5
×

サポートメンバは見た! Hadoopバグワースト10 (adoop / Spark Conference Japan 2016 ライトニングトーク発表資料)

2,245 views

Published on

Hadoop / Spark Conference Japan 2016 (2016/02/08)
ライトニングトーク発表資料

■サポートメンバは見た! Hadoopバグワースト10
鯵坂 明(NTTデータ)

イベントページ
http://hadoop.apache.jp/hcj2016-program/

Published in: Technology
  • Be the first to comment

サポートメンバは見た! Hadoopバグワースト10 (adoop / Spark Conference Japan 2016 ライトニングトーク発表資料)

  1. 1. Copyright © 2016 NTT DATA Corporation 2016/2/8 NTTデータ 鯵坂 明 サポートメンバは見た! Hadoopバグワースト10 Hadoop Conference Japan 2016 ライトニングトーク
  2. 2. Copyright © 2016 NTT DATA Corporation 2016/2/8 NTTデータ 鯵坂 明 サポートメンバは見た! Hadoopバグワースト7 10 Hadoop Conference Japan 2016 ライトニングトーク
  3. 3. 3Copyright © 2016 NTT DATA Corporation  過去5年にわたるNTTデータのHadoopサポートサービスにおい て、問題になったHadoopのバグをおおよそ時系列順に紹介  対象バージョン  詳細  確認方法  "バージョンアップ以外の"対策  関連するJIRAの番号 - https://issues.apache.org/jira/browse/<JIRAの番号>  新しいバージョンではほぼ全てfixされている  略称一覧  NN(NameNode), DN(DataNode), SNN(SecondaryNameNode), NM(NodeManager), JT(JobTracker) まえがき
  4. 4. 4Copyright © 2016 NTT DATA Corporation  対象: 2.0.3-alpha以前  詳細:  HDFSのファイル名に🐱(U+1F4131)のような、UTF-8において4バ イトで表現される文字が含まれる場合、チェックポイント処理に失 敗し続け、editsが肥大化する  NNを再起動できなくなる  確認:  Edits viewerで多バイト文字が含まれるファイルを探す  対策: ファイル名に多バイト文字を避ける  HiveのDynamic Partitionで、テーブルの中身からHDFSのファイル 名が自動生成される場合に注意  関連: HADOOP-9103 1. UTF-8の4バイト文字が正しくデコードできない
  5. 5. 5Copyright © 2016 NTT DATA Corporation  対象: 2.8.0以前 (現在のリリースバージョン全て)  詳細:  Hiveでは、クエリの先頭(コメント含む)を使って最大50文字になる ようジョブ名を自動生成する  JobHistoryのファイル名には、URLエンコードされたジョブ名が含 まれる  ジョブ名にマルチバイト文字が含まれる場合、URLエンコードされ ることでファイル名がOSの制限(255文字)を超える  確認: JT/MRAppMasterログ 2. MapReduceのJobHistoryFileが作成できない 20XX-XX-XX XX:XX:XX,XXX ERROR org.apache.hadoop.mapred.JobHistory: Failed creating job history log file for job job_201510291126_147769 java.io.FileNotFoundException: /var/log/hadoop-0.20- mapreduce/history/job_2015XXXXXXXX_XXXXXX_XXXXXXXXXX_XXXXXXX_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX (ファイル名が長すぎます) at java.io.FileOutputStream.open(Native Method)
  6. 6. 6Copyright © 2016 NTT DATA Corporation  対策:  Hiveクエリの先頭(コメント含む)にマルチバイト文字(ひらがなカタ カナ漢字)を使わない  Hiveのプロパティ "hive.jobname.length" をデフォルトの50より 小さい値にする  関連: MAPREDUCE-6616 2. MapReduceのJobHistoryFileが作成できない
  7. 7. 7Copyright © 2016 NTT DATA Corporation  対象: 2.1.0-beta以前の2系  詳細:  pipeline recovery時にDNがdeadlockする可能性がある  NNとheartbeat通信できなくなり、HDFSクラスタから切り離される  確認: DNのスタックトレース  明にdeadlockと表示されないことに注意 3. DataNodeがdeadlockする "DataXceiver for client DFSClient_NONMAPREDUCE_1090577789_1 at /XXX.XXX.XXX.XXX:48891 [Receiving block BP-195048853-127.0.0.1- 1351858280084:blk_170845781886878002_707423606]" daemon prio=10 tid=0x0000000042d34800 nid=0x5282 in Object.wait() [0x00007efed39b5000] java.lang.Thread.State: WAITING (on object monitor) at java.lang.Object.wait(Native Method) at java.lang.Thread.join(Thread.java:1186) - locked <0x0000000761939bf8> (a org.apache.hadoop.util.Daemon) at java.lang.Thread.join(Thread.java:1239) at org.apache.hadoop.hdfs.server.datanode.ReplicaInPipeline.stopWriter(ReplicaInPipeline.java:157) at org.apache.hadoop.hdfs.server.datanode.fsdataset.impl.FsDatasetImpl.recoverRbw(FsDatasetImpl.java:706) - locked <0x0000000750413dd0> (a org.apache.hadoop.hdfs.server.datanode.fsdataset.impl.FsDatasetImpl) "DataXceiver for client DFSClient_NONMAPREDUCE_591891114_1 at /XXX.XXX.XXX.XXX:48889 [Receiving block BP-195048853-127.0.0.1- 1351858280084:blk_-1426412348578625507_707423594]" daemon prio=10 tid=0x000000004190c000 nid=0x527c waiting for monitor entry [0x00007efed49c5000] java.lang.Thread.State: BLOCKED (on object monitor) at org.apache.hadoop.hdfs.server.datanode.fsdataset.impl.FsDatasetImpl.recoverRbw(FsDatasetImpl.java:692) - waiting to lock <0x0000000750413dd0> (a org.apache.hadoop.hdfs.server.datanode.fsdataset.impl.FsDatasetImpl)
  8. 8. 8Copyright © 2016 NTT DATA Corporation  対策:  Deadlockが発生したDNを再起動する  関連: HDFS-4851, HDFS-5016  Cloudera blog: http://www.cloudera.co.jp/blog/understanding-hdfs- recovery-processes-part-2-ja.html 3. DataNodeがdeadlockする
  9. 9. 9Copyright © 2016 NTT DATA Corporation  対象: 2.3.0以前  詳細:  append APIを実行すると、ブロックの世代が新しくなる  このタイミングでover replicatedの状態になると、excess blockと して新しいブロックが消されることがある  運悪く新しいブロックが全て消されると、残った古いblockが corrupt扱い → missing block  確認:  auditログから、appendを実行していたかどうか確認する  詳細を見るには、NNとDNログを追いかけるしかない  対策:  HDFS append APIをなるべく使わない (hflush/hsyncがある)  特に、close直後のappendを避ける - close直後はover replicatedになりやすい (HDFS-1172)  関連: HDFS-5438 4. HDFSでMissingBlockが発生する
  10. 10. 10Copyright © 2016 NTT DATA Corporation  対象: 2.7.0以前  詳細:  HDFSのチェックポイント処理中にタイムアウトした場合、転送途 中のfsimageが消されずに残る - NN/SNNのディスク容量が圧迫される  確認: NN/SNNのfsimage保存領域に、名前に".ckpt"を含むファ イルがある  対策: 手動で中間ファイルを消す  関連: HDFS-7373 5. HDFSのcheckpoint失敗時に転送途中のfsimageが消えない # ls -l /data/hdfs1/dfs/name/current/ -rw-r--r-- 1 hdfs hadoop 915 6月 11 19:03 2014 edits_0000000005216326417-0000000005216326429 -rw-r--r-- 1 hdfs hadoop 2538168320 6月 11 18:31 2014 fsimage.ckpt_0000000005216326414 -rw-r--r-- 1 hdfs hadoop 3251730168 6月 11 18:37 2014 fsimage_0000000005216326416 -rw-r--r-- 1 hdfs hadoop 62 6月 11 18:37 2014 fsimage_0000000005216326416.md5
  11. 11. 11Copyright © 2016 NTT DATA Corporation  対象: 2.6.4/2.7.2より前の2系  詳細: 1. Excess Blockが発生 (replication数を変化させるなどで) 2. NNが該当ブロックを消去するようDNに依頼 3. DNが該当ブロックを消去して、NNにIncrementalBlockReportを 送り、NNがそれを処理する前に該当ブロックを含むファイル自体 が消去される 4. ExcessBlocksメトリクスとそのブロックを管理している Map(excessReplicateMap)がリセットされない  メモリリーク  確認: fsckを実行したときのover-replicated blockの値と、メト リクスExcessBlocksの値がずれている  対策: NameNodeをF/Oもしくは再起動する  関連: HDFS-6945 6. メトリクスExcessBlocksの値が正しくない
  12. 12. 12Copyright © 2016 NTT DATA Corporation  対象: 2.7.0, 2.7.1  詳細:  ContainerMetricsの取得時にdeadlockすることがある  Metricsが取得できない (そのためWebUIも見れない)  ただしジョブは動作している  確認: NMのスタックトレース 7. NodeManager WebUIにアクセスできない Found one Java-level deadlock: ============================= "1193752357@qtp-907815246-22238": waiting to lock monitor 0x0000000005e20a18 (object 0x00000000f6afa048, a org.apache.hadoop.yarn.server.nodemanager.containermanager.monitor.ContainerMetrics), which is held by "2107307914@qtp-907815246-19994" "2107307914@qtp-907815246-19994": waiting to lock monitor 0x0000000001a000a8 (object 0x00000000d4f1e1f8, a org.apache.hadoop.metrics2.impl.MetricsSystemImpl), which is held by "Timer for 'NodeManager' metrics system" "Timer for 'NodeManager' metrics system": waiting to lock monitor 0x00000000027ade88 (object 0x00000000f6582df0, a org.apache.hadoop.yarn.server.nodemanager.containermanager.monitor.ContainerMetrics), which is held by "1530638165@qtp-907815246-19992" "1530638165@qtp-907815246-19992": waiting to lock monitor 0x0000000001a000a8 (object 0x00000000d4f1e1f8, a org.apache.hadoop.metrics2.impl.MetricsSystemImpl), which is held by "Timer for 'NodeManager' metrics system"
  13. 13. 13Copyright © 2016 NTT DATA Corporation  対策: ContainerMetricsを利用しない  "yarn.nodemanager.container-metrics.enable"をfalseにする  関連: YARN-3619, YARN-4563 7. NodeManager WebUIにアクセスできない
  14. 14. 14Copyright © 2016 NTT DATA Corporation HDFSのBlockが消える話 「本当にあったHadoopの恐い話~ Blockはどこへきえた?」 にて詳しく紹介!
  15. 15. Copyright © 2011 NTT DATA Corporation Copyright © 2016 NTT DATA Corporation

×