本节书摘来自华章计算机《深入理解Hadoop(原书第2版)》一书中的第1章,第1.6节,作者 [美]萨米尔·瓦德卡(Sameer Wadkar),马杜·西德林埃(Madhu Siddalingaiah),杰森·文纳(Jason Venner),译 于博,冯傲风,更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1.6大数据商业用例
在商业界,大数据和Hadoop都有很多应用案例。再从以下三个方面总结大数据的特征:
- 数据量(Volume)
- 处理速度(Velocity)
- 数据多样性(Variety)
数据量是指系统能够处理的数据量的大小。如果你们部门每天晚上都要在两个小时内获取、加载并传输2TB的数据,你就会面对数据量的挑战。
处理速度是指当大量数据来到时,系统的处理数据能力。像Facebook 和 Twitter 这样的公司就碰到了数据处理速度的问题。这些公司每秒钟都会收到海量的短信息(tiny messages),这些数据需要被立即处理,把它们发布到社交站点,推送到相关用户(家庭成员、朋友或者追随者),触发各种事件等。
数据多样性是指系统处理的数据格式类型是不停增长的。企业检索系统已经成为各企业的标配了。类似Apache Solr这样的开源软件使基于搜索的系统越来越普遍。绝大多数非结构化的数据并非孤立存在的,有大量的结构化的数据与其相关联。我们拿一个简单的电子邮件文档来举个例子。电子邮件有很多元数据与其关联,比如发送者、接收者、接收者的顺序、发送/接收时间、发送者/接收者的企业信息(比如,发送时的头衔),等等。
这些信息是动态变化的。比如,你要分析多年的电子邮件(一些法律行业的相关部门会经常有此工作内容),当发送者或者接收者第一次进行电子邮件交流的时候,搞清楚他们当时使用的头衔是很重要的。数据的这种动态变化的特性是普遍存在的,而且也是处理的难点。
利用商用软件和硬件,大数据系统能帮助我们每天的工作,比如大数据量的抽取、传输、加载(ETL)。需要强调的是,开源Hadoop系统,这个运行在多个商用服务器上,并可通过添加更多的计算节点来扩容集群的系统,可以使得ETL(或者是ELT,这个是大数据领域的通用叫法)性能在合理的代价上获得大幅提升。
为了支持更快的数据处理速度和更加多样的数据类型,围绕着Hadoop系统和HDFS系统发展出了多个开源的大数据处理系统。新的数据格式要求我们在处理大量数据的时候对系统I/O性能有更好的管理。本书将会讲解这样的开发需求存在的目的和相关用例。
Storm(由Twitter公司发起)和Apache Flume(用来分析海量日志数据信息)是专注于数据处理速度的系统。如何选择这样的系统,取决于你需要的数据处理的“实时”程度。Storm处理数据的实时性会比Flume更好。
要明确的是,大数据是一个由多个系统组成的生态系统,这些系统都是用来处理各种复杂的业务问题。Hadoop系统是处理这些问题的解决方案的核心。理解了Hadoop系统,你就能更深刻地理解大数据生态圈中其他大数据系统的使用。