1.4 Hadoop应用场景
任何一项技术的出现都是为了解决实际的业务问题。随着Hadoop生态圈的逐步扩大,其应用范围也随之扩大。就Hadoop技术本身来讲,适合于以下应用场景:
(1)超级大的数据。一般非实验情况下使用Hadoop的环境,集群规模都在上百台、甚至上千台服务器的Cluster中。相对而言,数据量也非常大,TB级别的数据只能算是“起步价”,PB级别的数据才能发挥出Hadoop的特长。
(2)离线数据。实时处理一直是Hadoop有待解决的难题。Hadoop针对批处理作业的特点是数据吞吐量大,能够处理大规模的数据;但是带来的另一个问题就是一个Job启动就不能再进行更改,而且有时一个Job可能会运行几小时。在MapReduce框架下很难处理实时计算,作业都以日志分析这样的线下作业为主。另外,集群中一般都会有大量作业等待被调度,以保证资源充分利用。如果实时处理要求比较高,笔者建议部署Storm或者Spark。当然,也有用户已经借用Hadoop的组件将Hadoop应用到了实时处理环境中,我们后文会提到。
(3)并行计算。在MapReduce框架下,非常适合处理并行计算的场景。在这种场景下,数据量极大,一般在PB级别及以上,但处理数据的算法相对简单,可以采用并行的方式来提高处理速度,比如大规模的Web信息搜索场景。
(4)数据计算单元较大。由于HDFS设计的特点,Hadoop适合处理文件块大的文件,大量的小文件使用Hadoop来处理效率会很低。当然,如果采用其他文件系统,比如IBM GPFS,对小文件的处理速度会有所改善。
Hadoop作为大数据存储及计算领域的一颗明星,已经得到越来越广泛的应用。从目前实际使用来看,Hadoop已经成功地应用到移动数据(如中国移动、中国电信等)、电子商务(如eBay)、能源开采、图像处理、基础架构管理、医疗保健和IT运维等场景。其实我们已经或多或少地成为Hadoop的用户或者受益者。比如某大型购物网站,其后台就采用Hadoop来处理日志,判断用户的习惯和行为,进而为用户推荐适合的产品。中国移动也应用Hadoop技术,基于Hadoop来部署云平台。