Hadoop复习(上)

目录

一 绪论

1 大数据5v特点 --1.6

2 Google三驾马车 GFS MapReduce BigTable --1.18

3 Hadoop的特点 --1.23

4 Hadoop生态系统 (教材p6)

6 NoSQL有哪些

二 HDFS架构

1 三大基本组件 --2.1.2

2 HDFS特性和局限性(教材p38) --2.1.4-5

3 HDFS  block

4 HDFS守护进程

5 主从架构 --2.1.10

6 元数据、Block、DataNode、NameNode、心跳

        元数据管理机制(教材p35) --2.1.11

        元数据管理过程:

        心跳机制(重要) --2.1.21

7  HA模式 HDFS高可用性(教材p36) --2.1.18

8 DataNode容错机制

9 HDFS数据读写机制(重要)(教材p40) --2.1.22-25

10 Hadoop安装类型 --2.2.2

11 常用的虚拟机

12 安装大致的流程

13 常见的配置文件

15 Hadoop常见配置文件

16 HDFS守护进程、YARN守护进程

18 异常分析

19 HDFS JavaAPI用途

20 HDFS和YARN各守护进程的启动顺序

13 HDFS命令(重要)

三 YARN

1 YARN是什么

2 YARN主从架构(守护进程)

3 主要的名词Resourcemanager,NodeManager,Container,Job,ApplicationMaster

4 Yarn调度器(三种)

5 一级调度RM,二级调度AM  基于hadoop 2.0的架构(MRv2)

6 YARN的工作流程(教材75-76) --3.13

5. 主从架构和双层调度范式,谁是一级调度,谁是二级调度(重要)主要在PPT上


一 绪论

1 大数据5v特点 --1.6

Volume(大量)、Velocity(高速)、Variety(多样)、Value(低密度价值)、Veracity(真实性)

2 Google三驾马车 GFS MapReduce BigTable --1.18

  • GFS(分布式文件系统)
  • MapReduce(超大集群的简单数据处理)
  • BigTable(结构化数据的分布式存储系统)

3 Hadoop的特点 --1.23

  • 扩容能力:可靠的存储和处理PB级数据
  • 低成本:普通计算机组成集群来处理数据,可达上千个节点
  • 高效率:节点上并行处理数据使得速度快
  • 可靠性:自动维护数据的多份复制,任务失败后自动重新部署计算任务

4 Hadoop生态系统 (教材p6)

HDFS:分布式存储,数据存储功能

MapReduce:分布式计算框架

HBase:分布式数据库,基于HDFS的NOSQL数据库

Zookeeper:,分布式协调服务框架,hadoop组件管理端

Pig:数据流处理,对MapReduce的抽象

Hive:数据仓库,将结构化的数据文件映射为数据表,将SQL翻译为MapReduce语句进行查询

5、Hadoop的主要版本

   p7 1.3.4   最新的3.*,出现了YARN的版本2.0

6 NoSQL有哪些

  • 文档数据库(Document Databases):MongoDB、Couchbase和CouchDB。
  • 列族数据库(Column Family Databases):HBase和Cassandra
  • 键值对数据库(Key-Value Databases):Redis和Memcached
  • 图数据库(Graph Databases):Neo4j和OrientDB
  • 搜索引擎(Search Engines):Elasticsearch和Solr

7、Hadoop/HBase/Zookeeper属于什么开源项目?

   Apache基金会

8、Hadoop的开发语言(Hadoop是用什么语言编写的)

   Java

二 HDFS架构

1 三大基本组件 --2.1.2

Hadoop核心组件(教材p5)

HDFS:分布式文件系统,数据存储

YARN:统一资源管理和调度系统,支持多种框架

MapReduce:分布式计算框架,运行于YARN上

2 HDFS特性和局限性(教材p38) --2.1.4-5

特性:

能保存PB级数据量,数据散布在大量节点上,支持更大文件

可靠性、高容错性,多节点数据备份

与MapReduce集成,允许数据在本地计算,减少计算时数据交互

局限性:

不适合低延迟数据访问

不适合大量小文件存储

不支持多用户并发写入及任意修改文件,一次写入多次读取

不支持缓存,每次从硬盘重新读取

3 HDFS  block

        文件写入hdfs时会被切分为若干个数据块,并在集群中的多个节点上进行分布式存储。数据块的大小是固定的,默认为128MB。数据块是hdfs的最小存储单元。默认情况下,每个数据块有三个副本

