大数据离线-HDFS(上)入门操作

8 篇文章 0 订阅
3 篇文章 0 订阅

本次介绍HDFS,分为上,中,下,三篇

  • 上篇入HDFS门介绍,常用操作
  • 中篇为HDFS的读写原理介绍
  • 下篇为HDFS的测试Demo,常用API

1. HDFS的基本概念

  • HDFS的介绍
    HDFS 是 Hadoop Distribute File System 的简称, 意为: Hadoop 分布式文件系统。 是 Hadoop 核心组件之一,作为最底层的分布式存储服务而存在
    分布式文件系统解决的问题就是大数据存储。 它们是横跨在多台计算机上的存储系统。分布式文件系统在大数据时代有着广泛的应用前景,它们为存储和处理超大规模数据提供所需的扩展能力

  • HDFS的设计目的

    • 要里了解一个框架设计的目的,需要从框架出现之前面对的问题入手,这里我们进行绘图演示,说明文件的存储从简单到复杂的演化过程,最终形成了安全可靠快速的HDFS文件存储系统。
    • 过程1
      这里写图片描述
    • 过程2
      这里写图片描述

存储模式2就是简单的HDFS的存储模型,具体的存储过程,在下一篇的存储和读取中会进行详细的讲解。


2.HDFS的重要特性

  • master/slave 架构
    HDFS 采用 master/slave 架构。 一般一个 HDFS 集群是有一个 Namenode 和一定数目的 Datanode 组成。 Namenode 是 HDFS 集群主节点, Datanode 是 HDFS 集群从节点,两种角色各司其职,共同协调完成分布式的文件存储服务。

  • 分块存储
    HDFS 中的文件在物理上是分块存储(block) 的,块的大小可以通过配置参数来规定,默认大小在 hadoop2.x 版本中是 128M。

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

  • Namenode 元数据管理
    -我们把目录结构及文件分块位置信息叫做元数据。 Namenode 负责维护整个hdfs 文件系统的目录树结构,以及每一个文件所对应的 block 块信息(block 的
    id,及所在的 datanode 服务器)。

  • DataNode数据存储
    文件的各个 block 的具体存储管理由 datanode 节点承担。 每一个 block 都可以在多个 datanode 上。 Datanode 需要定时向 Namenode 汇报自己持有的 block信息。存储多个副本(副本数量也可以通过参数设置 dfs.replication,默认是 3)。

  • 副本机制
    为了容错,文件的所有 block 都会有副本。每个文件的 block 大小和副本系数都是可配置的。应用程序可以指定某个文件的副本数目。副本系数可以在文件创建的时候指定,也可以在之后改变。

  • 一次写入,多次读出
    HDFS 是设计成适应一次写入,多次读出的场景,且不支持文件的修改。正因为如此, HDFS 适合用来做大数据分析的底层存储服务,并不适合用来做.网盘等应用,因为,修改不方便,延迟大,网络开销大,成本太高。


3. HDFS的基本操作

  • Shell命令行客户端
    Hadoop 提供了文件系统的 shell 命令行客户端,使用方法如下:
hadoop fs <args>  //<args表示参数>

文件系统 shell 包括与 Hadoop 分布式文件系统( HDFS)以及 Hadoop 支持的其他文件系统( 如本地 FS, HFTP FS, S3 FS 等) 直接交互的各种类似 shell
的命令。 所有 FS shell 命令都将路径 URI 作为参数。

URI 格式为 scheme://authority/path。`

对于 HDFS,该 scheme 是 hdfs,对于本地 FS,该 scheme 是 file。 scheme 和 authority 是可选的。 如果未指定,则使用配置中指定的默认方案。

对于 HDFS,命令示例如下:

hadoop fs -ls hdfs://namenode:host/parent/child
//hadoop fs -ls /parent/child fs.defaultFS 中有配置

对于本地文件系统,命令示例如下:

hadoop fs -ls file:///root/

如果使用的文件系统是 HDFS,则使用 hdfs dfs 也是可以的,hadoop1.x的使用方式。
命令如下
这里写图片描述
这里写图片描述

具体演示如下

  • -ls

    功能: 显示文件、 目录信息。

使用方法: hadoop fs -ls [-h] [-R] <args>
实例:hadoop fs -ls /user/hadoop/file1
  • -mkdir

    功能: 在 hdfs 上创建目录, -p 表示会创建路径中的各级父目录。

使用方法: hadoop fs -mkdir [-p] <paths>
示例: hadoop fs -mkdir – p /user/hadoop/dir1
  • -put

    功能: 将单个 src 或多个 srcs 从本地文件系统复制到目标文件系统。

使用方法: hadoop fs -put [-f] [-p] [ -|<localsrc1> .. ]. <dst>
-p:保留访问和修改时间,所有权和权限。
-f:覆盖目的地(如果已经存在)
示例: hadoop fs -put -f localfile1 localfile2 /user/hadoop/hadoopdir
  • -get
    功能:将文件下载到本地系统
使用方法: hadoop fs -get [-ignorecrc] [-crc] [-p] [-f] <src> <localdst>
-ignorecrc:跳过对下载文件的 CRC 检查。
-crc:为下载的文件写 CRC 校验和。
示例: hadoop fs -get hdfs://host:port/user/hadoop/file localfile
  • -appendToFile
    功能:追加一个文件到已经存在的文件末尾
使用方法: hadoop fs -appendToFile <localsrc> ... <dst>
示例: hadoop fs -appendToFile localfile /hadoop/hadoopfile
  • -cat
    功能:显示文件内容到 stdout
使用方法: hadoop fs -cat [-ignoreCrc] URI [URI ...]
示例: hadoop fs -cat /hadoop/hadoopfile
  • -tail
    功能: 将文件的最后一千字节内容显示到 stdout。
使用方法: hadoop fs -tail [-f] URI
-f 选项将在文件增长时输出附加数据。
示例: hadoop fs -tail /hadoop/hadoopfile
  • -chmod
    功能: 改变文件的权限。使用-R 将使改变在目录结构下递归进行。
示例: hadoop fs -chmod 666 /hadoop/hadoopfile
  • -cp
    功能:从 hdfs 的一个路径拷贝 hdfs 的另一个路径
示例: hadoop fs -cp /aaa/jdk.tar.gz /bbb/jdk.tar.gz.2 
  • -mv
    功能:在 hdfs 目录中移动文件
示例: hadoop fs -mv /aaa/jdk.tar.gz /
  • -rm
    功能: 删除指定的文件。只删除非空目录和文件。 -r 递归删除。
示例: hadoop fs -rm -r /aaa/bbb/
  • -df
    功能:统计文件系统的可用空间信息
示例: hadoop fs -df -h /
  • -du
    功能: 显示目录中所有文件大小,当只指定一个文件时,显示此文件的大小。
示例: hadoop fs -du /user/hadoop/dir1
  • -setrep
    功能: 改变一个文件的副本系数。 -R 选项用于递归改变目录下所有文件的副本
    系数。
示例: hadoop fs -setrep -w 3 -R /user/hadoop/dir1

上篇的内容的到此结束

本博客主要对大数据的学习进行系统的讲解,感兴趣的同学可以关注订阅。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值