大数据之Hadoop的简要介绍及入门方式

Hadoop是目前被广泛使用的大数据平台,Hadoop平台主要有Hadoop Common、HDFS、Hadoop Yarn、Hadoop MapReduce和Hadoop Ozone。

Hadoop平台目前被行业使用多年,有健全的生态和大量的应用案例,同时Hadoop对硬件的要求比较低,非常适合初学者自学。目前很多商用大数据平台也是基于Hadoop构建的,所以Hadoop是大数据开发的一个重要内容。

学习Hadoop开发需要有三个基础知识:

第一:Linux操作系统知识。通常情况下,Hadoop平台是构建在Linux系统之上的,所以学习Hadoop首先要学习Linux操作系统的使用。目前比较流行的Linux操作系统包括CentOS和Ubuntu,这两个Linux系列操作系统有广泛的应用场景。学习Linux并不复杂,通常情况下可以在虚拟机上完成,很多初学者都是在虚拟机上搭建一个伪分布式集群,然后完成Hadoop实验。

第二:编程语言。目前在Hadoop平台下多采用Java和Python来完成程序的编写,由于Hadoop本身是采用Java语言编写的,所以在Hadoop平台下采用Java语言是比较方便的选择,Hadoop的官方demo往往也是采用Java语言实现的。Python语言由于比较简单,同时Python有丰富的库可以使用,所以目前使用Python完成Hadoop平台的开发也是一个比较常见的选择。另外,在Spark平台下Scala也有广泛的应用。

第三:算法。大数据的核心就是数据价值化的过程,而算法设计则是数据价值化的基础。因此,大数据平台的开发离不开算法,要想学习Hadoop开发一定要有一个扎实的算法基础。

要学习Hadoop具体从以下几个方面入手:

HDFS

HDFS(Hadoop Distributed File System,Hadoop分布式文件系统),它是一个高度容错性的系统,适合部署在廉价的机器上。HDFS能提供高吞吐量的数据访问,适合那些有着超大数据集(large data set)的应用程序。

MapReduce

通俗说MapReduce是一套从海量源数据提取分析元素末后返回结果集的编程模型,将文件分布式存储到硬盘是第一步,而从海量数据中提取分析我们需要的内容就是MapReduce做的事了。

MapReduce的基本原理就是:将大的数据分析分成小块逐个分析,然后再将提取出来的数据汇总分析,从而获得我们想要的内容。当然怎么分块分析,怎么做Reduce操作非常复杂,Hadoop已经提供了数据分析的实现,我们只需要编写简单的需求命令即可达成我们想要的数据。

关于Hadoop的使用方式:

感觉现在各个公司使用Hadoop的方式都不一样,主要我觉得有两种吧。

第一种是long running cluster形式,比如Yahoo,不要小看这个好像已经没什么存在感的公司,Yahoo可是Hadoop的元老之一。这种就是建立一个Data Center,然后有几个上千Node的Hadoop Cluster一直在运行。比较早期进入Big Data领域的公司一般都在使用或者使用过这种方式。

另一种是只使用MapReduce类型。毕竟现在是Cloud时代,比如AWS的Elastic MapReduce。这种是把数据存在别的更便宜的地方,比如s3,自己的data center, sql database等等,需要分析数据的时候开启一个Hadoop Cluster,Hive/Pig/Spark/Presto/Java分析完了就关掉。不用自己做Admin的工作,方便简洁。

Hadoop平台自身有非常丰富的开发组件,所以学习Hadoop的过程还是比较漫长的,由于大数据开发有较强的场景特征,所以建议结合具体的场景来完成Hadoop平台的学习。

发表评论

邮箱地址不会被公开。 必填项已用*标注