Hadoop基础

什么是Hadoop?

Hadoop是一个开源框架,允许使用简单的编程模型在跨计算机集群的分布式环境中存储和处理大数据。由Apache Software Foundation维护,它是基于Java编程语言的,并且支持运行在通用硬件上。Hadoop的设计允许从单个服务器扩展到成千上万台机器,每台机器都提供本地计算和存储。Hadoop框架透明地为应用提供高可靠性和数据传输容错能力。

Hadoop的核心组件:

HDFS (Hadoop Distributed File System):这是一个分布式文件系统,提供高吞吐量的数据访问,适用于具有大数据集的应用程序。HDFS以块的形式存储文件,这些块分布在整个集群上,以支持大规模的并行处理。MapReduce:这是一个编程模型和一个软件框架,用于编写能够处理大量数据的应用程序。MapReduce作业通常分为两个阶段:Map阶段和Reduce阶段。Map阶段处理输入数据并生成中间数据;Reduce阶段处理Map产生的中间数据,以产生最终输出。YARN (Yet Another Resource Negotiator):Hadoop的资源管理层,负责管理计算资源在集群中的分配和使用。YARN允许数据中心的多个数据处理引擎如实时 (Storm) 和批处理 (MapReduce) 等系统有效地共享一个共通的资源。

Hadoop的工作原理简介:

数据存储:在HDFS中,文件被分割成一系列的块,这些块存储在一个或多个集群节点上,以便可以并行处理。每个块通常有多个副本分散在不同的节点上,以便在节点失败时提供高可用性。数据处理:MapReduce利用两种类型的任务来处理数据——Map任务和Reduce任务。Map任务读取输入数据并转换成一组中间键值对形式的数据。系统对这些键值对进行排序后传递给Reduce任务,Reduce任务则对这些键值对进行合并操作以形成最终结果。资源管理:YARN管理资源分配,使得不同的应用程序可以有效地共享系统资源。在YARN中,资源管理器负责系统级别的资源分配,而应用程序管理器管理应用程序的生命周期和资源需求。

HDFS架构组件:

NameNode:它是HDFS的主服务器,管理文件系统的命名空间。NameNode执行文件系统的操作,如打开、关闭文件,确定数据块到特定DataNode节点的映射。它不存储实际的数据或数据集,但维护文件系统树及元数据。DataNode:存储实际的数据块。每个DataNode以本地文件系统的形式存储这些数据块,并负责处理文件系统客户端的读写请求。在NameNode的指导下,DataNodes也执行块的创建、删除和复制。

YARN架构组件:

ResourceManager:YARN中的全局资源管理器,负责整个系统的资源分配和调度。它有两个主要组件:调度器(负责分配资源给各个正在运行的应用程序)和应用程序管理器(负责系统中所有应用程序的生命周期管理)。NodeManager:它是每个节点上的YARN资源管理代理,负责该节点上的容器、监控其资源使用情况(CPU、内存、磁盘、网络)并向ResourceManager报告。

 架构图:

NameNode 和 DataNode 组成了HDFS,负责数据的存储。ResourceManager 和 NodeManager 组成了YARN,负责处理资源管理和作业调度。DataNodes 和 NodeManagers 通常在同一物理节点上运行,但它们属于Hadoop架构中不同的组件层。

HDFS文件存储: 

MapReduce中wordcount运行图解:

配置文件:

**core-site.xml:**这个文件包含了Hadoop的核心配置设置,主要用于配置Hadoop运行时的I/O设置,如文件系统的URI和Hadoop运行时文件系统的配置。

**hdfs-site.xml:**这个文件用于配置HDFS的具体参数,如副本的数量、Block大小以及NameNode和DataNode的配置等。

**yarn-site.xml:**这个文件用于配置YARN的ResourceManager和NodeManager的参数,包括资源管理器的地址、资源(如内存、CPU)的使用限制等。

**mapred-site.xml:**这个文件用于配置MapReduce作业的参数,如作业使用的框架和作业的内存限制等。

 分布式实践:

job history:历史服务器(mapreduce执行会有一个历史)

job log:日志汇聚,上报日志。

Hadoop集群启动:查看Java进程

出现这些说明部署成功 

在Hadoop102上启动历史服务器

hadoop101:9870

访问NameNode主页,查看存储信息

 

点击主页菜单栏Datanodes查看datanode数量 

在HDFS上上传一个文件 ,里面是一些字符串。

查看官方提供的mapreduce样例代码: 

查看文件里面存储内容并运行wordcount,统计文件中的字符串 

hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadop-mapreduce-examples-3 3.5.iar wordcount wordcount/inut/mcdata.txt mordcount/ result

查看结果: 

 

精彩文章

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: