• Hadoop由Apache Software Foundation公司于2005年秋天作为Lucene的子项目Nutch的一部分正式引入。它受到最先由Google Lab开发的Map/Reduce和Google File System(GFS)的启发 Google是Hadoop的思想之源(Google在大数据方面的三篇论文) ###大数据技术之Hadoop知识点详解####一、Hadoop概览**1.1 Hadoop的历史与发展** Hadoop是由Apache Software Foundation在2005年秋季作为Lucene的子项目Nutch的一部分正式引入的。其核心思想来源于Google实验室开发的Map/Reduce和Google File System (GFS)。 - **Google的影响**: Google在大数据领域发表了三篇非常有影响力的论文,这些论文为Hadoop的发展提供了理论基础和技术灵感。 - _GFS到HDFS_: GFS是Google为了解决大规模数据存储问题而设计的一种分布式文件系统。Hadoop受此启发,发展出了HDFS (Hadoop Distributed File System),用于高效地存储和管理海量数据。 - _Map-Reduce到MR_: Map-Reduce是一种处理大量数据的有效算法模型。Hadoop通过实现自己的MapReduce框架,使得用户能够在分布式环境中轻松处理大规模数据集。 - _BigTable到HBase_: BigTable是Google的一个高性能分布式数据存储系统,而HBase则是基于HDFS之上构建的非关系型数据库系统,提供类似于BigTable的功能。 **1.2名称由来** - **Hadoop名称的由来**: Hadoop的名字源自Doug Cutting的孩子给一个棕色大象玩具的命名。这一有趣的名字背后反映了Apache社区轻松愉快的工作氛围。 ####二、Hadoop框架与大数据生态系统**2.1 Hadoop框架的核心组件** Hadoop主要由以下几个核心组件构成: - **Hadoop HDFS**:一种高可靠、高吞吐量的分布式文件系统,用于存储和管理数据。 - **Hadoop MapReduce**:一种分布式的离线并行计算框架,支持大规模数据集的处理。 - **Hadoop YARN**:一个作业调度与集群资源管理的框架,负责集群资源的管理和任务调度。 - **Hadoop Common**:包含一系列支持其他Hadoop模块的工具和库,如配置管理、远程过程调用(RPC)、序列化机制和日志操作等。 **2.2 Hadoop的优势** - **高可靠性**: Hadoop的设计考虑到了硬件故障的可能性,通过在集群中维护多个数据副本的方式确保数据的高可用性。 - **高扩展性**: Hadoop可以轻松扩展到数千台服务器,支持大规模的数据处理需求。 - **高效性**:基于MapReduce原理,Hadoop能够并行处理数据,大大提高了处理效率。 - **高容错性**:自动保存数据副本并在节点发生故障时重新分配任务,确保数据处理的连续性和准确性。 **2.3 HDFS架构概述** - **Namenode**:负责存储文件系统的元数据信息。 - **Datanode**:存储实际的数据块,并执行读写操作。 - **Secondary Namenode**:监控Namenode的状态,并定期合并元数据,减轻Namenode的压力。 **2.4 YARN架构概述** - **ResourceManager**:处理客户端请求、启动和监控ApplicationMaster、监控NodeManager以及负责资源的分配与调度。 - **NodeManager**:负责单个节点上的资源管理,执行来自ResourceManager和ApplicationMaster的命令。 - **ApplicationMaster**:负责数据的切分、资源申请、任务分配及监控。 - **Container**:对任务运行环境的抽象,包括所需的CPU、内存等资源以及启动命令等信息。 **2.5 MapReduce架构概述** - **Map阶段**:并行处理输入数据,将数据分成若干个小块进行处理。 - **Reduce阶段**:对Map阶段的结果进行汇总处理,生成最终输出。 ####三、Hadoop运行环境搭建**3.1环境配置** - **关闭防火墙**:使用`systemctl stop firewalld.service`命令暂时关闭防火墙,或者使用`systemctl disable firewalld.service`永久禁用防火墙。 - **修改IP地址**:通过编辑`/etc/sysconfig/network-scripts/ifcfg-ens33`文件来配置静态IP地址。 - **修改主机名**:使用`hostnamectl set-hostname`命令设置主机名。 - **配置hosts文件**:在`/etc/hosts`文件中添加IP和主机名之间的映射关系。以上步骤仅为环境搭建的基础部分,还包括更多细节配置,例如安装JDK、配置SSH免密码登录等。Hadoop的部署和配置涉及众多环节,需要根据具体的应用场景进行细致调整。