HDFS的基本命令

HDFS分布式文件系统

  1. Hadoop:
  2. HDFS(分布式文件系统)解决海量数据存储
  3. MAPREDUCE (分布式运算编程框架)解决海量数据计算
  4. yarn(作业调度和集群资源管理框架)解决资源****任务调度
  5. Hadoop框架内容
  6. HDFS模块:
    NameNode:集群当中的主节点,主要用于管理集群当中的各种数据
    SecondaryNameNode:主要能用于hadoop当中元数据信息的辅助管理
    DataNode:集群当中的从节点,主要用于存储集群当中的各种数据
  7. 数据计算核心模块 yarn:
    ResourceManager:接收用户的计算请求任务,
    并负责集群的资源分配
    NodeManager: 负责执行主节点分配的任务
  8. MapReduce计算需要的数据和产生的结果需要HDFS来进行存储
    MapReduce的运行需要由Yarn集群来提供资源调度。

HDFS特点:

  • HDFS文件系统可存储超大文件,时效性稍差
  • HDFS具有硬件故障检测和自动快速恢复功能
  • HDFS为数据存储提供很强的扩展能力
  • HDFS存储一般为一次写入,多次读取,只支持追加写入,不支持随机修改
  • HDFS可以在普通廉价的机器上运行

HDFS架构

在这里插入图片描述

  • HDFS采用Master/Slave架构
  • 一个HDFS集群有两个重要的角色,分别是Namenode和Datanode。
  • HDFS的四个基本组件:HDFS Client、NameNode、DataNode和Secondary NameNode
    Client
    就是客户端。
    文件切分。文件上传 HDFS 的时候,Client 将文件切分成 一个一个的Block(128M),然后进行存储
    与 NameNode 交互,获取文件的位置信息。
    与 DataNode 交互,读取或者写入数据。
    Client 提供一些命令来管理 和访问HDFS,比如启动或者关闭HDFS。

    2、NameNode
    就是 master,它是一个主管、管理者。
    管理 HDFS 元数据(文件路径,文件的大小,文件的名字,文件权限,文件的block切片信息….)。
    配置副本策略。
    处理客户端读写请求。

    3、DataNode
    就是Slave。NameNode 下达命令,DataNode 执行实际的操作。
    存储实际的数据块。
    执行数据块的读/写操作。
    定时向namenode汇报block信息。

    4、Secondary NameNode
    并非 NameNode 的热备。当NameNode 挂掉的时候,它并不能马上替换 NameNode 并提供服务。
    辅助 NameNode,分担其工作量。
    在紧急情况下,可辅助恢复 NameNode。
  • HDFS的副本机制
    HDFS的副本机制
    HDFS被设计成能够在一个大集群中跨机器可靠地存储超大文件。它将每个文件存储成一系列的数据块,这个数据块被称为block,除了最后一个,所有的数据块都是同样大小的。为了容错,文件的所有block都会有副本。每个文件的数据块大小和副本系数都是可配置的。hadoop2 当中, 文件的 block 块大小默认是 128M(134217728字节)。

HDFS的命令

  • Hadoop提供了文件系统的shell命令使用格式如下
    • hadoop fs #既可以操作HDFS,也可以操作本地系统
      或者
      hdfs dfs #只能操作HDFS系统
  • ls命令
    • 格式: hadoop fs -ls URI
      作用:类似于Linux的ls命令,显示文件列表
      hadoop fs -ls / #显示文件列表
      hadoop fs –ls -R / #递归显示文件列表
  • mkdir命令
    • 格式 : hadoop fs –mkdir [-p]
      作用 : 以中的URI作为参数,创建目录。使用-p参数可以递归创建目录
      应用:
      hadoop fs -mkdir /dir1
      hadoop fs -mkdir -p /aaa/bbb/ccc
  • put命令
    • 格式 :
      hadoop fs -put …
      作用 :
      将单个的源文件或者多个源文件srcs从本地文件系统上传到目标文件系统中。
      应用:
      hadoop fs -put /root/1.txt /dir1 #上传文件
      hadoop fs –put /root/dir2 / #上传目录
  • get命令
    • 格式 :
      hadoop fs -get
      作用:
      将HDFS文件拷贝到本地文件系统。
      应用:
      hadoop fs -get /initial-setup-ks.cfg /opt
  • mv命令
    • 格式 :
      hadoop fs -mv
      作用:
      将hdfs上的文件从原路径src移动到目标路径dst,该命令不能夸文件系统
      应用:
      hadoop fs -mv /dir1/1.txt /dir2
  • rm命令
    • 格式:
      hadoop fs -rm [-r] [-skipTrash] URI [URI 。。。]
      作用:
      删除参数指定的文件和目录,参数可以有多个,删除目录需要加-r参数
      如果指定-skipTrash选项,那么在回收站可用的情况下,该选项将跳过回收站而直接删除文件;
      否则,在回收站可用时,在HDFS Shell 中执行此命令,会将文件暂时放到回收站中。
      应用:
      hadoop fs -rm /initial-setup-ks.cfg #删除文件
      hadoop fs -rm -r /dir2 #删除目录
  • cp命令
    • 格式:
      hadoop fs -cp
      作用:
      将文件拷贝到目标路径中
      应用:
      hadoop fs -cp /dir1/1.txt /dir2 :把1.txt拷贝到dir2里面
      hadoop fs -cp /dir2 /dir1 :把dir2拷贝到dir1
  • cat命令
    • 格式:
      hadoop fs -cat
      作用:
      将参数所指示的文件内容输出到控制台
      应用:
      hadoop fs -cat /dir1/1.txt
  • HDFS的基准测试
  • 实际生产环境当中,hadoop的环境搭建完成之后,第一件事情就是进行压力测试,测试我们的集群的读取和写入速度,这些操作被称为基准测试。
  • 写入速度测试
  • 向HDFS文件系统中写入数据,10个文件,每个文件10MB,文件存放到/benchmarks/TestDFSIO中
    • hadoop jar /export/server/hadoop-2.7.5/share/hadoop/mapreduce/hadoop-mapreduce-client-jobclient-2.7.5.jar TestDFSIO -write -nrFiles 10 -fileSize 10MB
  • 测试读取速度
  • 在HDFS文件系统中读入10个文件,每个文件10M
    • hadoop jar /export/server/hadoop-2.7.5/share/hadoop/mapreduce/hadoop-mapreduce-client-jobclient-2.7.5.jar TestDFSIO -read -nrFiles 10 -fileSize 10MB
  • 清除测试数据
    • hadoop jar /export/server/hadoop-2.7.5/share/hadoop/mapreduce/hadoop-mapreduce-client-jobclient-2.7.5.jar TestDFSIO -clean
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值