タルボール(access.logs.tar.gz)内のログファイルが私のhadoopクラスタにロードされています。私はそれを諦めずに豚に直接ロードする方法が不思議でしたか?豚にタールボールをロードする方法
5
A
答えて
4
PigStorageはファイルが圧縮されていることを認識します(拡張子は.gzですが、これはPigTextInputFormatが拡張するTextInputFormatに実際に実装されています)が、その後はtarファイルを処理します。あなたはタールでファイル間のヘッダ行を扱うことができるしている場合であるとして、あなただけのPigStorageを使用することができ、そうでなければ、各ファイル
間のtarヘッダー行を除去処理するためにPigTextInputFormatの独自の拡張機能を記述する必要があります
5
@ ChrisWhiteの答えは技術的に正しいので、私の代わりに彼の答えを受け入れるべきです(少なくともIMO)。
tar.gz
ファイルからHadoopを取得する必要があります。 Gzipファイルは分割可能ではないので、gzipファイルが大きい場合は、マッパーでホットスポットが表示されます。たとえば、ファイルが.tar.gz
で100GBの場合、計算を分割することはできません。
もう一方の手が小さいとしましょう。この場合、ブタは一緒に集めるという素晴らしい仕事をして、分割の問題はなくなります。これは、NameNodeを持つたくさんの小さなファイルを扱っているという事実の欠点があります。また、ファイルは小さいので、ファイルをより合理的な形式に改造することは、比較的安価に行う必要があります。
だから、どのような形式あなたはにファイルを再公式化する必要がありますか?良い質問!
- ただ、一つの大きなブロック・レベルの圧縮 シーケンスファイルにそれらのすべてを連結することは最も難しいが、パフォーマンスの 面で最もやりがいのあることかもしれません。
- もう1つは、圧縮 を完全に無視し、それらのファイルを爆発させるか、少なくとも を連結します(圧縮なしのパフォーマンスヒットが表示されます)。
- 最後に、あなたは〜100MBのチャンクにファイルをブロブができ、その後、それらをgzip。
私は貯金箱にtarボールローダーのいくつかの並べ替えを書くことは完全に合理的であると思うが、私は個人的にちょうどかなり異なる方法でデータをレイアウトします。
関連する問題
- 1. 豚の関係をロードする
- 2. バッグ、豚のタプルをループする方法
- 3. 豚のパフォーマンスを測定する方法
- 4. 豚スクリプトのテスト方法
- 5. 豚の群れを数える方法
- 6. あるサーバから別のサーバにタールボールをコピーすると、
- 7. 豚の前の行の値を取得する方法
- 8. Windows上でマルチパートのタールボールをアンタングル
- 9. kubectlタールボール画像を実行中
- 10. タールボールからAWSボリューム/スナップショットを作成
- 11. Hadoopの豚「ロード」問題valueフィールドにカンマや特殊文字
- 12. 豚
- 13. 豚
- 14. 豚のグループ化中に歪んだデータを扱う方法
- 15. 豚の列の異なる値に関係を分割する方法
- 16. 豚にUDFを作成して別のフィールドと列を分類する方法
- 17. 豚のカラムをフィルタリングする
- 18. 豚のジョブを起動するシェルスクリプトでPIG_HEAPSIZEの値を設定する方法
- 19. テストジェネリックハンドラをロードする方法
- 20. エクステンションをロードする方法
- 21. 豚にハイパーテーブルを使用する
- 22. 豚:豚の既存の内側タプルに新しい列を追加する
- 23. divにCKEditorをロードする方法は?
- 24. モーダルを動的にロードする方法
- 25. OpenFlowに配列をロードする方法
- 26. SIMULLプラグインをSystemUIServerにロードする方法
- 27. DataTableにXMLをロードする方法は?
- 28. IOS UIPageViewControllerにイメージをロードする方法
- 29. QMLに* .tiffファイルをロードする方法
- 30. プロセスにCLRをロードする方法