タルボール(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. Windows上でマルチパートのタールボールをアンタングル
- 3. 豚にハイパーテーブルを使用する
- 4. 豚 - データ
- 5. 豚パターンマッチング
- 6. テストジェネリックハンドラをロードする方法
- 7. apacheの豚負荷データ私はapacheの豚を使用したデータのロードに関する問題を抱えている
- 8. OpenFlowに配列をロードする方法
- 9. DataTableにXMLをロードする方法は?
- 10. divにCKEditorをロードする方法は?
- 11. プロセスにCLRをロードする方法
- 12. SIMULLプラグインをSystemUIServerにロードする方法
- 13. フレックスモジュールをクライアントブラウザにロードする方法は?
- 14. ckeditorにスタイルをロードする方法は?
- 15. LibreofficeにMathml式をロードする方法
- 16. facebookがロードされたコンテンツをdivにロードする方法
- 17. 外側豚ラテン語で二つの列に加わる行う方法
- 18. 豚のフィルタリング
- 19. 変更豚スキーマ
- 20. 豚秩序クエリ
- 21. のapache-豚エラー
- 22. 豚jythonスクリプトにパラメータを渡す
- 23. 豚とPythonを使用する
- 24. 豚でnull値をフィルタリングする
- 25. iFrameをロードした後にiFrameを強制的に再ロードする方法
- 26. Hadoopの豚ISO日
- 27. ページをPython Seleniumでロードする方法
- 28. Eclipseプラグインでクラスをロードする方法
- 29. bootstrap modal HTTPファイルをロードする方法
- 30. jaxwsクライアントを遅延ロードする方法