通俗来讲,Hadoop是由Apache软件基金会所开发出来的开放源代码分布式计算技术,是以Java语言开发,专门针对大量且结构复杂的大数据分析所设计,其目的不是为了瞬间反应、撷取和分析数据,而是通过分布式的数据处理模式,大量扫描数据文件以产生结果。其在效能与成本上均具有优势,再加上可通过横向扩充,易于应对容量增加的优点,因而备受瞩目。
Hadoop不需要使用商业服务器,在一般个人计算机上就能运转。用户可利用网络连接两台以上的电脑组成服务器群,即所谓的“丛集”,丛集内的主机会分工合作处理数据。随着需要处理的数据量越来越大,只要不断增加计算机数量,而不需修改应用程序代码,就能立即提高Hadoop的运算能力。
总而言之,Hadoop可以用更低的成本,得到更高的运算效能,提高数据分析的能力,也难怪有些人称Hadoop为大数据的救星,这说法虽然夸张,但却有几分真实,因为通过Hadoop,就算资金不够雄厚的个人或组织,也能分析大量的结构与非结构数据。
Hadoop的组成,Hadoop的组成主要分为三个部分,分别为最著名的分布式文件系统(HDFS)、MapReduce框架、储存系统(HBase)等组件。
HDFS:数据切割、制作副本、分散储存
HDFS会把一个文档切割成好几个小区块、制作副本,然后在Hadoop的服务器群集中跨多台计算机储存副本,文档副本通常预设为3份,该设定可以自行更改。除此之外,HDFS的理念是其认为移动运算到数据端通常比移动数据到运算端来得成本低,这是由于数据的位置信息会被考虑在内,因此运算作业可以移至数据所在位置。
MapReduce:拆解任务、分散处理、汇整结果
MapReduce是由Map和Reduce组成,Map为分布式计算数据,Reduce则是负责汇整Map运算完的结果并输出。由于将一份数据分成多份储存和运算,本来一台计算机的工作可以被分工合作,所以速度当然可以快很多。
更厉害的是当某副本毁损时,MapReduce还会自动侦测,改派另一个副本执行任务。因为Hadoop一般是在计算机上运转,计算机的故障率比商业服务器高出许多,所以这种容错的功能非常重要,当丛集中有计算机毁损时,才能继续执行任务。
简单来说,Hadoop借由把数据切割、分散存放和处理的方式,让丛集内每台计算机只需处理小部分的任务,大大提高了数据分析的效率,再加上可以同时处理结构和非结构的数据格式、相对便宜的建置成本及容错的特点,使之成为大数据分析很重要的技术。
HBase:分布式储存系统
HBase是Hadoop所使用的数据库,可在随机且实时地读写超大数据集时使用。HBase是一种分布式储存系统,并且具备可用性、高效能、以及容易扩充容量及效能的特性。HBase适用于在数以千计的一般等级服务器上储存PB级的数据,其中以Hadoop分布式文件系统(HDFS)为基础,提供类似Bigtable的功能,HBase同时也提供了MapReduce程序设计的功能。
Hadoop的影响力,就是说,Hadoop丛集可扩充至PB甚至是EB的容量,过去只能仰赖抽样数据进行分析的企业数据分析师及营销人员,现在能将所有相关的数据纳入一起分析,再加上处理速度与日俱进,可借由反复进行分析或测试各种不同的查询条件,进而获得过去无法取得的更有价值的洞见与信息。
大数据的学习从Hadoop开始,以上简单说了Haddop的主要组成部分