zoukankan      html  css  js  c++  java
  • 【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
    
  • 相关阅读:
    移动开发 Native APP、Hybrid APP和Web APP介绍
    urllib与urllib2的学习总结(python2.7.X)
    fiddler及postman讲解
    接口测试基础
    UiAutomator2.0 和1.x 的区别
    adb shell am instrument 命令详解
    GT问题记录
    HDU 2492 Ping pong (树状数组)
    CF 567C Geometric Progression
    CF 545E Paths and Trees
  • 原文地址:https://www.cnblogs.com/zzzsw0412/p/12772495.html
Copyright © 2011-2022 走看看