HDFS特性和常用功能

0. HDFS集群的配置

Hadoop集群配置后start-dfs.sh启动hdfs服务
Hadoop集群配置见前文

CentOS7下配置Hadoop集群和Zookeeper集群
https://blog.csdn.net/wxfghy/article/details/80417691

1. Hadoop官方文档

http://hadoop.apache.org/docs/r2.9.1/hadoop-project-dist/hadoop-hdfs/HdfsDesign.html

2. HDFS概念

Hadoop Distributed File System
Hadoop的分布式文件系统
HDFS被设计成适合运行在通用硬件(commodity hardware)上的分布式文件系统。

3. 基本特点

高容错性,部署在低廉的硬件上,高吞吐量,适用于海量数据的可靠性存储和数据归档

4. HDFS设计目标

  1. 硬件失效
    将硬件失效看作一种常态,健壮性,高可用.检查错误,快速和自动恢复是核心架构
  2. 流式访问
    允许通过流的方式访问数据集,批量处理非交互,高吞吐量访问非低延迟
  3. 大数据集
    支持PB级数据量,具有高带宽,可扩展到集群中
  4. 简单一致性模型
    一次写入,多次读取,文件创建后无须修改(日志等),支持追加,不支持任意位置修改
  5. 移动计算要比移动数据更划算
    以文件块管理,提供接口去移动计算到数据所在位置,非移动数据到应用位置
  6. 轻便的跨异构的软硬件平台
    可轻便从一个平台跨到另一个平台,包括版本不同和运行环境不同

5. 重要特性

  1. 分块存储(block)
    默认大小128M(2.x版本),64M(老版本),可修改
  2. 统一的抽象目录树
    可通过路径访问文件(hdfs://namenode:port/…)
  3. 统一管理
    目录结构和元数据的管理都由namenode(集群主节点)承担
    负责维护目录树和文件所对应的block块id和所在datanode服务器
  4. datanode存储管理
    集群从节点,每个block可在多个datanode上存储多个副本,副本数量可修改
  5. 一次写多次读,可追加不可改
  6. 一些缺点:
    不便修改,延迟大,网络开销大,仅适用于数据分析任务

6. 常用命令

  1. hadoop fs 等同于 hdfs fs,作为命令头
功能 命令
hdfs协议访问namenode hadoop fs -ls hdfs://master:9000/
http协议访问datanode hadoop fs -ls http://slavea:50075/
在根目录下创建文件夹 hadoop fs -mkdir /mydemo
上传文件到目标文件夹 hadoop fs -copyFromLocal h1.txt /mydemo
下载文件到当前文件夹 hadoop fs -copyToLocal /mydemo/h1.txt ./d1.txt
查看文件 hadoop fs -cat /mydemo/h1.txt
查看目录下所有文件 hadoop fs -ls -R /
追加文件内容到目标文件中 hadoop fs -appendToFile ./h2.txt /mydemo/h1.txt
删除文件或文件夹 hadoop fs -rm -r /mydemo

7. HDFS工作机制

  1. datanode损坏
    如配置10个datanode,备份数为3,则损坏1个datanode时会自动寻找新的datanode补充进来,保证备份数为设定值
  2. 写数据的流程
    1. 首先,客户端要和namenode通信以确认可以写文件并获得接收文件block的datanode
    2. 然后,客户端按顺序将文件逐个block传递给相应的datanode
    3. 最后,由接收到block的datanode负责向其他datanode复制block的副本
  3. 读数据的流程
    1. 首先,客户端将要读取的文件路径发送给namenode
    2. 然后,namenode获取文件的元信息(主要是block的存放位置信息)返回给客户端
    3. 最后,客户端根据返回的信息找到相应datanode逐个获取文件的block并在客户端本地进行数据追加合并从而获得整个文件

8. HDFS常用功能

1.元数据

  1. Metadata,维护文件和目录信息,分为内存元数据和元数据文件
  2. NameNode主要存储元数据镜像文件Fsimage和日志文件Edits
    1. Fsimage记录某一永久性检查点时整个HDFS的元信息
    2. Edits所有对HDFS的写操作都会记录在此文件

2.检查点

  1. 定期对NameNode中的文件进行备份,NameNode启动时会将最新的Fsimage加载到内存中
  2. 由secondary namenode完成namenode备份,后者损坏后前者将fsimage拷贝到namenode工作目录,恢复其元数据
  3. 触发条件分为两次检查点间隔时间和两次检查点操作数两种

3.DataNode功能

  1. 存储管理用户的文件块数据,默认128M/block
  2. 定期汇报块信息给namenode,默认3600000ms(1小时一次)

猜你喜欢

转载自blog.csdn.net/wxfghy/article/details/80430685