本节书摘来自华章出版社《Flume日志收集与MapReduce模式》一书中的第2章,第2.1节,作者 [美] 史蒂夫·霍夫曼(Steve Hoffman)斯里纳特·佩雷拉(Srinath Perera),更多章节内容可以访问云栖社区“华章计算机”公众号查看
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等旨在提供稳定性与兼容性的分发包。如果你是一家初创公司,构建下一代的互联网时尚圈,那么你可能需要这些新技术以在竞争中处于上风。
如果考虑使用分发包,那么请搜索一下,看看每一种分发包都提供了什么。记住,每一个分发包其实都希望你最后需要它们的企业服务,而这种服务并不便宜。自己好好想想吧。
下面是一个简短且不权威的列表,列出了现有的一些厂商,你可以了解一下:
- Cloudera:http://cloudera.com/
- Hortonworks:http://hortonworks.com/
- MapR:http://mapr.com/