Hadoop Distribute File System HDFS

一、基本概念
一句话概括:HDFS是分布式文件系统 , 作用是存储大数据文件 , 是领域最基础的部分 。
二、HDFS的重要特性
一群屌丝机组成高富帅
1、主从架构
作为负责管理元数据 , 作为从节点存储block块数据
主从:通常是一主多从 , 主干活 , 从也干活 , 负责的分工不同
主备:通常是一主一备 , 主要解决的是单节点故障问题 , 主干活 , 从为
2、分块存储
大文件的存储问题:写要能写的而下 , 读的时候还要读的块 , 将文件分成block块分布式存储 , 理论上多大的文件都可以存储 , 分块后再读取的时候可以并行读取 , 速度会非常的块 。一般.x版本的默认是128M
3、名称空间
名称空间是指对外有统一的文件路径和命名 , 形如:hdfs://:9000//a.txt , 要上传的文件名和要上传的位置 , 要下载的文件名和下载的文件路径 , 统一规范(简单理解就是我们通过50070能够看到的文件结构) 。
4、元数据
负责元数据的管理 , (元数据通常可以理解为修饰数据的数据) , hdfs中元数据主要指目录结构和文件的块信息
hdfs的存储规则是尽量不存储小文件 , 因为一条元数据理论  , 例如10W个1Kb的小文件存储的硬盘需要100M , 而存储元数据的内存就需要15M 。

Hadoop Distribute File System  HDFS

文章插图
5、数据存储
负责存储block块数据 , 负责真实数据的存储 , 启动后需要向进行心跳 , 并且需要汇报本地块信息 。
主要是存储 , 也就是需要磁盘 , 所以多台廉价的屌丝机就可以组成一个强大的HDFS存储集群
6、副本机制
副本就是备份 , 考虑的是容灾的问题 , 默认每个block有3个副本 , 他们为相互为对方的副本 。
机架感知(3副本机制)
7、一次写入多次读取8、限额操作
数量限额hdfs dfsadmin -setQuota 2 限定的文件的路径# 给该文件夹下面设置最多上传两个文件 , 上传文件 , 发现只能上传一个文件清除权限 -clrQuota空间限额假如现在上传的一个文件的备份数是2 现在的空间不足256假如上传的是129M的文件那么至少是需要剩余空间512才可以上传文件到hdfs查看hdfs文件xianehdfs dfsadmin -setQuota 2 限定的文件的路径# 给该文件夹下面设置最多上传两个文件 , 上传文件 , 发现只能上传一个文件
三、hdfs常用shell命令介绍
-ls使用方法:hadoop fs -ls [-h] [-R] 功能:显示文件、目录信息 。示例:hadoop fs -ls /user/hadoop/file1-mkdir使用方法:hadoop fs -mkdir [-p] 功能:在hdfs上创建目录 , -p表示会创建路径中的各级父目录 。示例:hadoop fs -mkdir –p /user/hadoop/dir1-put使用方法:hadoop fs -put [-f] [-p] [ -| .. ]. hadoop fs -put linux中文件的路径hdfs上的路径功能:将单个src或多个srcs从本地文件系统复制到目标文件系统 。-p:保留访问和修改时间 , 所有权和权限 。-f:覆盖目的地(如果已经存在)示例:hadoop fs -put -f localfile1 localfile2 /user/hadoop/hadoopdir-get使用方法:hadoop fs -get [-ignorecrc] [-crc] [-p] [-f]hadoop fs -get hdfs中文件的路径本地文件的路径hadoop fs -get /hadoop32/word.txt/export-ignorecrc:跳过对下载文件的CRC检查 。-crc:为下载的文件写CRC校验和 。功能:将文件复制到本地文件系统(linux上) 。示例:hadoop fs -get hdfs://host:port/user/hadoop/file localfile-appendToFile 使用方法:hadoop fs -appendToFile