将csv文件从Windows服务器转储到ubuntu VirtualBox / hadoop / hdfs

时间:2016-11-30 18:13:03

标签: ubuntu hadoop apache-kafka flume

我们每天从应用程序中获取新文件,以csv形式存储在windows服务器中说c:/ program files(x86)/webapps/apachetomcat/.csv每个文件中都有不同的数据,那么有没有hadoop将文件从Windows服务器传输到hadoop hdfs的组件,我遇到了水槽,kafka但没有得到正确的例子,任何人都可以在这里遮光。

所以每个文件都有单独的名称,大小高达10-20mb,每日文件数超过200个文件。一旦文件添加到windows服务器,flume / kafka应该能够将这些文件放在hadoop中,以后的文件是从火花处理的HDFS导入并移动到已处理的文件到HDFS中的另一个文件夹

2 个答案:

答案 0 :(得分:1)

Flume是最佳选择。需要配置水槽剂(过程)。水槽剂有3个部分:

水槽 - 水槽将寻找新文件的位置。 c:/ program files(x86)/webapps/apachetomcat/.csv在你的情况下。

水槽 - 水槽将发送文件的位置。你个案中的HDFS位置。

Flume频道 - 文件在发送到接收器之前的临时位置。您需要使用"文件频道"为你的情况。

点击here获取示例。

答案 1 :(得分: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.