我有一个项目,是将合作伙伴服务器中的CSV文件集成到我们的Hadoop集群中。
为此,我发现Flume和Spark可以做到。
我知道当您需要执行数据转换时,首选Spark。
我的问题是Flume和Spark在集成逻辑上有什么区别?
两者之间在导入CSV文件方面有性能差异吗?
答案 0 :(得分:1)
Flume是一个持续运行的进程,它监视路径或对文件执行功能。它与Logstash或Fluentd更具可比性,因为它是由配置文件驱动的,没有经过编程,部署和调整。
最好,您在读取CSV文件时会对其进行解析,然后将其转换为更自描述的格式(例如Avro),然后将其放入HDFS中。查看Morphlines Flume处理器
另一方面,您必须手动从头到尾编写所有这些代码。尽管Spark Streaming可以执行相同的操作,但是您通常不会以与Flume相同的方式运行它,而是在YARN或其他群集调度程序中运行,而在这些情况下,您无法控制运行在哪个服务器上,因为一天结束时,您应该只关心是否存在资源限制。
其他替代方案仍然存在,例如Apache Nifi或Streamsets,它们允许更多的可视化管道构建而不是编写代码