Hadoop的起源与Google息息相关。作为全球IT技术的领头羊,Google不仅提出了云计算的概念,还在其搜索引擎业务中构建了革命性的GFS(Google文件系统),从而推动了文件系统的分布式发展。此外,Google还创建了MapReduce计算框架,使高端服务器计算转变为成本更低的x86集群计算。这使得许多互联网公司能够摆脱对IBM小型机、Oracle数据库和EMC存储设备的依赖,例如淘宝就开启了去IOE化的道路。
Google之所以伟大,是因为它愿意分享技术而不是独占技术。在2002年至2004年间,Google通过发布三篇重要论文,向世界展示了其云计算技术的核心组成部分:GFS、MapReduce和BigTable。尽管Google并未将核心技术开源,但这三篇论文为开源社区指引了方向。一位大牛Doug Cutting利用Java语言对Google的云计算核心技术进行了开源实现,尤其是GFS和MapReduce。后来,Apache基金会整合了Doug Cutting和其他IT公司的贡献,开发并推出了Hadoop生态系统。Hadoop是一个搭建在廉价PC上的分布式集群系统架构,具有高可用性、高容错性和高可扩展性等优点。它提供了一个开放平台,使用户无需了解底层实现细节即可开发适合自己的分布式程序。
Hadoop由HDFS、MapReduce、HBase、Hive和ZooKeeper等组件组成,其中HDFS(Hadoop分布式文件系统)和MapReduce引擎是最基础也是最重要的两个组成部分。HDFS负责存储集群中所有存储节点的文件,而MapReduce引擎则用于执行分布式计算任务。
下图展示了一个典型的Hadoop实验集群的部署结构。
HDFS是一个高度容错性的分布式文件系统,广泛部署于廉价PC上。它以流式访问方式处理应用程序的数据,极大地提高了系统的数据吞吐量,非常适合处理超大数据集的应用。HDFS采用主从架构(master/slave),一个典型的HDFS集群包括一个NameNode节点和多个DataNode节点。NameNode节点负责维护整个文件系统的元数据,而DataNode节点则负责存储实际的数据块。DataNode节点定期向NameNode发送文件块的报告,以保持同步。
MapReduce是一种编程模型,用于大规模数据集的并行运算。它采用分而治之的思想,将任务分发到集群的多个节点上并行计算,然后合并计算结果以得到最终结果。MapReduce框架负责任务调度、负载均衡和容错处理,用户无需关心这些细节。
Hadoop有三种部署方式:本地模式、伪分布模式和集群模式。本文主要介绍伪分布模式的安装配置,即在一个服务器上运行Hadoop。
可以通过命令行或图形界面设置静态IP地址。配置完成后,重启网络服务以应用更改。
修改当前会话的主机名,并更新配置文件中的主机名。
在/etc/hosts文件中添加IP和主机名的映射。
关闭防火墙服务,并禁止其自动启动。
生成SSH密钥对,并将公钥添加到authorized_keys文件中。
使用WinSCP或CuteFTP工具将JDK和Hadoop文件复制到Linux系统中。
解压JDK安装文件,并配置环境变量。
解压Hadoop安装文件,并配置相关环境变量。需要修改的配置文件包括hadoop-env.sh、core-site.xml、hdfs-site.xml和mapred-site.xml。
启动Hadoop可以使用start-all.sh命令,或者分别启动HDFS和MapReduce。启动成功后,可以通过浏览器访问Hadoop的Web界面进行监控。
以上是Hadoop的发展历程、整体框架、核心设计和安装配置的详细介绍。希望对你有所帮助。