部分的な結果が 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 など) があり、残りの列には通常の数値が含まれています。ジョブを再実行すると、誤った列の値が期待値に跳ね上がります。両方とも「壊れた」のは同じ列ではありませんでした。ログにエラーは書き込まれませんでした。
他の誰かが同様の行動を経験しましたか? 誰にもアイデアはありますか?どんな助けでも大歓迎です。ありがとう!