【Hadoop离线基础总结】HDFS入门介绍

HDFS入门介绍


概述

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


特性

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

基本命令使用(使用格式:hdfs dfs -command [option] )

  • ls
    hdfs dfs -ls /dirName 查看目录内容
    hdfs dfs -ls -R /dirName 递归查看目录内容(将目录中的所有的内容都呈现出来)
  • lsr
    过期的hdfs dfs -ls -R /dirName
  • mkdir
    hdfs dfs -mkdir /dirName 创建目录
    hdfs dfs -mkdir -p /dirName1/dirName2 创建多级目录
  • moveFromLocal
    hdfs dfs -moveFromLocal LocalSrc dst 从本地向HDFS移动内容
  • moveToLocal
    从HDFS向本地移动内容(但是还不能用)
  • mv
    hdfs dfs -mv /FileName1 /FileName2 重命名(目录也适用)
    hdfs dfs -mv /FilePath dst 移动文件或目录
  • put
    hdfs dfs -put localSrc dst 将本地内容复制到HDFS上
  • appendToFile
    hdfs dfs -appendToFile localsrc … dst 将本地一个或多个文件追加到HDFS指定文件中
  • cat
    hdfs dfs -cat URI 查看HDFS文件内容
  • cp
    hdfs dfs -cp URI dst 将HDFS上的某个文件复制到HDFS指定文件
  • rm
    hdfs dfs -rm URI 删除HDFS上的指定文件
    hdfs dfs -rm -rf URI 强制删除HDFS上的指定文件
  • rmr
    过期的 hdfs dfs -rm -r URI
  • chmod
    hdfs dfs -chmod mode URI 修改HDFS上指定文件的权限
    hdfs dfs -chmod -R mode URI 递归地修改HDFS上指定文件的权限
  • chown
    hdfs dfs -chown owner:grouper URI 修改HDFS上指定文件的所属用户和所属组
    hdfs dfs -chown owner:grouper URI 递归地修改HDFS上指定文件的所属用户和所属组
  • expunge
    hdfs dfs -expunge 清空回收站

高级命令使用

  • 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 清除空间限额
  • HDFS安全模式
    集群刚启动就是安全模式,对外不提供任何服务,只自检,自检没问题的话,30s后自动脱离安全模式。
    hdfs dfsadmin -safemode   手动启动安全模式
	enter	|	leave	|	get	  |		wait
 进入安全模式	 退出安全模式	 获取当前安全
						 模式是否启动

基准测试

  • 概述
    hadoop的环境搭建完成之后,第一件事就是进行压力测试,测试我们的集群的读取和写入速度,测试我们的网络带宽是否足够等一些基准测试
  • 测试写入速度
    向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
  • 测试读取速度
    在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
清除测试数据
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
发布了59 篇原创文章 · 获赞 0 · 访问量 1354

猜你喜欢

转载自blog.csdn.net/CODEROOKIE_RUN/article/details/104358873