Hadoop作为大数据常用的架构,其发展目前可以说方兴未艾。其很多价值有待人们进一步挖掘,甚至很多人在认识Hadoop的过程中对其产生了误解。中培伟业《大数据平台搭建与高性能计算最佳实践》培训专家蒋老师在这里就10大最常见的Hadoop应用误解进行了介绍,并做出了更正解释,希望能对广大大数据应用者正确认识Hadoop带来帮助。
1.误解) Hadoop什么都可以做
正解) 当一个新技术出来时,我们都会去思考它在各个不同产业的应用,而对于平台的新技术来说,我们思考之后常会出现这样的结论 “这个好像什么都能做”, 然而,更深入的去想,你就会发现“好像什么都需要重头做”。
2.误解) Hadoop无法扮演HPC (High Performance Computing) or Grid Computing的角色
(正解) 由于Hadoop本身是由并行运算架构(MapReduce)与分布式文件系统(HDFS)所组成,所以我们也看到很多研究机构或教育单位,开始尝试把部分原本执行在HPC 或Grid上面的任务,部分移植到Hadoop集群上面,利用Hadoop兼顾高速运算与海量储存的特性,更简易且更有效率地来执行工作。目前国外高能物理、生命科学、医学等领域,都已经有这样的应用案例,利用Hadoop集群与现有的HPC/Grid 搭配、协同运作,来满足不同特性的运算任务。
3.误解) Hadoop只能做资料分析挖掘(Data Mining/Analyst)
正解) Hadoop特别适合来数据分析与挖掘的应用是毫无疑问的,但数据分析与挖掘是难度与深度都较高的一个应用,所需要的时间的积累也比较长,也因此让一般企业对于导入Hadoop视为畏途,甚至心怀恐惧。
4.误解) Hadoop就是BI (Business Intelligence)商业智能
正解) 跟前面一样,这也是大多数人最容易误解的地方,因为Hadoop特别适合来做数据分析,所以就很直觉地把它想成 “那就是BI嘛”。 会有这种误解,主要来自于对数据运用的整体架构的不清楚。传统BI是属于数据展现层(Data Presentation),其数据的载体(Data Store)是数据库或数据仓库。对比来看,Hadoop就是专注在半结构化、非结构化数据的数据载体,跟BI是不同层次的概念。
5. 误解) Hadoop就是ETL (Extract, Transform & Load)
(正解) ETL其实有两种意涵,它本身是一个概念,也同时是一个产品类别(Product Category)的总称。所以当我们听到“某某公司是做ETL产品的”的这种对话时,其中的 ETL,与DB、Application Server等名词是相同的,都是指向某种类别的IT产品。然而,如果就概念性上来看,ETL指的其实是数据运用的生命周期中的其中一个过程, 跟我前面提到的数据预处理(Data pre-Processing)是同样一个概念,举凡数据清洗(Data Cleansing)、数据关联、数据汇总等,都包含在这个范畴内。
6.误解) Hadoop跟传统storage没什么差别, 都特别适合来做资料的备份(Data Archive)
(正解) 熟悉storage的人,第一次看到Hadoop时,往往只会注意到它的分布式文件系统HDFS,然后开始拿它来与现有的storage的功能特性做比较,而忽略掉Hadoop本身并行运算的那一块。这很合理,毕竟MapReduce的概念,在应用上是比较抽象且难以捉摸的,相反的,HDFS就是一个很清楚且具象的概念。
7. 误解) Hadoop是一个搜索引擎(Search Engine)
(正解) Search 的确是Hadoop的一个重要的应用,但Hadoop本身并没有内含search engine。实务上,我们常会把HBase 的index设计运用到极致,来满足一些特定search 或query的应用,但如果要满足全文检索 (full-text search)的需求的话,你就必须在Hadoop上建构一个基于Hadoop的搜索引擎。Lucene / Katta 及其他的open source都有相对应的计划,如何借助Hadoop的特性,来实现一个强大的分布式搜索引擎,这也是我们一直密切注意、且已放进未来产品的蓝图之中的重要话题。
8. 误解) 基于Hadoop的推荐系统与传统的推荐系统并无不同
正解) 传统的推荐系统只处理客户的事务数据(transaction data),大多用的是数据仓库或商业智能等解决方案,然而,除了客户的事务数据之外,是否也有可能针对客户交易前的行为进行分析、进而产生推荐? 特别是对电子商务网站来说,客户在完成购买前的点击浏览、搜寻、及放进购物车等行为,都包含了丰富的讯息,可以藉此很容易去导引出客户想要寻找什么样的商品,所以,如果在产生推荐过程中可以把这些讯息都纳进来,则所产生推荐的精准度与丰富度必然可以大为提高。
这正是新一代的推荐系统会面临到的挑战 : 如何在事务数据 (Transaction Data) 之外,同时也可以把客户的互动数据 (Interaction Data) 含括进来? 由于客户互动数据的型态与事务数据间有极大的差异,其数量级更是远远大于事务数据量,运算频率更是有极高的要求,也因此都远超过现有数据库或数据仓储的能力,而这正是Hadoop所擅长,可以轻易拓展传统机器学习 (Machine Learning) 算法分析大量数据集 (Large Datasets) 的能力,并同时具备横向扩充 (Scale-out) 的能力,可随着数据集的成长轻易扩充,无论多大的数据都可轻易胜任。
9. 误解) Hadoop不适合用来处理小档案的应用
(正解) 对Hadoop稍微有点了解的人,都会知道HDFS的block size的default 值为64MB,且不建议往下调,因为HDFS当初在设计时,并不是针对碎片般的小档案的处理而来的。所以当我们说Hadoop不适合用来处理小档案的应用时,就技术上来说是对的,但在实际运用上,却可以有不同的做法来满足海量小档案管理的需求。
10. 误解) Hadoop不适合用来做日志管理(Log Management)的应用
正解) 当每天的日志量成长到一定的程度,现有的日志管理工具都会遇到瓶颈,所以一些国外的日志管理工具如Splunk、ArcSight)都已经发布了其Hadoop Connector,强调其与Hadoop的联系性与兼容性。所以,如果客户对日志管理的需求只是保存日志、并可以随时对日志搜索的话,那Hadoop本身即可以满足这样的应用,而对于比较复杂的日志管理且日志量非常大的需求,客户也可以从现有的日志管理工具中来挑选,并与Hadoop来搭配协同运作。