《Flume日志收集与MapReduce模式》一2.1 下载Flume

2.1 下载Flume

请从http://flume.apache.org/下载Flume。在侧边导航栏找到下载链接,你会看到有两个压缩的tar归档,此外还有校验和与gpg签名文件,它们用于验证归档文件。网站上已经提供了验证下载文件的说明,因此这里就不再赘述了。针对实际的校验和检查校验和文件,以此验证下载的文件没有损坏。检查签名文件来验证下载的所有文件(包括校验和与签名)都来自于Apache而不是其他地方。你真的需要验证下载的文件么?一般来说,这是个好做法,也是Apache推荐的方式。如果不验证,那我也没什么好说的。
二进制分发包中有个bin目录,源文件则位于src目录中。源文件只包含了Flume源代码。二进制分发包体积要更大一些,这是因为它不仅包含了Flume源代码与编译后的Flume组件(JARs、javadocs等),还包含了所有Flume依赖的Java库。二进制包包含了与源文件相同的Maven POM文件,因此如果从二进制分发包开始,那么你可以重新编译源代码。
继续,下载(并验证)二进制分发包,这样可以在起步时节省一些时间。
Hadoop分发包中的Flume
某些Hadoop分发包中自带了Flume。这些分发包可能提供了Hadoop核心组件包与相关项目(比如Flume),他们会考虑诸如版本兼容性与额外的Bug修复等问题。这些分发包没什么好坏之分,只是有些不同而已。
使用分发包有一些好处。因为之前已经有人将所有版本兼容的组件放到了一起。现在,这已经不是什么问题了,因为Apache Bigtop项目(http://bigtop.apache.org/)已经开始了。不过,预先构建好的标准OS包(如RPMs和DEBs等)省却了安装以及提供启动/关闭脚本的麻烦。每个分发包都提供了不同程度的付费选项,如果遇到了无法解决的问题,那么你可以购买付费的专业服务。
当然了,缺点还是有的。分发包自带的Flume版本常常落后于Apache发布的版本。如果有你想要使用的新特性,那要么等待分发包提供者进行移植,要么自己打补丁。此外,虽然分发包提供者做了大量的测试(就像任何通用平台一样),但你还是有可能会遇到测试没有覆盖的问题。在这种情况下,你就得采取一些变通方式或是深入研究源代码了,还可以将补丁提交到开源社区(这样分发包就会在未来进行更新或是在下一个版本中将补丁纳入进来)。
因此,在Hadoop分发包中,Flume版本会有些老。这种事情的好坏就见仁见智了。通常情况下,大公司不喜欢不稳定的新技术,也不喜欢频繁变化,因为变化可能是导致意外的最常见的原因。你很难找到使用最新Linux内核的公司,大部分使用的还是Red Hat Enterprise Linux(RHEL)、CentOS、Ubuntu LTS等旨在提供稳定性与兼容性的分发包。如果你是一家初创公司,构建下一代的互联网时尚圈,那么你可能需要这些新技术以在竞争中处于上风。
如果考虑使用分发包,那么请搜索一下,看看每一种分发包都提供了什么。记住,每一个分发包其实都希望你最后需要它们的企业服务,而这种服务并不便宜。自己好好想想吧。
下面是一个简短且不权威的列表,列出了现有的一些厂商,你可以了解一下:

时间: 2024-09-25 10:33:51

《Flume日志收集与MapReduce模式》一2.1 下载Flume的相关文章

《Flume日志收集与MapReduce模式》一2.4 小结

2.4 小结 本章介绍了如何下载Flume二进制分发包.我们创建了一个简单的配置文件,里面包含了一个源,它会将内容写到一个通道中,后者又会将其写到一个接收器中.源监听着一个Socket,等待网络客户端的连接,并向其发送事件数据.这些事件被写到一个内存通道中,然后被写到一个log4j接收器中,从而成为输出.接下来,我们使用Linux netcat工具连接到监听代理上,向Flume代理的源发送一些字符串事件.最后,我们验证基于log4j的接收器成功将事件写出.下一章将会详细介绍在数据处理工作流中会用

《Flume日志收集与MapReduce模式》一第2章 Flume快速起步

第2章 Flume快速起步上一章已经介绍了关于Flume的一些基础知识,本章将会帮助你上手Flume.首先从第一步开始,即下载和配置Flume.

《Flume日志收集与MapReduce模式》一1.5 Flume事件

1.5 Flume事件 Flume传输的基本的数据负载叫作事件.事件由0个或多个头与体组成. 头是一些键值对,可用于路由判定或是承载其他的结构化信息(比如说事件的时间戳或是发出事件的服务器主机名).你可以将其看作是与HTTP头完成相同的功能--传递与体不同的额外信息的方式. 体是个字节数组,包含了实际的负载.如果输入由日志文件组成,那么该数组就非常类似于包含了单行文本的UTF-8编码的字符串. Flume可能会自动添加头(比如,源添加了数据来自的主机名或是创建了事件时间戳),不过体基本上是不受影

《Flume日志收集与MapReduce模式》一第1章 概览与架构

第1章 概览与架构 如果在阅读本书,那就说明你正在数据的海洋中遨游.创建大量的数据是非常简单的事情,这要归功于Facebook.Twitter.Amazon.数码相机与相机照片.YouTube.Google,以及你能想得到的能够连接到互联网上的任何东西.作为网站的提供者,10年前的应用日志只是用来帮助你解决网站的问题.时至今日,如果你知道如何从大量的数据中浪里淘金,那么相同的数据就会提供关于业务与客户的有价值的信息. 此外,既然在阅读本书,那么你肯定知道创建Hadoop的目的在一定程度上就是为了

《Flume日志收集与MapReduce模式》一2.3 从“Hello World”开始

2.3 从"Hello World"开始 每一本技术图书都会有一个"Hello World"示例.下面是我们将会使用的配置文件: 这里定义了一个名为agent的代理,它有一个名为s1的源.一个名为c1的通道,以及一个名为k1的接收器.源s1的类型为netcat,它只是打开一个Socket监听事件(每个事件一行文本).它需要两个参数,分别是一个绑定IP与一个端口号.该示例使用0.0.0.0作为绑定地址(表示监听任何地址的Java约定)以及端口号12345.源配置还有一

《Flume日志收集与MapReduce模式》一3.2 文件通道

3.2 文件通道 文件通道指的是将事件存储到代理本地文件系统中的通道.虽然要比内存通道慢一些,不过它却提供了持久化的存储路径,可以应对大多数情况,它应该用在数据流中不允许出现缺口的场合.这种持久化能力是由Write Ahead Log(WAL)以及一个或多个文件存储目录联合提供的.WAL用于以一种原子且安全的方式追踪来自于通道的所有输入与输出.通过这种方式,如果代理重启,那么WAL可以重放,从而确保在清理本地文件系统的数据存储前进入到通道中的所有事件都会被写出.此外,如果数据处理策略要求磁盘上的

《Flume日志收集与MapReduce模式》一3.3 小结

3.3 小结 本章介绍了在数据处理管道中常用的两类通道.内存通道提供了更快的速度,这是以故障事件出现时数据丢失为代价的.此外,文件通道提供了更可靠的传输,因为它能容忍代理故障与重启,这是以牺牲性能为代价的.你需要确定哪种通道更适合于你的使用场景.在确定内存通道是否适合时,请问问自己丢失一些数据的经济上的代价如何.在考虑是否使用持久化通道时请衡量它与添加更多的硬件以弥补性能上的差异时的代价相比如何.另一个考虑就是数据问题了.写入到Hadoop中的数据不一定都来自于流式应用日志.如果接收的是每天的数

《Flume日志收集与MapReduce模式》一1.1 Flume 0.9

1.1 Flume 0.9 Flume是在2011年被首次引入到Cloudera的CDH3分发中的.它由一套工作守护进程(代理)构成,这些守护进程是通过Zookeeper(一个配置与协调系统)根据一个或多个集中的Master配置而成的.在Master上,你可以在Web UI中查看代理状态,也可以以集中的方式在UI或是通过命令行Shell的方式取出配置(这两种方式都是通过Zookeeper与工作代理进行通信的).可以通过3种模式发送数据,分别叫作Best Effort(BE).Disk Failo

《Flume日志收集与MapReduce模式》一2.2 Flume配置文件概览

2.2 Flume配置文件概览 既然已经下载好了Flume,下面来花点时间看看如何配置代理.Flume代理的默认配置提供者使用了一个简单的键值对的Java属性文件,你需要在启动时向代理传递一个参数.由于可以在单个文件中配置多个代理,因此还需要额外传递一个代理标识符(叫作名字),这样它就知道该使用哪个代理了.在给出的示例中,我只指定了一个代理,使用agent这个名字.每个代理的配置都以下面这3个参数开始: 每个源.通道与接收器在该代理的上下文中也有一个唯一的名字.比如,如果不打算传递Apache访