• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

HDFS和基本命令操作

武飞扬头像
蜜桃上的小叮当
帮助1

HDFS介绍

  • HDFS意为Hadoop分布式文件系统,是Apache Hadoop生态圈中的核心组件之一,也是整个生态圈中最底层的分布式存储服务,也是大数据首先要解决的海量存储问题的关键。
  • HDFS作为分布式存储,是横跨在多太计算机上的存储系统,能够在普通硬件上运行,具有高度的容错性。非常适用于存储大型数据TB级甚至PB级。
  • HDFS和普通分布式文件系统一样,使用多台计算机存储文件,并且提供统一的访问接口,如下图所示:
    学新通

HDFS设计目标

  • 硬件故障问题:HDFS可能有成百上千的服务器组成,每一个组件都有可能出现故障。因此故障检测和自动快速恢复是HDFS的核心架构目标。
  • 批处理:HDFS上的应用主要是流式读取数据,HDFS设计却是批处理,主要原因是相比于数据访问的时间,更注重于数据访问的吞吐量。
  • 高聚合数据带宽:HDFS作为支持大文件的分布式文件系统,需要提供很高的聚合数据带宽。
  • write-one-read-many访问模型:为了支持高吞吐量的数据访问,HDFS对文件要求使用write-one-read-many访问模型,一但写入之后,无需再修改
  • 代价性比较:移动计算的代价比之移动数据的代价低。一个应用请求的计算,离它操作的数据越近就越高效。将计算移动到数据附近,比之将数据移动到应用所在显然更好。
  • 可移植:HDFS可以从一个平台轻松移动到另一个平台。

HDFS适用场景

  • 适用场景有:大文件、数据流式访问、一次写入多次读取、低成本部署、高容错。
  • 不适用的场景:小文件、数据交互式访问、修改频繁的文件、低延时处理。

HDFS重要特性

主从架构

  • HDFS群集是标准的主从架构群集,一般来说是由1个Namenode和多个Datanode组成,Namenode是HDFS主节点、Datanode是从节点。官方架构图如下所示:
    学新通

分块存储

  • HDFS中的文件在物理上是分块存储(block)的,默认大小是128M,不足128M则本身就是一块。块的大小可以通过修改hdfs-default.xml文件中dfs.blocksize参数来指定。
    学新通

副本机制

文件所有的block都会有副本,默认值为3,也就是说会额外会复制2份,副本可以通过修改dfs.replication参数来设置。

元数据MetaData管理

  • HDFS中是由Namenode管理元数据,元数据主要有两种类型。
    • 文件自身的属性信息:文件名称、权限,修改时间,文件大小,复制因子,数据块大小。
    • 文件块映射信息:记录文件块和DataNode之间的映射信息,即哪个块位于哪个节点上。

Namespace命名空间

  • HDFS支持传统的层次型文件组织结构。用户可以创建目录,然后将文件保存在这些目录里。文件系统名字空间的层次结构和大多数现有的文件系统类似:用户可以创建、删除、移动或重命名文件。
  • Namenode负责维护文件系统的Namespace名称空间,任何对文件系统名称空间或属性的修改都将被Namenode
    记录下来。
  • HDFS会给客户端提供一个统一的抽象目录树,客户端通过路径来访问文件。

数据块存储

  • 文件的各个block的具体存储管理由DataNode节点承担。
  • 每一个block都可以在多个DataNode上存储。

HDFS基本命令操作

  1. 创建文件夹命令
#path为目录
#-p选项的行为与mkdir -p非常相似,它会沿着路径创建父目录
hadoop fs -mkdir [-p] <path> ... 
#示例
hadoop fs -mkdir /cauchy
  1. 查看指定目录下内容
#path为目录
# -h 人性化显示文件size
# -R 递归查看指定目录及其子目录
hadoop fs -ls [-h] [-R] [<path> ...] 

学新通

  1. 上传文件到HDFS目录下
# -f 覆盖目标文件(已存在下)
# -p 保留访问和修改时间,所有权和权限。
# localsrc 本地文件系统(客户端所在机器)
# dst 目标文件系统(HDFS)
 hadoop fs -put [-f] [-p] <localsrc> ... <dst>

#示例
hadoop fs -put file:///root/hello.txt hdfs://node1:8020/cauchy

学新通

  1. 下载HDFS文件
#解释与上传相同
hadoop fs -get [-f] [-p] <src> ... <localdst>

#示例
hadoop fs -get hdfs://node1:8020/cauchy/hello.txt ./
  1. 拷贝HDFS文件
# -f覆盖目标文件
hadoop fs -cp [-f] <src> ... <dst>

#示例(默认是hdfs所以可以不需要加hdfs://....)
hadoop fs -cp -f /test/nihao.txt /cauchy/

学新通

  1. HDFS数据移动操作
#类似于mv操作
hadoop fs -mv <src> ... <dst>

#示例
hadoop fs -mv /test/nihao.txt ni_hao.txt

学新通

  1. HDFS其他指令

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhgikafg
系列文章
更多 icon
同类精品
更多 icon
继续加载