当前位置: 首页 > news >正文

Hadoop学习_week1

shell脚本一键启停

在node1上,使用软件自带的shell脚本一键启动。前提:配置好机器之间的SSH免密登录和workers文件。

HDFS集群

start-dfs.sh 
​
stop-dfs.sh 

YARN集群

start-yarn.sh
​
stop-yarn.sh

Hadoop集群

start-all.sh
​
stop-all.sh

进程状态、日志查看

启动完毕之后可以使用jps命令查看进程是否启动成功

Hadoop启动日志路径:

/export/server/hadoop-3.3.0/logs/

HDFS集群

地址:http://namenode_host:9870

(ip:9870)

其中namenode_host是namenode运行所在机器的主机名或者ip

如果使用主机名访问,别忘了在Windows配置hosts

image-20251111184819883

YARN集群

地址:http://resourcemanager_host:8088

其中resourcemanager_host是resourcemanager运行所在机器的主机名或者ip

如果使用主机名访问,别忘了在Windows配置hosts

image-20251111185037460

小结:

1.HDFS本质就是一个文件系统

2.有目录树结构 和Linux类似,分文件、文件夹

MapReduce+YARN初体验

执行Hadoop官方自带的MapReduce案例,评估圆周率π的值。

cd hadoop/
ll
cd mapreduce/
ll

image-20251111190931648

hadoop jar  hadoop-mapreduce-examples-3.3.0.jar pi 2 2

image-20251111191141409

分布式存储系统核心属性

• 分布式存储

• 元数据记录

• 分块存储

• 副本机制

HDFS简介

HDFS(Hadoop Distributed File System ),意为:Hadoop分布式文件系统。

是Apache Hadoop核心组件之一,作为大数据生态圈最底层的分布式存储服务而存在。也可以说大数据首先要解

决的问题就是海量数据的存储问题。

HDFS主要是解决大数据如何存储问题的。分布式意味着是HDFS是横跨在多台计算机上的存储系统。

HDFS是一种能够在普通硬件上运行的分布式文件系统,它是高度容错的,适应于具有大数据集的应用程序,它非

常适于存储大型数据 (比如 TB 和 PB)。

HDFS使用多台计算机存储文件, 并且提供统一的访问接口, 像是访问一个普通文件系统一样使用分布式文件系统。

整体概述

主从架构

分块存储

副本机制

元数据记录

抽象统一的目录树结构(namespace)

HDFS shell命令行

Hadoop提供了文件系统的shell命令行客户端:

hadoop fs [generic options]

文件系统协议

