将批量离线数据加载到DWH环境,将Kafka作为"进入门"

时间:2017-11-16 13:20:03

标签: hadoop apache-kafka hdfs bigdata

我的问题的一些背景 正如你在这里看到的: Airbnb Data Infra https://medium.com/airbnb-engineering/data-infrastructure-at-airbnb-8adfb34f169c

有2个"门"将数据加载到HDFS

  1. Sqoop
  2. 卡夫卡
  3. 使用此拓扑作为示例,加载托管在FTP服务器信息HDFS上的批量脱机数据的最佳做法是什么?

    我们还假设不需要对文件执行任何更改,我们需要将它以与存储在FTP服务器中相同的结构存储在HDFS中。

    思想?

1 个答案:

答案 0 :(得分:1)

默认情况下,Kafka并未完全配置为传输“文件大小”数据。至少,不是一条消息中的整个文件。也许打破分界线,但是你需要重新排序它们并将它们放回HDFS中。

根据我的经验,我从FTP服务器上看到了一些选项。

Vanilla Hadoop,无需额外软件

  • 使用NFS网关,WebHDFS或HttpFS将文件直接复制到HDFS,就像它是另一个文件系统一样

需要其他软件

  • 您自己的FTP和HDFS客户端连接代码
  • 带有FTP连接器和HDFS写入输出的Spark Streaming
  • Kafka& Kafka Connect连接FTP连接器源和HDFS接收器
  • 在带有HDFS接收器的FTP服务器上运行的Flume代理
  • 带有GetFTP和PutHDFS处理器的Apache NiFi
  • Streamset DataSetctor执行与NiFi类似的操作(不知道这个的条款)
  

我们需要将它以与存储在FTP服务器中相同的结构存储在HDFS中。

如果这些是小文件,最好至少在上传到HDFS之前将文件压缩为Hadoop支持的存档格式