Hadoop离线_HDFS基本介绍

1 概述

HDFS全称为Hadoop Distribute File System,也就是Hadoop分布式文件系统,是Hadoop的核心组件之一。
分布式文件系统是横跨在多台计算机上的存储系统,主要解决的就是大数据存储的问题
在这里插入图片描述

2 特征

  1. master/slave架构
    HDFS集群一般是由一个 NameNode 和一定数目的 DataNode 组成。NameNode 是 HDFS 集群主节点,DataNode 是 HDFS 集群从节点。
  2. 分块存储
    分块存储存在的原因:
    假如有100台机器,每台机器只有1T。现在有一个2T的文件,单独存放在一台机器上是无法实现的。那么分块存储就能派上用场,它可以将2T的文件分成很多大小为128M的block块儿,将这些block块分别存储在不同的机器上。
  3. 名字空间(NameSpace
    Namenode 负责维护文件系统的名字空间,任何对文件系统名字空间或属性的修改(用户可以创建、删除、移动或重命名文件)都将被 Namenode 记录下来。
    统一的命名空间:对外提供统一的文件访问地址
  4. Namenode元数据管理
    就是将所有的元数据信息保存起来方便查找
  5. DataNode数据存储
    就是出磁盘,用来存储文件数据
  6. 副本机制
    用来应对block块丢失的情况(副本数量也可以通过参数设置 --> dfs.replication ,默认是3)
  7. 一次写入,多次读出
    hdfs文件系统适合频繁读取,不适合频繁写入,因为改变文件涉及到元数据的改变。因此适合用来做大数据分析的底层存储服务,并不适合用来做网盘等应用。

3 基本命令

格式:hdfs dfs -command [option]

  1. ls
    hdfs dfs -ls /dirName 查看目录内容
    hdfs dfs -ls -R /dirName 递归查看目录内容(将目录中的所有的内容都呈现出来)
  2. lsr(已过期)
    hdfs dfs -lsr /dirName 递归查询
  3. mkdir
    hdfs dfs -mkdir /dirName 创建目录
    hdfs dfs -mkdir -p /dirName1/dirName2 创建多级目录
  4. moveFromLocal(注意大小写)
    hdfs dfs -moveFromLocal LocalSrc dst 从本地向HDFS移动内容
  5. moveToLocal(还不能用):从HDFS向本地移动内容
  6. mv:在hdfs文件系统内使用
    hdfs dfs -mv /FileName1 /FileName2 重命名(目录也适用)
    hdfs dfs -mv /FilePath dst 移动文件或目录
  7. put
    hdfs dfs -put localSrc dst 将本地内容复制到HDFS上
  8. appendToFile
    hdfs dfs -appendToFile localsrc … dst 将本地一个或多个文件追加到HDFS指定文件中
  9. cat
    hdfs dfs -cat URI 查看HDFS文件内容
  10. rm
    hdfs dfs -rm URI 删除HDFS上的指定文件
    hdfs dfs -rm -rf URI 强制删除HDFS上的指定文件
  11. cp
    hdfs dfs -cp URI dst 将HDFS上的某个文件复制到HDFS指定文件
  12. rmr(已过期)
    hdfs dfs -rmr URI 递归删除目录
  13. chmod
    hdfs dfs -chmod mode URI 修改HDFS上指定文件的权限
    hdfs dfs -chmod -R mode URI 递归地修改HDFS上指定文件的权限
  14. chown
    hdfs dfs -chown owner:grouper URI 修改HDFS上指定文件的所属用户和所属组
    hdfs dfs -chown owner:grouper URI 递归地修改HDFS上指定文件的所属用户和所属组
  15. expunge
    hdfs dfs -expunge 清空回收站

4 高级命令

  1. HDFS文件限额配置
  • 数量限额:
    hdfs dfs -mkdir -p /user/root/lisi 创建hdfs文件夹
    hdfs dfsadmin -setQuota 2 lisi 给该文件夹下面设置最多上传两个文件
    (文件限额数包括用户文件夹本身,也就是限额两个只能上传一个文件)
    hdfs dfsadmin -clrQuota /user/root/lisi 清除文件数量限制
  • 空间限额:
    hdfs dfsadmin -setSpaceQuota 4k /user/root/lisi 限制空间大小4KB
    hdfs dfsadmin -clrSpaceQuota /user/root/lis 清除空间限额
  1. HDFS安全模式
    集群刚启动就是安全模式,对外不提供任何服务,只自检,自检没问题的话,30s后自动脱离安全模式。

在安全模式下文件系统是只读模式

hdfs dfsadmin -safemode enter  #手动启动安全模式
hdfs dfsadmin -safemode leave  #手动退出安全模式
hdfs dfsadmin -safemode get  #获取当前模式
hdfs dfsadmin -safemode wait  #模式是否启动

5 基准测试

5.1 概述

hadoop的环境搭建完成之后,第一件事就是进行压力测试,测试我们的集群的读取和写入速度,测试我们的网络带宽是否足够等一些基准测试

5.2 测试写入速度

向HDFS文件系统中写入数据,10个文件,每个文件10MB,文件存放到 /benchmarks/TestDFSIO 中

hadoop jar /export/servers/hadoop-2.6.0-cdh5.14.0/share/hadoop/mapreduce/hadoop-mapreduce-client-jobclient-2.6.0-cdh5.14.0.jar TestDFSIO  -write -nrFiles 10 -fileSize 10MB

# 查看写入速度结果
hdfs dfs -text /benchmarks/TestDFSIO/io_write/part-00000

# 或者在当前目录下会生成一个TestDFSIO_results.log文件也能查看结果
more TestDFSIO_results.log
5.3 测试读取速度

在HDFS文件系统中读入10个文件,每个文件10M

hadoop jar /export/servers/hadoop-2.6.0-cdh5.14.0/share/hadoop/mapreduce/hadoop-mapreduce-client-jobclient-2.6.0-cdh5.14.0.jar TestDFSIO -read -nrFiles 10 -fileSize 10MB

# 查看读取速度结果
hdfs dfs -text /benchmarks/TestDFSIO/io_read/part-00000

# 或者在当前目录下会生成一个TestDFSIO_results.log文件也能查看结果
more TestDFSIO_results.log

5.4 清楚测试数据

减少hdfs文件系统内存占用

hadoop jar /export/servers/hadoop-2.6.0-cdh5.14.0/share/hadoop/mapreduce/hadoop-mapreduce-client-jobclient-2.6.0-cdh5.14.0.jar TestDFSIO -clean
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值