从远程服务器目录列表下载文件并导入 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的主要内容,如果未能解决你的问题,请参考以下文章