【问题标题】:Dumping csv logs files from windows server to ubuntu VirtualBox/hadoop/hdfs将 csv 日志文件从 windows 服务器转储到 ubuntu VirtualBox/hadoop/hdfs
【发布时间】:2016-11-30 18:13:03
【问题描述】:

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

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

【问题讨论】:

  • 请提供更多详细信息,文件大小?您希望如何处理这些数据?

标签: ubuntu hadoop apache-kafka flume


【解决方案1】:

Flume 是最佳选择。需要配置一个水槽代理(进程)。水槽代理有 3 个部分:

Flume 源 - Flume 寻找新文件的地方。 c:/program files(x86)/webapps/apachetomcat/.csv 在你的情况下。

Flume sink - flume 发送文件的地方。在您的情况下是 HDFS 位置。

Flume 通道 - 文件在发送到接收器之前的临时位置。您需要为您的案例使用“文件通道”。

点击here查看示例。

【讨论】:

【解决方案2】:

根据我的评论,更多细节将有助于缩小可能性,首先想到的示例,将文件移动到服务器,然后创建一个 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.

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-17
    • 1970-01-01
    相关资源
    最近更新 更多