从远程服务器目录列表下载文件并导入 HDFS

Posted

技术标签:

【中文标题】从远程服务器目录列表下载文件并导入 HDFS【英文标题】:Downloading files from a remote server directory listing and import into HDFS 【发布时间】:2015-05-05 20:34:41 【问题描述】:

我已获得访问服务器的权限,该服务器提供了我将下载并导入 HDFS 的文件的目录列表。我目前正在做的是使用 HTTP GET 访问服务器并下载 html 目录列表,然后我使用 jsoup 并解析指向我需要下载的文件的所有链接。一旦我有一个完整的列表,我会一个一个地下载每个文件,然后将每个文件导入 HDFS。我不相信水槽能够读取和解析 html 来下载文件。有没有更简单的方法来做我所描述的事情?

【问题讨论】:

【参考方案1】:

使用 Flume 我会做以下事情:

1) 有一个进程 grep 你的 URL 并将转储的 HTML 文件存储到一个目录

2) 使用客户反序列化器配置指向该目录的 SpoolDir 源:

deserializer    LINE    Specify the deserializer used to parse the file into events. Defaults to parsing each line as an event. The class specified must implement EventDeserializer.Builder.

反序列化器读取 HTML 文件并使用 JSoup 提取 HTML 文件。然后将提取的位转换为所需格式的多个事件并发送到 HDFSSink

基本上就是这样。

【讨论】:

以上是关于从远程服务器目录列表下载文件并导入 HDFS的主要内容,如果未能解决你的问题,请参考以下文章

mysq将表数据导入文件并将文件从远程服务下载到本地

scp 从远程服务器上一下载文件

Python抓取远程文件获取真实文件名

从远程机器将文件放在 HDFS 上时如何指定用户名?

使用python比较远程目录和本地目录上的文件

使用java从本地主机创建远程hdfs目录