【笔记】HDFS

基本概念

  • HDFS(Hadoop distribute file system)分布式文件系统
  • HDFS的文件被分成块进行存储,HDFS块的默认大小64MB,块是文件存储处理的逻辑单元
  • 两类节点
  1. NameNode是管理节点,存放文件元数据
    (文件与数据块的映射表、数据块与数据节点的映射表)
  2. DataNode是HDFS的工作节点,存放数据块

数据管理策略

1
  • 数据块副本
    每个数据块默认存3个副本,分布在两个机架内的三个节点
    (为了保证机器出现故障时,数据不丢失)
  • 心跳检测
    DataNode定期向NameNode发送心跳消息,汇报自身的工作状态、网络是否正常等信息
  • 二级NameNode,secondaryNameNode
    secondaryNameNode定期同步元数据映像文件和修改日志,NameNode发生故障时,接替成为新的NameNode

文件读写流程

  • 读取


    2

    ①发送文件读取请求,将文件名、路径等信息传给NameNode
    ②NameNode查询元数据,将文件包括哪些块以及块的存储信息返回给客户端
    ③客户端读取blocks

  • 写入


    3

HDFS的特点

  • 数据冗余,硬件容错
  • 流式的数据访问,一次写入,多次读取。写入之后不再随机修改
  • 适合存储大文件,小文件会造成NameNode压力过大
  • 适合数据批量读写,吞吐量高
  • 不适合交互式应用,低延迟很难满足
  • 适合一次写入多次读取,顺序读写
  • 不支持用户并发写相同的文件

HDFS的使用

  • 命令行操作

hadoop fs -ls #显示目录内容列表

4

hadoop fs -mkdir #创建目录

5

hadoop fs -touchz #创建空文件

6

hadoop dfsadmin -report #hadoop查看存储信息

7

# 将本地文件上传到HDFS
hadoop fs -copyFromLocal/-put 本地路径 hdfs路径  
# 下载文件
hadoop fs -get
#删除文件
hadoop fs -rm 
#格式化操作
hadoop namenode -formet

待解决的问题

  1. 上传本地文件时报错

File /user/llytest/nlp.txt.COPYING could only be replicated to 0 nodes instead of minReplication (=1)
There are 0 datanode(s) running and no node(s) are excluded in this operation

  • 可能原因:DataNode未正常工作
    因为查看存储信息时发现集群中两个Datanode的状态都是Dead


    9
  1. 只有hadoop用户能ssh免密登录以及启动hadoop
  • 重启hadoop查看主节点工作进程


    8
  • 查看子节点工作进程


    9

你可能感兴趣的:(【笔记】HDFS)