HDFS Shell CLI支持操作多种文件系统,包括本地文件系统(file:///)、分布式文件系统(hdfs://nn:8020)等

具体操作的是什么文件系统取决于命令中文件路径URL中的前缀协议。

如果没有指定前缀,则将会读取环境变量中的fs.defaultFS属性,以该属性值作为默认文件系统。

hadoop fs -ls file:/// #操作本地文件系统
hadoop fs -ls hdfs://node1:8020/ #操作HDFS分布式文件系统
hadoop fs -ls / #直接根目录,没有指定协议 将加载读取fs.defaultFS值

创建文件夹

hadoop fs -mkdir [-p] <path> ...

path 为待创建的目录

-p选项的行为与Unix mkdir -p非常相似,它会沿着路径创建父目录。

查看指定目录下内容

hadoop fs -ls [-h] [-R] [<path> ...]

path 指定目录路径

-h 人性化显示文件size

-R 递归查看指定目录及其子目录

上传文件到HDFS指定目录下

hadoop fs -put [-f] [-p] <localsrc> ... <dst>

-f 覆盖目标文件(已存在下)

-p 保留访问和修改时间,所有权和权限。

localsrc 本地文件系统(客户端所在机器)

dst 目标文件系统(HDFS)

查看HDFS文件内容

hadoop fs -cat <src> ...

读取指定文件全部内容,显示在标准输出控制台。

注意:对于大文件内容读取,慎重

下载HDFS文件

hadoop fs -get [-f] [-p] <src> ... <localdst>

下载文件到本地文件系统指定目录,localdst必须是目录

-f 覆盖目标文件(已存在下)

-p 保留访问和修改时间,所有权和权限。

追加数据到HDFS文件中

hadoop fs -appendToFile <localsrc> ... <dst>

将所有给定本地文件的内容追加到给定dst文件。

dst如果文件不存在,将创建该文件。

如果<localSrc>为-,则输入为从标准输入中读取。

HDFS数据移动操作

hadoop fs -mv <src> ... <dst>

移动文件到指定文件夹下

可以使用该命令移动数据,重命名文件的名称

HDFS工作流程与机制

image-20251111204625397

主角色:namenode

NameNode是Hadoop分布式文件系统的核心,架构中的主角色。

NameNode维护和管理文件系统元数据,包括名称空间目录树结构、文件和块的位置信息、访问权限等信息。

基于此,NameNode成为了访问HDFS的唯一入口。

NameNode内部通过内存和磁盘文件两种方式管理元数据。

其中磁盘上的元数据文件包括Fsimage内存元数据镜像文件和edits log(Journal)编辑日志。

从角色:datanode

DataNode是Hadoop HDFS中的从角色,负责具体的数据块存储

DataNode的数量决定了HDFS集群的整体数据存储能力。通过和NameNode配合维护着数据块。

主角色辅助角色: secondarynamenode

Secondary NameNode充当NameNode的辅助节点,但不能替代NameNode。

主要是帮助主角色进行元数据文件的合并动作。可以通俗的理解为主角色的“秘书”。

namenode职责

NameNode仅存储HDFS的元数据:文件系统中所有文件的目录树,并跟踪整个集群中的文件,不存储实际数据。

NameNode知道HDFS中任何给定文件的块列表及其位置。使用此信息NameNode知道如何从块中构建文件。

NameNode不持久化存储每个文件中各个块所在的datanode的位置信息,这些信息会在系统启动时从DataNode

重建。

NameNode是Hadoop集群中的单点故障。

NameNode所在机器通常会配置有大量内存(RAM)。

datanode职责

DataNode负责最终数据块block的存储。是集群的从角色,也称为Slave。

DataNode启动时,会将自己注册到NameNode并汇报自己负责持有的块列表。

当某个DataNode关闭时,不会影响数据的可用性。 NameNode将安排由其他DataNode管理的块进行副本复制。

DataNode所在机器通常配置有大量的硬盘空间,因为实际数据存储在DataNode中。

Hadoop MapReduce与Hadoop YARN

MapReduce的思想核心是“先分再合,分而治之”。

Map表示第一阶段,负责“拆分”:即把复杂的任务分解为若干个“简单的子任务”来并行处理。可以进行拆分的

前提是这些小任务可以并行计算,彼此间几乎没有依赖关系。

Reduce表示第二阶段,负责“合并”:即对map阶段的结果进行全局汇总。

这两个阶段合起来正是MapReduce思想的体现。

MapReduce数据类型

注意:整个MapReduce程序中,数据都是以kv键值对的形式流转的;

在实际编程解决各种业务问题中,需要考虑每个阶段的输入输出kv分别是什么;

MapReduce内置了很多默认属性,比如排序、分组等,都和数据的k有关,所以说kv的类型数据确定及其重要的。

MR概述

一个最终完整版本的MR程序需要用户编写的代码和Hadoop自己实现的代码整合在一起才可以

Map阶段执行过程

第一阶段:把输入目录下文件按照一定的标准逐个进行逻辑切片,形成切片规划。

默认Split size = Block size(128M),每一个切片由一个MapTask处理。(getSplits)

第二阶段:对切片中的数据按照一定的规则读取解析返回<key,value>对。

默认是按行读取数据。key是每一行的起始位置偏移量,value是本行的文本内容。(TextInputFormat)

第三阶段:调用Mapper类中的**map方法处理数据。

每读取解析出来的一个<key,value> ,调用一次map方法。

第四阶段:按照一定的规则对Map输出的键值对进行**分区partition。默认不分区,因为只有一个reducetask。

分区的数量就是reducetask运行的数量。

第五阶段:Map输出数据写入内存缓冲区,达到比例溢出到磁盘上。溢出spill的时候根据key进行排序sort。

默认根据key字典序排序。

第六阶段:对所有溢出文件进行最终的merge合并,成为一个文件。

Reduce阶段执行过程

第一阶段:ReduceTask会主动从MapTask复制拉取属于需要自己处理的数据。

第二阶段:把拉取来数据,全部进行合并merge,即把分散的数据合并成一个大的数据。再对合并后的数据排序**。

第三阶段是对排序后的键值对调用reduce方法。键相等的键值对调用一次reduce方法。最后把这些输出的键值对

写入到HDFS文件中。

shuffle概念

Shuffle的本意是洗牌、混洗的意思,把一组有规则的数据尽量打乱成无规则的数据。

而在MapReduce中,Shuffle更像是洗牌的逆过程,指的是将map端的无规则输出按指定的规则“打乱”成具有一

定规则的数据,以便reduce端接收处理。

一般把从Map产生输出开始到Reduce取得数据作为输入之前的过程称作shuffle。

YARN简介

是一种新的Hadoop资源管理器。

YARN是一个通用资源管理系统和调度平台,可为上层应用提供统一的资源管理和调度。

它的引入为集群在利用率、资源统一管理和数据共享等方面带来了巨大好处

YARN是一个通用资源管理系统和调度平台

资源管理系统:集群的硬件资源,和程序运行相关,比如内存、CPU等。

调度平台:多个程序同时申请计算资源如何分配,调度的规则(算法)。

通用:不仅仅支持MapReduce程序,理论上支持各种计算程序。YARN不关心你干什么,只关心你要资源,在有

的情况下给你,用完之后还我。

YARN3大组件

ResourceManager(RM)

YARN集群中的主角色,决定系统中所有应用程序之间资源分配的最终权限,即最终仲裁者

接收用户的作业提交,并通过NM分配、管理各个机器上的计算资源。

NodeManager(NM)

YARN中的从角色,一台机器上一个,负责管理本机器上的计算资源

根据RM命令,启动Container容器、监视容器的资源使用情况。并且向RM主角色汇报资源使用情况。

ApplicationMaster(AM)

用户提交的每个应用程序均包含一个AM。

应用程序内的“老大”,负责程序内部各阶段的资源申请,监督程序的执行情况。

http://www.dtcms.com/a/605238.html

相关文章:

  • 靠谱的时序数据库哪家技术强
  • VR水污染体验系统——VR 里的碧水守护
  • 重构企业运维智慧:低代码 ITSM 知识管理平台的创新与实践
  • 从C++开始的编程生活(13)——list和浅谈stack、queue
  • m序列原理及在5G的应用
  • 焦作建设网站的公司怎么让百度快速收录网站
  • API创建指定版本k8s集群
  • K8S NFS PVC PV 挂载点路径问题
  • 【CANN】开启AI开发新纪元,释放极致计算效率
  • ui展示 网站百度热门排行榜
  • Java并发编程基石:深入理解JMM(Java内存模型)与Happens-Before规则
  • 一个基于现代 C++23 Modules 的传统文化算法库,使用纯模块化设计实现(包含大六壬、六爻、紫薇斗数、八字、奇门遁甲)
  • 注释网站开发全国大型教育集团网站建设
  • PyQt5 + Qt Designer配置指令
  • setprop debug.hwui.profile visual_bars有什么作用
  • Vue3——Transition和TransitionGroup的区别以及最佳实践
  • PostIn从初级到进阶(2) - 对接口进行快捷调试
  • 河南建设网站公司简介河北项目建设备案网站
  • JAVA国际版打车APP打车顺风车滴滴车跑腿APP源码Android+IOS+H5
  • Swift 初阶 —— Sendable 协议 data races
  • RK3568平台开发系列讲解:RK VOP 显示控制器
  • 《R for Data Science (2e)》免费中文翻译 (第12章) --- Logical vectors(2)
  • Python同步vs异步性能对比实验-2
  • 深入理解C语言中的static和extern关键字
  • 做期货应关注什么网站双语网站建设网站
  • Aspose.Cells for java 在将xlsx 转化为pdf 时有渲染问题
  • 如何读懂英文科技文献中的公式:从畏难到掌握的系统方法
  • Ansible,Playbook的简单应用
  • C++ 面试高频考点 链表 迭代 递归 力扣 25. K 个一组翻转链表 每日一题 题解
  • Unity Shader Graph 3D 实例 - 一个简单的高亮能量Buff