《Apache Flume教程》第二章 Hadoop中的数据传输

来源:互联网 发布:二次元软件 编辑:程序博客网 时间:2024/06/06 03:23
摘要:   大数据,因为我们知道,是不能用传统的计算技术来处理大型数据集的集合。大数据在分析时给出了宝贵的结果。Hadoop的是一个开源框架,允许存储和跨中使用简单的编程模型的计算机集群的分布式环境中处理大数据。  ...

  大数据,因为我们知道,是不能用传统的计算技术来处理大型数据集的集合。大数据在分析时给出了宝贵的结果。Hadoop的是一个开源框架,允许存储和跨中使用简单的编程模型的计算机集群的分布式环境中处理大数据。

  流/日志数据

  一般来说,要分析的大部分数据将由各种数据源(如应用服务器,社交网站,云服务器和企业服务器)生成。这个数据将在形式日志文件和事件。

  日志文件?-通常,日志文件是一个文件,该目录中发生一个操作系统事件/动作。例如,Web服务器列出日志文件中对服务器发出的每个请求。

  在收集这样的日志数据时,我们可以获得关于-

  应用性能和定位各种软件和硬件故障。

  用户行为并获得更好的业务洞察力。

  传送数据到HDFS系统的传统方法是使用放命令。让我们来看看如何使用放命令。

  HDFSput命令

  处理日志数据的主要挑战是将由多个服务器生成的这些日志移动到Hadoop环境中。

  Hadoop的文件系统壳牌提供的命令将数据插入到Hadoop和从中读取。使用您可以将数据插入到Hadoop的认沽命令,如下图所示。

  put命令的问题

  我们可以利用看跌期权的Hadoop命令将数据从这些来源到HDFS转移。但是,它具有以下缺点:

  使用放命令,我们可以将在一个时间只有一个文件,而数据发生器以高得多的速率生成数据。由于对旧数据的分析不太准确,我们需要有一个实时传输数据的解决方案。

  如果我们用放命令时,需要的数据被打包并应准备上载。由于网络服务器连续生成数据,这是一个非常困难的任务。

  我们所需要的就是一个解决方案,可以克服的弊端放命令和更低的延迟从传输数据生成到集中存储(尤其是HDFS)中的“数据流”。

  HDFS的问题

  在HDFS中,文件作为目录条目存在,并且文件的长度将被视为零,直到它被关闭。例如,如果源正在将数据写入HDFS,并且网络在操作过程中中断(不关闭文件),则写入文件的数据将丢失。

  因此,我们需要一个可靠,可配置和可维护的系统来将日志数据传输到HDFS。

  注-在POSIX文件系统,当我们访问一个文件(比如执行写操作),其他程序仍然可以读取该文件(至少是该文件的保存部分)。这是因为文件在关闭之前就存在于光盘上。

  可用解决方案

  要将流数据(日志文件,事件等等)从各种来源发送到HDFS,我们提供了以下工具-

  Facebook的抄写员

  Scribe是一个非常受欢迎的工具,用于聚合和流日志数据。它被设计为扩展到非常大量的节点并且对于网络和节点故障是鲁棒的。

  ApacheKafka

  Kafka由ApacheSoftwareFoundation开发。它是一个开源消息代理。使用Kafka,我们可以处理具有高吞吐量和低延迟的源。

  ApacheFlume

  ApacheFlume是一种工具/服务/数据摄取机制,用于收集聚集和传输大量流数据,如日志数据,事件(等...)从各种Web服务器到集中式数据存储。

  它是一个高度可靠,分布式和可配置的工具,主要设计用于将流数据从各种来源传输到HDFS。

  在本教程中,我们将详细讨论如何使用Flume和一些示例。