4 HDFS守护进程

  • NameNode:它负责管理元数据,协调数据节点之间的数据块复制和数据块的位置管理。
  • DataNode:它们分布在不同的节点上。DataNode负责实际存储数据块,并在NameNode的指导下执行数据块的复制、删除和传输操作。DataNode还负责向NameNode报告数据块的健康状况和存储容量等信息。
  • Secondary NameNode:辅助NameNode完成某些耗时功能,解放NameNode性能,无法替代NameNode。

5 主从架构 --2.1.10

基本的名词:NameNode SecondaryNameNode DataNode各个节点的功能

   基本的名词:数据划分为Block(大小、备份数量……)、元数据、client……

NameNode:主节点(Master,管理元数据

SecondaryNameNode:辅助NameNode完成某些功能,解放Name Node性能,无法替代NameNode

DataNode:从节点(Slave),存储文件的Block。

6 元数据、Block、DataNode、NameNode、心跳

        元数据管理机制(教材p35) --2.1.11

元数据:存储文件路径、文件副本数量、文件块所处的服务器位置等。

元数据保存在NameNode中

内存元数据:meta data,元数据查询

硬盘元数据镜像文件:fsimage,持久化存储元数据

数据操作日志:edits,将更改记录进去,可以此运算出元数据

        元数据管理过程:

系统启动,读取fsimage和edis至内存,形成内存元数据meta data, client向NameNode发起数据增删查请求,NameNode在接受请求后在内存元数据中执行操作,并返回结果给client,如果是增删操作,则同时记录数据操作日志edits。Secondary NameNode在合适的时间将操作日志合并到fsimage中

        心跳机制(重要) --2.1.21

        NameNode和DataNode的故障恢复(教材39)

        NameNode故障恢复:

如果进行了高可用性配置,发生NameNode故障时,由zookeeper通过选举机制选取一个备用名称节点切换为激活状态,保证hadoop正常运行。

如果没有进行高可用性配置,系统把NameNode的核心文件同步复制到SecondaryNameNode(备份名称节点)中,当发生NameNode故障时,通过SecondaryNameNode中的FsImage和EditLog文件恢复NameNode

        DataNode故障恢复:

每个DataNode定期(默认3秒)向NameNode发送心跳信息,报告自己的状态。如果DataNode发生故障没有定时向NameNode发送心跳,就会被NameNode标记为“宕机”,该节点上所有数据不可读,NameNode不会向其发送任何I\O请求。

        NameNode定期检查数据块的副本数量,小于冗余因子(即设定的副本数)时启动冗余复制,在其他正常数据节点生成副本。

        心跳过程:数据节点主动发送请求及要报告的信息,名称节点被动回复需要传达的信息或指令。NameNode没有收到周期性send heartbeat,则认为该数据节点失效,将失效节点中的bolock重新备份到其他数据节点。

7  HA模式 HDFS高可用性(教材p36) --2.1.18

hadoop2.x中引用HDFS名称节点高可用框架。

配置两个相同的NameNode,一个为active mode活跃模式,另一个为standby mode待机模式,两个node数据保持一致活动节点失效,则待机节点切换为活动节点,保证hadoop正常运行。

HA模式(高可用名节点)(High Availability NameNode),不需要再配置SecondaryNameNode,CheckPoint通过Standby NameNode实现。

JournalNode是轻量化节点,用于两个NameNode之间通信,需要配置3个以上节点。

8 DataNode容错机制

DataNode的故障管理由NameNode负责

DataNode故障将导致

        节点失去响应

        本节点的block数据失效

如果NameNode不及时发现有故障的DataNode

        1、会将client的请求频繁分配到故障节点中,降低系统效率,或导致client数据读取或操作失败

        2、未能及时将DataNode中丢失的block重新备份,这时如果陆续有其他DataNode失效,将可能导致一部分block永久丢失

关键问题:NameNode如何发现故障DataNode

心跳机制

9 HDFS数据读写机制(重要)(教材p40) --2.1.22-25

写入机制:

用户客户端请求Hadoop客户端,执行文件上传,上传的文件写入hadoop客户端的临时目录,当文件写入数据量超过block(Hadoop1.x缺省64MB,2.x缺省128MB)大小时,请求NameNode申请数据块。NameNode返回数据块ID及存储数据块的DataNode地址列表,hadoop客户端根据地址列表向DataNode写入数据块。客户端写入一个数据块后,在DataNode之间异步进行数据块复制,最后一个DataNode上数据块写入完成后,发送一个确认信息给前一个DataNode,第一个DataNode返回确认信息给客户端,数据写入完毕。客户端向NameNode发送最终确认信息

删除机制与此相同,删除请求到达后,文件不会立即被执行删除,而是移动到/trash目录(回收站),一段时间后再执行删除。

读取机制:

用户客户端请求Hadoop客户端,请求返回指定文件,hadoop客户端向NameNode发送读文件请求。NameNode查询meta data返回文件数据对的数据块ID及存储数据块的DataNode地址列表,该列表按照DataNode与客户端的距离进行排序。客户端在距离最近的数据节点上读取数据,如果读取失败,则从另一个副本所在数据节点读取数据。读取到所有block后合并成文件

NameNode需要通过心跳机制收集DataNode生存状态,不会将失效的DataNode位置返回给客户端。

        客户端:Client。代表用户通过与NameNode和DataNode交互来访问整个HDFS,整个HDFS运行在内网,与外界隔离,只有Client可以接受外界命令,确保系统安全。

10 Hadoop安装类型 --2.2.2

单机模式:Stand-Alone Mode

运行在一个单独的JVM中,便于开发调试

伪分布式集群模式:Pseudo-Distributed Cluster

各节点在不同的Java进程中,用于模拟集群环境

多节点集群安装模式:Multi-Node Cluster

各节点安装在不同的系统中,可用于生产的集群环境

11 常用的虚拟机

VMware:最大的虚拟机厂商,有自己的云(虚拟化)系统

Oracle Virtualbox:开源免费

Xen:开源免费

KVM:开源免费

Hyper-v:微软windows自带

Genymotion:Android系统虚拟机

12 安装大致的流程

创建多个虚拟机 

配置SSH远程登录

(SSH免密配置原理:

        通信加密类型:对称加密(DES、3DES、AES等,加解密使用相同密钥,速度块,适合大量数据加密,密钥可能泄露),非对称加密(RSA,加密使用公钥,解密使用私钥。速度慢,适合小数据加密。应用:数据使用AES加密AES密钥使用RSA加密传送或保存,区块链、勒索病毒等使用此原理)

SSH默认密码验证:

配置RSA非对称加密验证,即免密访问。

原理:在主节点生成公/私钥对,将公钥传给其他节点) 

安装配置JDK

安装配置hadoop

关闭防火墙

启动HDFS

13 常见的配置文件

    Java和hadoop环境变量配置在/etc/profile,

    配置完后source /etc/profile,让新的环境变量PATH生效

    /etc/hosts  : IP地址 主机名  表示映射关系

    /etc/hostname  : 主机名   当前主机的主机名

14 常见Linux命令:

   cd、ls、mkdir、cat、jps等,vi编辑器的常用命令

   常见错误:command not found,file or directory no exists

   启动/停止Hadoop的命令 start-all.sh/stop-all.sh  start-dfs.sh/start-yarn.sh

15 Hadoop常见配置文件

core-site.xml:NameNode的地址  hadoop数据的存储目录

                        文件系统相关配置  安全相关配置  Hadoop 配置目录和日志目录

hdfs-site.xml:nn web端访问地址(HDFS 的主节点 NameNode)   

                        2nn web端访问地址(Secondary NameNode)

NameNode 和 DataNode 配置

                        容错和高可用性配置    块大小和副本数配置

                        数据传输和网络配置    HDFS 故障处理和恢复配置

yarn-site.xml:ResourceManager相关配置  NodeManager相关配置  容器资源配置

Workers:配置工作节点列表,资源,环境

NameNode运行在主节点(在core-site.xml中配置)

SecondaryNameNode可在主节点运行(在hdfs-site.xml中配置)

DataNode一般在从节点运行(在workers中配置)

 

16 HDFS守护进程、YARN守护进程

HDFS守护进程:

NameNode(主节点):负责管理文件系统的命名空间和元数据,存储文件系统的元数据信息。

Secondary NameNode(辅助名称节点):定期合并和检查NameNode的编辑日志,帮助恢复损坏的文件系统元数据

DataNode(从节点):存储实际的数据块,负责数据的读取和写入操作。

YARN守护进程

ResourceManager(资源管理器):负责集群作业和资源的管理和分配,接收应用程序的资源请求,并进行资源的调度。

NodeManager(节点管理器):在每个节点上运行,负责管理节点上的资源,接收来自ResourceManager的任务,并监控任务的执行状态。

ApplicationMaster(应用程序主管):每个运行在YARN上的应用程序都有一个ApplicationMaster,负责协调应用程序的执行,包括任务的分配和监控。

主节点守护进程

NameNode(主节点)

ResourceManager(资源管理器)

从节点守护进程:

DataNode(从节点)

NodeManager(节点管理器)

17 HDFS命令

    -ls  -mkdir  -get(-copyToLocal)  -put(-copyFromLocal)

18 异常分析

无DataNode的情况下,能否 -ls?

可以,原因:目录结构存储在namenode中的,不需要访问datanode

        There are 0 datanode(s) running and 0 node(s) are excluded in this operation.

(当前运行的datanode个数为0,不包含节点个数为0。)

能否-get/-put?

不能,原因,上传下载文件需要访问datanode

19 HDFS JavaAPI用途

        fileSystem.copyFromLocalFile(本地路径,hdfs路径):从本地路径复制文件到hdfs

        fileSystem.copyToLocalFile(hdfs路径,本地路径):从hdfs复制文件到本地路径

        HDFS REST API

        HDFS Java API是HDFS命令的抽象,支持远程访问HDFS

        应用程序能够以和读写本地数据系统相同的方式从HDFS读取数据,或者将数据写入到HDFS

        其他语言访问HDFS使用REST API

20 HDFS和YARN各守护进程的启动顺序

HDFS守护进程的启动顺序:

NameNode(主节点)

DataNode(从节点)

Secondary NameNode(辅助名称节点)

YARN守护进程的启动顺序:

ResourceManager(资源管理器)

NodeManager(节点管理器)

ApplicationMaster(应用程序主管)

13 HDFS命令(重要)

start-all.sh/stop-all.sh

1 hadoop fs -ls <path>

        列出指定目录下的内容,支持pattern匹配。输出格式如filename(full path)<r n>size.n代表备份数。

2 hadoop fs -lsr <path>

        递归列出该路径下所有子目录信息

3 hadoop fs -du<path>

        显示目录中所有文件大小,或者指定一个文件时,显示此文件大小

4 hadoop fs -dus<path>

        显示文件大小 相当于 linux的du -sb s代表显示只显示总计,列出最后的和 b代表显示文件大小时以byte为单位

5 hadoop fs -mv <src> <dst>

        将目标文件移动到指定路径下,当src为多个文件,dst必须为目录

6 hadoop fs -cp <src> <dst>

        拷贝文件到目标位置,src为多个文件时,dst必须是个目录

7 hadoop fs -rm [skipTrash] <src>

        删除匹配pattern的指定文件

8 hadoop fs -rmr [skipTrash] <src>

        递归删除文件目录及文件

9 hadoop fs -rmi [skipTrash] <src>

        为了避免误删数据,加了一个确认

10 hadoop fs -put <> ... <dst>

        从本地系统拷贝到dfs中

11 hadoop fs -copyFromLocal<localsrc>...<dst>

        从本地系统拷贝到dfs中,与-put一样

12 hadoop fs -moveFromLocal <localsrc>...<dst>

        从本地系统拷贝文件到dfs中,拷贝完删除源文件

13 hadoop fs -get [-ignoreCrc]  [-crc] <src> <localdst>

         从dfs中拷贝文件到本地系统,文件匹配pattern,若是多个文件,dst必须是个目录

14 hadoop fs -getmerge  <src> <localdst>

        从dfs中拷贝多个文件合并排序为一个文件到本地文件系统

15 hadoop fs -cat <src>

        输出文件内容(文件输出到stdout)

hadoop fs -text <src>

        输出文件内容(文件输出为文本格式)

16 hadoop fs -copyToLocal [-ignoreCre] [-crc] <src> <localdst>

        与 -get一致

hadoop fs -moveToLocal

17 hadoop fs -mkdir <path>

        在指定位置创建目录

18 hadoop fs -setrep [-R] [-w] <rep> <path/file>

        设置文件的备份级别,-R标志控制是否递归设置子目录及文件

19 hadoop fs -chmod [-R] <MODE[,MODE]...|OCTALMODE>PATH

        修改文件权限, -R递归修改 mode为a+r,g-w,+rwx ,octalmode为755

20 hadoop  fs -chown [-R] [OWNER][:[GROUP]] PATH

        递归修改文件所有者和组

21 hadoop fs -count[q] <path>

        统计文件个数及占空间情况,输出表格列的含义分别为:DIR_COUNT.FILE_COUNT.CONTENT_SIZE.FILE_NAME,如果加-q 的话,还会列出QUOTA,REMAINING_QUOTA,REMAINING_SPACE_QUOTA

三 YARN

1 YARN是什么

        统一资源管理和调度系统。将集群资源划分为多个容器(Containers),每个容器可以分配给一个应用程序进行计算。

2 YARN主从架构(守护进程)

        主从节点Resourcemanager,NodeManager,也是其守护进程(教材74)

        Master:ResourceManager,集群中各个节点的管理者负责集群资源的管理和分配,接收应用程序的资源请求,并进行资源的调度

        Slave:NodeManager,集群中单个节点的代理。在每个节点上运行负责管理节点上的资源,接收来自ResourceManager的任务,并监控任务的执行状态

3 主要的名词Resourcemanager,NodeManager,Container,Job,ApplicationMaster

        ResourceManager:接受Client请求,执行一级调度scheduler

        NodeManager:执行作业任务job,执行二级调度ApplicationMaster

        Container(容器):YARN的资源抽象,封装多维度资源。由Container提供资源给对应的任务ApplicationApplicationMaster均需要计算资源,均运行在Container用户提交的job以Application的方式执行

        ApplicationsManager:运行在ResourceManager中,管理YARN中所有的ApplicationMaster

        ApplicationMaster:管理一个application运行在NodeManager的Container,每个Application由一个ApplicationMaster负责管理,接收Container的进度汇报,为Container请求资源,ApplicatioinMaster通过心跳向ResourceManager汇报Application进度和资源状态。

        Job(作业):用户提交至YARN的一次计算任务,由Client提交至ResourceManager。MapReduce中每个作业对应一个Application,Spark中作业的每个工作流对应一个Application,效率更高,Apache Slider中多用户共享一个长期Application,系统响应更快。

4 Yarn调度器(三种)

FIFO Scheduler (先进先出调度器)

Capacity Scheduler (容器调度器)

Fair Scheduler (公平调度器)

5 一级调度RM,二级调度AM  基于hadoop 2.0的架构(MRv2)

        一级调度:ResourceManager接收作业,在指定NodeManager节点上启动ApplicationMaster,在scheduler中执行调度算法为ApplicationMaster分配资源,管理各个AM

        二级调度:ApplicationMaster运行在NodeManager上,向ResourceManager请求资源,接受RM的资源分配后在NM上启动Container,在Container中执行Application,并监控Application执行状态。

6 YARN的工作流程(教材75-76) --3.13

        Client向ResourceManager提交作业a(Job)

        1 ResourceManager在调度器(scheduler)中创建一个AppAttempt用于管理作业a的调度。

        NodeManager1向ResourceManager提交心跳,ResourceManager通过ApplicationsManager将作业a的ApplicationMaster分配到NodeManager1。

        ResourceManager通过RPC调用NodeManager1中的startContainer方法,在NodeManager1中为作业a启动Container0(作业的0号容器)

        NodeManager1在Container0中为作业a启动ApplicationMaster

        ApplicationMaster向ApplicationsManager发送请求注册并初始化自身,计算自身所需资源,并向RM发起资源请求

        ResourceManager将ApplicationMaster的资源请求放入scheduler资源队列中,由scheduler分配资源,获得资源后向指定的NodeManager分配相应的Container,等下一次心跳

        ApplicationMaster向ResourceManager发送心跳

        ResourceManager返回ApplicationsManager分配好的Container

        ApplicationMaster向对应的NodeManager发起RPC调用,启动分配的Container.

        (一个ApplicationMatser对应一个Application,根据任务情况可拥有多个Container)

        Container启动后,用于执行用户的作业Application,并向ApplicationMaster汇报进度,ApplicationMaster负责整个Application中的Container的生命周期管理。

        ApplicationMaster为Container向ResourceManager请求资源。

        作业执行完毕,ApplicationMaster向ResourceManager申请注销资源。

5. 主从架构和双层调度范式,谁是一级调度,谁是二级调度(重要)主要在PPT上

ResourceManager作为一级调度,将资源分配给二级调度ApplicationMaster

ResourceManager通过Scheduler(调度器)执行一级调度

调度器—》Container的分配信息—》ApplicationMasterà执行Container的创建—》Application

  • 15
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
hadoop考试复习材料包括两个文件:hadoop考试复习试题200道.pdf和hadoop考试复习试题200道.docx。这些材料可以帮助你准备hadoop考试。此外,在搭建项目环境方面,你需要创建一个名为"HadoopDemo"的Maven项目,包名为"com.itcast",并在项目的pom.xml文件中引入hadoop-common、hadoop-hdfs、hadoop-client以及单元测试junit的依赖。这样你就可以开始使用hadoop进行开发和学习了。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [hadoop考试复习试题200道.pdf](https://download.csdn.net/download/G11176593/86093155)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [hadoop考试复习试题200道.docx](https://download.csdn.net/download/G11176593/86093707)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [Hadoop期末复习—必备知识](https://blog.csdn.net/qq_45656077/article/details/111320614)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值