从Flume到HDFS的数据传输 – 将日志数据加载到HDFS中

1.目的

在本章中,将学习使用Apache Flume在Hadoop中传输数据的方式。 将了解使用Hadoop put命令将数据从Flume传输到HDFS。 

2. 什么是Streaming Log Data?

Log Data,是由各种数据源生成的数据,通常情况下,这些数据需要进行分析。 数据源如应用程序服务器,社交网站,云服务器和企业服务器等。 数据通常是日志文件或事件消息的形式存在的。

日志文件是存储操作系统中发生的所有事件/操作的文件。 例如,通过Web服务器,每个对服务器的请求都列在日志文件中。

收集大量的日志数据,可以获得的信息是 : 

应用程序的性能。查找排查各种软件和硬件故障的数据;

用户行为,获得更好的商业洞察力;

使用put命令是传统的从Flume到HDFS系统的数据传输方法。

3. HDFS Put命令

如何使用”HDFS PUT”命令,从Flume传输数据到HDFS?

在处理日志数据时,最主要的挑战是将多台服务器产生的日志移至Hadoop环境。

为了将数据添加到Hadoop并从中读取数据,Hadoop文件系统Shell提供相应的命令。通过put命令可以添加文件到HDFS:

$ Hadoop fs -put  HDFS中所需的文件  保存文件的位置

对于从Flume到HDFS的数据传输,虽然可以使用Hadoop的put命令。但是存在一些缺点:

put命令一次只能传输一个文件,如果日志文件生成的很频繁时,对旧数据的分析不太准确,需要一个解决方案来传输实时数据;

数据文件通常需要打包上传,但由于数据由各种服务器持续生成,打包将是一项艰巨的任务;

除了克服put命令的上述缺点,还需要实时地将数据生成器的“streaming data”传输到统一的存储中(特别是HDFS), Flume 很好的解决了这个问题。

4. 可用于将流式数据发送到HDFS的工具

要将各种来源的Streaming data(日志文件,事件等)传输到HDFS,可以使用以下工具:

Facebook’s Scribe

一个非常受欢迎的工具是Scribe,用于聚合和传输日志数据。 支持大量的节点进行缩放和扩展,对于网络和节点的故障,容错性强;

Apache Kafka

由Apache软件基金会开发。 Apache Kafka是一个开源消息分布式MQ。 可以使用Kafka处理高吞吐量和低延迟的消息传输;

Apache Flume

使用Flume来收集和传输大量来自各种网络服务器的流式数据到统一的数据存储,如HDFS,通过使用Apache Flume,可以以可靠的,分布式和可配置的模式将来自不同来源的流数据传输到HDFS中。

从Flume到HDFS的数据传输 – 将日志数据加载到HDFS中

发表评论

电子邮件地址不会被公开。 必填项已用*标注

三十 六 − 27 =