0

部分的な結果が HBase データベースに書き込まれる場合に、まれに発生する問題があります。私のマッパーとレデューサーの説明は次のとおりです。

  • マッパーは、特定の機能に関連付けられたデータをカウントし、キー = データ名および値 = カウントで MapWritables を送信します。例えば:

    Key = "Feature X"
    MapWritables = 
       {"Total Usage":"4", "Unique Usage":2, "Associated Revenue":22}, 
       {"Total Usage":"3", "Unique Usage":1, "Associated Revenue":20}
    
  • キーが同じ場合、Reducer は MapWritable の値を合計します。結果は HBase に書き込まれます。キーは行 ID、列はマップ内のキー、値は合計です。上記のキーとマップの例を考えると、HBase に次のように記述します。

     rowID = "Feature X" 
     column,value="Total Usage", 7 
     column,value="Unique Usage", 3 
     column,value="Associated Revenue", 42
    

過去 4 か月間に 2 回 (それほど頻繁ではありません)、結果が HBase に書き込まれ、列の 1 つに非常に低い数値 (1 や 3 など) があり、残りの列には通常の数値が含まれています。ジョブを再実行すると、誤った列の値が期待値に跳ね上がります。両方とも「壊れた」のは同じ列ではありませんでした。ログにエラーは書き込まれませんでした。

他の誰かが同様の行動を経験しましたか? 誰にもアイデアはありますか?どんな助けでも大歓迎です。ありがとう!

4

1 に答える 1

0

hadoop 0.20。*を使用している場合、追加サポートが欠落しているため、hbaseでデータが失われることがあります。HBaseは、WALへの書き込みなどのために追加する必要があり、それがないと、すべての書き込みがディスクに書き込まれる保証はありません。-その場合は、hadoopをより高いバージョンに更新できます。

于 2012-08-15T18:39:47.917 に答える