• 【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
    
  • 相关阅读:
    Java实现 洛谷 P1583 魔法照片
    Java实现 洛谷 P1023 税收与补贴问题
    Java实现 洛谷 P1023 税收与补贴问题
    关于如何在Sublime下安装插件
    a标签href不跳转 禁止跳转
    href="javascript:;" href="javascript:void(0);" href="#"区别
    Java通过JNI调用C++程序
    使用数字签名实现数据库记录防篡改(Java实现)
    Java8获取参数名及Idea/Eclipse/Maven配置
    svn: E200033: database is locked解决办法
  • 原文地址:https://www.cnblogs.com/zzzsw0412/p/12772495.html
Copyright © 2020-2023  润新知