大数据(0c)Hadoop概述

1、Apache是什么

  • Apache Software Foundation
  • Apache软件基金会(非盈利性组织)
  • 支持 名为Apache的开源软件项目
  • Apache项目有:Hadoop、HIVE、Kafka、Spark、Flink、Maven…
  • 常用Apache软件下载地址:https://archive.apache.org/dist/

2、Hadoop是什么

  • 开源的分布式系统基础架构
  • 由 Apache软件基金会 开发
  • 官网:https://hadoop.apache.org/
  • 下载地址(含历史版本):https://archive.apache.org/dist/hadoop/common/
  • 官方教学文档(最新的稳定版):https://hadoop.apache.org/docs/stable/
  • 本专栏的Hadoop版本:3.1.3

3、Hadoop组成

Hadoop组成全称译名说明
HDFSHadoop Distributed File System分布式文件系统对数据进行分布式存储
MapReduceMap Reduce映射 归约对数据进行分布式计算
YARNYet Another Resource Negotiator资源协调者资源管理

3.1、HDFS

  • 全称:Hadoop Distributed File System
  • 译名:分布式文件系统
  • 用途:存储海量各式各样的数据
优点
适用于海量数据
多副本存储,数据不易丢
高可扩展性,可构建在多个廉价机器
缺点
延时高(延时高≠慢,要分清【延时高】和【运算慢】)
支持数据 追加,不支持文件随机修改
不适用于 大量的小文件

HDFS架构图

主要组成说明备注
NameNode管理数据块的映射信息(好比数据的目录)数据块会增加NameNode内存占用
DataNode执行数据块的读写操作按数据块的方式 把数据存储到DN节点上的硬盘
ClientNameNode交互,获取数据的位置
DataNode交互,传输数据
Secondary NameNode辅助NameNode工作非热备
  • HDFS其它补充:
    https://yellow520.blog.youkuaiyun.com/article/details/115575634

3.1.1、Block

  • 译名:数据块
  • 文件在HDFS上是分块存储的
  • 如果块大小设为128M,此时存一个130M的文件,它会被切成128M2M的两个块
  • 块大小设置:
    块越小,块数量就越多,寻址时间则越长
    块越大,(单个块的)磁盘传输数据的时间就越长
  • HDFS按序读块: t 总 = t 寻 址 + t 全 部 块 的 磁 盘 传 输 + t 其 它 t_总=t_{寻址} + t_{全部块的磁盘传输}+t_{其它} t=t+t+t
    MapReduce并行读块: t 总 = t 寻 址 + t 单 个 块 的 磁 盘 传 输 + t 其 它 t_总=t_{寻址}+t_{单个块的磁盘传输}+t_{其它} t=t+t+t
参数名称参数默认值说明
dfs.blocksize134217728 134217728 = 128 × 1024 × 1024 134217728=128 \times 1024 \times 1024 134217728=128×1024×1024
即是128MB

3.1.2、NameNode 和 DataNode

一个 数据块DataNode上以 两个文件的形式存储在磁盘上:
1、 数据本身
2、 元数据,包括:块的长度、块的校验和( CheckSum)、时间戳

DataNode启动后,会根据配置文件,向指定的NameNode注册

注册通过后,DataNode会周期性地向NameNode上报所有的块信息

DataNode定期(默认3秒)向NameNode发送心跳

DataNodeNameNode的心跳返回结果,结果可以附带命令(如:复制块、删除块…)
若超过一段没有收到某DataNode的心跳,则认为它不可用

参数名称参数默认值说明
dfs.heartbeat.interval3sDataNode的心跳间隔
dfs.namenode.heartbeat.recheck-interval300000检查DataNode是否过期的时间间隔
单位:毫秒

3.1.3、SecondaryNameNode

  • 为确保效率和安全,NameNode节点上的内存和磁盘里都存有元数据
    磁盘中备份元数据的文件名叫fsimage(file system image 文件系统影像?)
    元数据修改时
    内存中的元数据会立即更新(确保效率)
    磁盘中的元数据并不会立即更新,因为这是个费劲且不紧急的事情
    对此引入edits文件,把元数据修改记录立即追加进来(append不费劲
    适当时(check point)再对editsfsimage进行合并
  • 如果所有事情都让NameNode去做,会忙不过来
    于是引入Secondary NameNode来分担工作

初次启动NameNode

NN2NN协作图

ll $HADOOP_HOME/data/dfs/name/current

上述命令可查看HDFS文件
NameNode所在节点下可看到editsedits_inprogressfsimage
SecondaryNameNode所在机器下可看到editsfsimage

3.2、YARN

  • Apache Hadoop YARN
  • 全称:Yet Another Resource Negotiator
  • 译名:Hadoop资源管理器
  • 用途:分配CPU、内存…
  • 解耦思想:将 资源管理 和 应用程序 拆分为 独立的守护进程
    例如:MapReduceSpark等可以在YARN上运行

3.2.1、YARN架构

YARN架构说明
Resource Manager监控NodeManager
处理客户端的请求
Node Manager单节点 资源管理
Container包含 内存、CPU、磁盘、网络 等元素
Application Master第一个Container
负责 为Application申请资源 和 协调旗下的其它Container

YARN官网架构图

3.2.2、YARN上跑任务流程简图

3.3、MapReduce

  • 译名:Map(映射);Reduce(归约)
    分布式计算框架
  • 用途:大规模数据集的离线并行计算

词频统计示例

MR优点
1、高扩展性(增加节点很方便)
2、高容错性,比如:其中一节点挂了,它可把计算任务转移到另一个节点
MR缺点
1、延时高
2、不擅长流式计算(因为MR的输入数据集是静态的)
3、不擅长 DAG 计算(多个程序存在依赖关系,前个程序的输出作为后个程序的输入)

3.3.1、MapReduce跑在YARN上简图

4、配环境

版本
Hadoop 3.1.3
CentOS 7
Windows 10
3.1.13教学文档(找官网的archive可以链到)
https://hadoop.apache.org/docs/r3.1.3/

4.1、Linux+Hadoop

https://yellow520.blog.youkuaiyun.com/article/details/112380523

4.2、Windows+Hadoop+IDEA+Maven

https://yellow520.blog.youkuaiyun.com/article/details/115712233

5、补充

en🔉cn
apacheəˈpætʃin. (巴黎的)街头流氓,痞(pǐ)子;阿帕奇
stableˈsteɪbl稳定的
distributeddɪˈstrɪbjuːtɪd分布式的
negotiatornɪˈɡoʊʃieɪtər谈判者
containerkənˈteɪnər集装箱;容器
managerˈmænɪdʒərn. 经理;管理人员
rackræk架子(如:机房里的机架)
replicaˈreplɪkə复制品,仿制品
replicationˌreplɪˈkeɪʃnn. 复制;回答;反响
metadataˈmetədeɪtən. 元数据,诠释数据
submissionsəbˈmɪʃnn. 投降;提交(物)
acyclicˌeɪˈsaɪklɪkadj. 非循环的;[物] 非周期的
tasktæsk任务
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小基基o_O

您的鼓励是我创作的巨大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值