Javaでファイルジェネレータを使用すると、HDFSで移動する必要のあるローカルファイルシステムのディレクトリとファイルのストリームが作成されます。私はインターネットで検索し、私はFlumeを使うことができることを知ったが、私にそれをする方法を説明するリソースは見つけられなかった。これを実装する方法はありますか? Flumeを使用してローカルファイルシステムからHDFSにファイルをコピー
はありがとう (あなたが環境について、コメントで述べたように)私は、同じマシン上でそれをやったことがないので、あなたは以下の構成を動作させるためのいくつかのテストや調整を行う必要があります
-1
A
答えて
0
。
ファイルが1つ(または複数のディレクトリ)で動的に作成されるため、Spooling Directory Source(ディレクトリごと)とHDFS Sinkを構成することをお勧めします。ファイルを置く
bin/flume-ng agent -n agent -c conf -f conf/test.conf
スタート:水路のインストールフォルダにconf
ディレクトリ内のファイルtest.conf
を作成し、同様の構成に置く:エージェントを実行するには
# Name the components on this agent
agent.sources = file-source
agent.sinks = hdfs-sink
agent.channels = mem-channel
# Associate channel with source and sink
agent.sources.file-source.channels = mem-channel
agent.sinks.hdfs-sink.channel = mem-channel
# Configure the source
agent.sources.file-source.type = spooldir
agent.sources.file-source.spoolDir = /tmp/spool/
agent.sources.file-source.fileHeader = true
# Configure the sink
agent.sinks.hdfs-sink.type = hdfs
agent.sinks.hdfs-sink.hdfs.path = /tmp/log.log
agent.sinks.hdfs-sink.hdfs.fileType = DataStream
agent.sinks.hdfs-sink.hdfs.path = /flume/test/
# Use a channel which buffers events in memory
agent.channels.mem-channel.type = memory
agent.channels.mem-channel.capacity = 1000
agent.channels.mem-channel.transactionCapacity = 100
を、水路のインストールディレクトリで次のコマンドを実行します/tmp/spool/
を開き、HDFSに表示されているかどうかを確認します。
システムに配布するときは、クライアントにAvro Sink、サーバーにAvro Sourceを使用することをお勧めします。そこにいるときに取得します。
関連する問題
- 1. JAVAを使用してHDFSからローカルファイルシステムにファイルをコピーする
- 2. clouderaのローカルファイルシステムからhadoop/hdfsにファイルをコピーできません
- 3. ローカルファイルシステムからHDFSに自動的にzipファイルをコピーする方法
- 4. csvファイルをhdfsに転送し、flumeを使用してavroに変換する
- 5. flumeを使用してOracle 11gデータをHDFSにロード
- 6. flume sinkでhdfsのガベージデータをコピーしています
- 7. pydoopを使ってファイルをhdfsにコピー
- 8. distpとs3aを使用してHDFSからAmazon S3にファイルをコピー
- 9. s3distcpを使用してamazon s3からhdfsにファイルをコピーできない
- 10. ファイルをHDFSからローカルマシンにコピーする
- 11. Flume-ng:ログファイルをローカルからHDFSにコピーするためのソースパスとタイプ
- 12. flumeはまだ.tmpファイルを保持し、ファイルを完全にHDFSにコピーしない
- 13. Flumeを使用してHDFSでTwitterデータを取得中に発生する
- 14. Flumeを設定してTwitterからHDFSにデータを収集する
- 15. スパムストリーミングやflumeでXmlをAvroからKafka、hdfsに変換する
- 16. ワイルドカードを使用したHadoop HDFSコピー?
- 17. HDFSはDistcp S3に - S3バケットにHDFSからファイルをコピーするためのアクセスキー
- 18. Flume + Spark - HDFSにDStreamを保存
- 19. Apache Samzaのファイルをローカルファイルシステムとhdfsシステムから読み取る方法
- 20. 最初にローカルファイルシステムにコピーすることなく、Javaを使用してHDFSに保存されたファイルを解凍する方法は?
- 21. HDFSでS3にflumeイベントをシンクしてください。
- 22. WEBHDFS REST APIを使用してWindowsサーバ/ローカルフォルダ/デスクトップからHDFSにファイルをコピー/移動する
- 23. flumeファイルサイズに基づいてローリング時にデータをhdfsにコピーする時間がかかります
- 24. FlumeがファイルをHDFSにアップロードするのに時間がかかります
- 25. hdfsからリモートマシンへのコピー
- 26. JAFS APIを使用してHDFSのディレクトリをコピーする
- 27. Flumeのhdfsファイルにストリーミングログデータを追加するには?誰かがMRソースコードを持っていて、データをhdfsのファイルに追加するのですか?
- 28. バッチを使用してウィンドウからアンドロイドにファイルをコピーする
- 29. javaを使用してローカルウィンドウマシンからリモートウィンドウマシンにファイルをコピー
- 30. Flume HDFSシンクは、netcatソースを使用して1行のデータソースしか保存しません。
ヒットを得るためには、さらに詳しい情報が必要です。まず最初に、複数のマシンを持っているか、同じノード上のすべてをやっていることです(例えば、テストのため)。ファイルの性質は何ですか:あなたは一度にすべてを読む静的ファイルか、または例えば時々作成されるログファイルなどですか? – Serhiy
今のところ、私はテストのために同じノードを使用しています。ユーザーによって作成されたログファイルであり、作成ごとの間隔は数分から数時間までさまざまです。しかし、今私はHDFSが小さなファイルのストリーミングにどのように反応するかを見るためにランダムなファイルを生成しています。 – Yassine