栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

HDFS详解+命令操作演示

HDFS详解+命令操作演示

HDFS概述

HDFS(Hadoop Distributed File System)是Apache Hadoop 项目的一个子项目。Hadoop非常实用存储大型数据,TB和PB级别的,其就是使用的HDFS作为存储系统。HDFS是分布式文件系统使用多台计算机存储文件,并提供统一的访问接口,就像访问本地普通文件系统一样。

分布式文件系统解决的就是大数据存储问题。他们是横跨在多台计算机上的存储系统。分布式文件系统在大数据时代有着广泛的应用前景,它们为存储和处理超大规模数据提供所需要的扩展能力。

HDFS特点
  • 可以存储超大文件,时效性稍差
  • 元数据(eg.存储在哪个几个节点、名字……)占用空间,大小文件都一样,所以存储大文件划算
  • 具有硬件故障检测功能和自动恢复功能
  • 为数据存储提供了很强的扩展功能,空间不够了可以随时增加机器
  • 一般为一次写入,多次读取, 只支持追加写入,不支持随机修改
  • 可以在廉价的机器上运行
HDFS架构

采用Master/Slave架构。两个重要的角色是:NameNode和DataNode。

四个基本组件:HDFS Client、NameNode、DataNode、Secondary NameNode.

Client作用
  • 文件切片。文件上传到HDFS中的时候,client会将文件切成一个个block,然后进行存储,block默认大小为128M
  • 与NameNode交互,获取文件的位置信息
  • 与DataNode交互,读取或者写入数据
  • 提供一些命令来管理和访问HDFS,比如启动或者关闭HDFS
NameNode作用
  • 是master,主管、管理者
  • 管理HDFS的元数据(文件路径、文件大小、文件名字、文件权限,文件的block切片信息……)
  • 配置副本策略
  • 处理客户端读写请求
DataNode作用
  • 是Salve。NameNode下达命令,DataNode负责执行
  • 存储实际的数据块
  • 执行数据块的读写操作
  • 定时向NameNode汇报block信息
SecondaryNameNode作用
  • 并非NameNode的热备。当NameNode挂掉的时候,他并不能马上替换掉NameNode并提供服务。
  • 辅助NameNode,分担其工作
  • 在紧急情况下,可以恢复NameNode
HDFS副本机制

HDFS的Shell命令

安装好Hadoop后可以用命令对文件系统进行操作。比如创建、删除、修改文件权限等。

shell命令使用格式:

hadoop fs    // 既可以操作HDFS,也可以操作本地系统
hadoop dfs   // 只能操作hdfs系统
-ls 显示文件列表
hadoop fs -ls URI
eg.	hadoop fs -ls /
eg.	hadoop fs -ls -R /   # 递归显示文件列表
-mkdir创建文件夹
hadoop fs -mkdir /dir1   # 在根目录下创建一个dir1的文件夹
hadoop fs -mkdir -p  /aa/bb/cc   # 递归创建文件夹
-put 将本地文件或文件夹上传到目标系统
hadoop fs -put /root/1.txt /dir1    # 将本地的1.txt文件上传到hadoop的dir1文件夹
hadoop fs -put /root/dir1 /         # 将本地的dir1文件夹上传到hadoop的根目录
-get将HDFS文件拷贝到本地系统
hadoop fs -get  
eg. hadoop fs -get /1.txt /opt   # 将HFDS中的1.txt文件拷贝到本地opt目录
-mv 剪切命令,只能操作hdfs中的文件,不可跨系统
hadoop fs -mv  
-rm命令,删除文件或者文件夹
hadoop fs -rm [-r] [-skipTrash] URI [URI...]
# 删除目录需要加-r
# -skipTrash 跳过回收站,彻底删除
-cp 文件或文件夹复制,只能在hdfs系统中使用,不可以跨系统
hadoop fs -cp  
-cat命令,显示文件内容
hadoop fs -cat 
HDFS基准测试 写入测试

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

hadoop jar /export/server/hadoop-2.7.5/share/hadoop/mapreduce/hadoop-mapreduce-client-jobclient-2.7.5.jar TestDFSIO -write -nrFiles 10 -fileSize 10MB
读取速度

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

hadoop jar /export/server/hadoop-2.7.5/share/hadoop/mapreduce/hadoop-mapreduce-client-jobclient-2.7.5.jar TestDFSIO -read -nrFiles 10 -fileSize 10MB

清除测试数据

hadoop jar /export/server/hadoop-2.7.5/share/hadoop/mapreduce/hadoop-mapreduce-client-jobclient-2.7.5.jar TestDFSIO -clean

									 扫码一起进步

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/583365.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号