私はkafka
から時系列データをhadoopに保存するプログラムを書いています。そして私はこのようなディレクトリ構造体を設計した:時系列データを月単位と日単位で区切ったhdfsに書き込みますか?
event_data
|-2016
|-01
|-data01
|-data02
|-data03
|-2017
|-01
|-data01
デーモンの作業ですので、私は開かれたファイルを管理し、リソースの漏れを避けるために、時間内に非アクティブなファイルを閉じるにはLRUベースの管理を書きますが、所得のデータストリームが時間順にソートされていない場合、既存のファイルを開いて新しいデータを追加するのは非常に一般的です。
ファイルが存在するとOutputStream
を開こうとしましたが、私のhdfsクラスタでエラーが発生します。
次に、目標を達成するために別の方法を使用します。 同じ名前のファイルが存在する場合、ファイル名にシーケンスサフィックスを追加します。今私は自分のhdfsにたくさんのファイルを持っています。それは非常に汚れています。
私の質問は次のとおりです。状況のベストプラクティスは何ですか?
HDFSは実際にファイルに追加するためのものではありません –