Hadoop之HDFS基础概念(一)

6 篇文章 0 订阅
5 篇文章 0 订阅

HDFS是什么

1、HDFS是hadoop的一个存储子模块。
2、HDFS(全称Hadoop Distributed File System),即为hadoop的分布式文件系统
3、File System:文件系统,操作系统用来存储和管理文件的软件。即对文件进行增删改查等事务操作。
4、当需要存储的数据过大,超过一个计算机的存储范围。HDFS就可以将文件分成N个Block快存储在不同的计算机上。管理通过网络跨多个计算机的文件系统即为分布式文件系统。

HDFS的优缺点

优点:

1、适合存储大文件,用来管理PB级大数据;
2、处理非结构化数据(一般来说,使用HDFS将非结构化数据结构化,然后进行计算和处理);
3、流的方式访问,适合一次写入,多次读取;
4、由于是集群,运行于廉价的服务器上,成本低;
5、高容错性:少量服务器出现问题,用户察觉小;
6、可扩展性;

缺点:

1、不适合处理低延尺数据访问
(1)、dfs在为了处理大量数据分析任务的,主要是为了达到高的数据吞吐而设计的。
(2)、为了处理低延迟的数据,后续会介绍HBase为更佳选择
2、不适合存储大量的文件
(1)、小文件会个hadoop的性能和扩展带来严重问题
(2)、可以利用SequenceFile、MapFile等方式递归小文件来解决
3、不支持多个用户同时写入及修改同一个文件
(1)、如果文件已经存在,则用户修改当前文件,只能追加
(2)、多个用户不能同时对同一个文件进行写操作,也不能随意修改文件的位置

HDFS命令介绍

HDFS命令的两种格式

hdfs dfs 开头
hadoop fs 开头

以下只用一个格式

1、查看子命令帮助信息,如ls子命令
hdfs dfs -help ls
2、查看hdfs中已经存在文件信息
hdfs dfs -ls /  # 需要加根目录
3、创建hdfs文件
hdfs dfs -touchz /hadoop.txt # 需要目录路径
4、向hdfs文件中追加内容
hdfs dfs -appendToFile local.txt /hdfs.txt # 将本地文件追加到hdfs中的hdfs.ext文件
5、查看hdfs文件内容
hdfs dfs -cat /edits.txt
6、本地文件上传到hdfs上
hdfs dfs -put local.txt /    # 将本地文件上传到hdfs根目录下,本地资源不删除
hdfs dfs -copyFromLocal local.txt / # 和put一样效果
hdfs dfs -moveFromLocal local.txt / # 将本地文件上传到hdfs根目录下,本地资源删除
7、从hdfs下载文件到本地
hdfs dfs -get /test.txt /本地路径 # 如果本地路径不指定,则默认下载在当前路径
hdfs dfs -copyToLocal /test.txt /本地路径 # 和get用法一样
8、在hdfs创建目录
hdfs dfs -mkdir [-r] /parent # 加上-r表示创建多层目录
9、hdfs中删除文件/文件夹
hdfs dfs -rm /test.txt # 删除文件
hdfs dfs -rm [-r] /文件名 # 删除文件夹,加-r表示递归删除 
10、hdfs中修改文件名称(也可以用来移动文件)
hdfs dfs -mv /test1.txt /test.txt # 修改文件名
hdfs dfs -mv /test.txt /test # 将test.txt移动到test文件夹中
11、hdfs拷贝文件/文件夹
hdfs dfs -cp /text.txt /text
hdfs dfs -cp /text /text1
12、文件查找
hdfs dfs -find /查找路径 -name 文件名

下面是hdfs和getconf结合使用

13、获取NameNode节点名称(可能有对个)
hdfs getconf -namenodes
14、获取hdfs最小块信息
hdfs getconf -confkey dfs.namenode.fs-limits.min-block-size
15、获取hdfs的NameNode的RPC地址
hdfs getconf -nnRpcAddresses

下面是hdfs与dfsadmin结合使用

16、查看当前模式
hdfs dfsadmin -safemode get
17、进入安全模式
hdfs dfsadmin -safemode enter
18、退出安全模式
hdfs dfsadmin -safemode leave
19、查看服务器机架信息
hdfs dfsadmin -printTopology

下面为hdfs与fsck结合使用

20、显示hdfs块信息
hdfs fsck /test.txt -files -blocks -locations

其他命令

21、查看压缩库本地安装情况
hadoop checknitive
22、初始化namenode
hadoop namenode -format
23、执行自定义jar
hadoop jar jar名 主类 参数
24、查看压缩文件或者SequenceFile等文件
hdfs dfs -text /文件名

小技巧:如果在使用命令的时候不知道格式可以使用

hdfs dfs -help 命令

来查看用法,或者直接回车会自动显示使用方式

block块

block块

1、向hdfs上次文件时,hdfs上文件存储是分成N个block快存储在集群中不同的datanode中
2、每个block快在默认的情况下,大小为128M
3、在HDFS中,一个不足的128M大小的block块,占用的磁盘存储也只有实际的大小,而不是128M

block副本

1、hdfs在设计的时候,为了保证数据的可用及容错,每个block共有三分,即副本
2、每个副本都是存储在不用datanode中
3、使用配置文件hdfs-site.xml设置副本数

<property>
		<name>dfs.replication</name>
		<value>3</value>
</property>

block存储图block存储图

机架感知

在现实生产中,往往会有很多服务器,会有很多机房,很多机架
datanode在不同的机上block分布规律:
1、第一个block副本会存储在客户端链接的datanode上
2、第二个会存储在与第一个block副本物理距离最近的datanode上
3、第三个会存储在第二个副本相同机架上不同的datanode上
机架感知需要自己配置,详细见https://mp.csdn.net/mdeditor/102488268#

block一些其他操作

动态修改block副本数量

hdfs dfs -setrep -R 4 /path

使用hdfs fsck查看文件目录及block信息和位置

后面会持续更新

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值