2016-11-30 10 views
0

csvの形式でアプリケーションから毎日新しいファイルを取得しています。c:/ program files(x86)/ webapps/apachetomcat/csv各ファイルに異なるデータがあるので、Windowsサーバーからhadoop hdfsにファイルを転送するためのhadoopコンポーネントがあります。私はflume、kafkaに出くわしましたが、適切な例が得られません。csvはWindowsサーバーからubuntuにファイルをダンプします。VirtualBox/hadoop/hdfs

したがって、各ファイルは別々の名前を持ち、10-20MBまでのサイズを持ち、毎日のファイル数は200ファイル以上です。Windowsサーバーにファイルが追加されると、flume/kafkaはそのファイルをhadoop、ファイルを処理したファイルに移動してHDFSの別のフォルダに移動する

+0

詳細をご覧ください、ファイルのサイズ?このデータで何をしたいですか? –

答えて

0

私のコメントによれば、詳細は、ファイルをサーバに移動してbashスクリプトを作成してスケジュールを作成するcronと

put 

Usage: hdfs dfs -put <localsrc> ... <dst> 

Copy single src, or multiple srcs from local file system to the destination file system. Also reads input from stdin and writes to destination file system. 

hdfs dfs -put localfile /user/hadoop/hadoopfile 
hdfs dfs -put localfile1 localfile2 /user/hadoop/hadoopdir 
hdfs dfs -put localfile hdfs://nn.example.com/hadoop/hadoopfile 
hdfs dfs -put - hdfs://nn.example.com/hadoop/hadoopfile Reads the input from stdin. 
Exit Code: 

Returns 0 on success and -1 on error. 
1

Flumeが最適です。 flume agent(プロセス)を設定する必要があります。 flume agentは3つの部分を持っています:

flumeソース - flumeが新しいファイルを探す場所。 c:/ program files(x86)/webapps/apachetomcat/.csvを入力します。

flume sink - flumeがファイルを送信する場所。あなたのケースのHDFSの場所。

Flumeチャネル - ファイルをシンクに送る前の一時的な場所。あなたのケースでは "ファイルチャンネル"を使用する必要があります。

例としてはhereをクリックしてください。

+0

ありがとうAkash、私は窓とLinuxでflumeが必要ですか?私は詳細な説明を教えてくれますか?サンプル例 –

+0

はい、https://docs.hortonworks.com/HDPDocuments/HDP2/HDP-2.4.3/bk_installing_manually_book/content/installing_flume.htmlに示すように2つのエージェントを実行する必要があります。あなたは何とかローカルHDFSノードにログを得ることができますが、それは素晴らしいですが、それが可能でないなら、いくつかの回避策がリストされていますhttp://stackoverflow.com/questions/26168820/transferring-files-from-remote-node-to -hdfs-with-flume。 – AkashNegi

関連する問題