Hadoop

本文详细介绍了Hadoop的分布式文件系统HDFS,包括其工作原理、优点和缺点,如高容错性、处理大数据能力,以及不支持小文件和并发写入的特性。文章还探讨了HDFS的组成架构,如NameNode、DataNode、Secondary NameNode的角色,以及文件的读写流程,重点解释了NameNode和Secondary NameNode的工作机制。
摘要由CSDN通过智能技术生成

Hadoop

HDFS

概述

HDFS是一个分布式的文件系统,通过目录树来定位文件。

使用场景:一次写入,多次读出。(文件上传后只读不改)

优点

  1. 高容错性

    数据会自动保存多个副本,同时当某个副本丢失后,可以自动恢复(从别的机器上复制)。

  2. 处理大数据

    (1) 数据规模:可以处理GB、TB甚至PB级别的数据。

    (2) 文件规模:可以处理百万规模以上的文件数量。

  3. 机器要求低

    可以构建在廉价的机器上,因为存在着副本机制。

缺点

  1. 速度慢

  2. 无法高效存储大量小文件

    (1)小文件会占用NameNode大量的内存来存储文件目录和块信息。

    (2)寻址时间会超过读取时间

  3. 不支持并发写入和文件随机修改

    文件只支持追加。

*组成架构

HDFS Architecture

NameNode(nn)

负责管理

(1)管理HDFS名称空间

​ 存储所有的元数据

(2)配置副本策略

​ 每个文件的副本有几个

(3)管理数据块(Block)映射信息

​ 即每个文件所在的位置

(4)处理客户端读写请求

DataNode

(1)存储实际的数据块

(2)执行数据块的读/写

Secondary NameNode

​ 不是NameNode的热备份,当NameNode挂了之后,不能立刻替换Nam deNode提供服务。

(1)辅助NameNode,分担工作,会定期合并Fsimage(镜像文件)和Edits(编辑日志),然后推送给NameNode

(2)紧急情况时,可以辅助恢复NameNode,但是可能会丢失部分数据

Client

(1)文件切分

​ 按照nn的文件块大小对文件进行切分

(2)与NameNode交互,获取文件的位置信息

(3)与DataNode交互,读取或写入数据

(4)通过命令管理HDFS,比如NameNode格式化

(5)通过命令访问HDFS,实现增删改查

文件块大小

默认文件块大小为128M(dfs.blocksize),如果存入1KB的文件,只占用1KB,剩余的空间还可以存储别的文件。

寻址时间为传输时间的1%时,为最佳状态。

Shell命令

上传

剪切 (moveFromLocal)

hadoop fs -moveFromLocal 本地路径 hdfs 路径

拷贝(moveFromLocal/put)

hadoop fs -put 本地路径 hdfs路径
hadoop fs -copyFromLocal 本地路径 hdfs路径

追加文件到文件末尾(appendToFile)

hadoop fs -appendToFile 本地路径 hdfs具体文件路径
下载

copyToLocal/get

hadoop fs -get hdfs文件路径 本地路径
HDFS内操作

-ls: 显示目录信息

hadoop fs -ls hdfs路径

-cat:显示文件内容

hadoop fs -cat 文件路径

-chgrp、-chmod、-chown:Linux文件系统中的用法一样,修改文件所属权限

hadoop fs -chmod 666 文件路径

-mkdir:创建路径

hadoop fs -mkdir 路径

-cp:从HDFS的一个路径拷贝到HDFS的另一个路径

hadoop fs -cp 文件路径 目的路径

-mv:在HDFS目录中移动文件

hadoop fs -mv 文件路径 目的路径

-tail:显示一个文件的末尾1kb的数据

hadoop fs -tail 文件路径

-rm:删除文件或文件夹

hadoop fs -rm 文件路径

-rm -r:递归删除目录及目录里面内容

hadoop fs -rm -r 文件路径

-du统计文件夹的大小信息

hadoop fs 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值