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

时间:2015-05-05 20:34:41

标签: hdfs apache-commons flume flume-ng apache-commons-io

我获得了一个服务器的访问权限,该服务器提供了我将下载并导入HDFS的文件的目录列表。我目前正在做的是使用HTTP GET命中服务器并下载HTML目录列表然后我使用jsoup并解析我需要下载的文件的所有链接。一旦我有一个完整的列表,我逐个下载每个文件,然后将每个文件导入HDFS。我不相信水槽能够阅读&解析html下载文件。是否有更简洁的方式来完成我所描述的内容?

1 个答案:

答案 0 :(得分:0)

使用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

基本上就是这样。