hadoop知识点总结(二)hdfs分布式文件系统
1, hdfs设计:减少硬件错误的危害,流式数据访问,大规模数据集,简单的一致性模型
2,特点:
1)移动计算的代价比移动数据的代价低
在异构的软硬件平台间的可移植性
2)局限性
不适合低延迟性数据访问。可使用Hbase解决。
不能高效存储小文件。对NameNode压力大。
不支持多用户写入及任意修改文件。只能进行对文件的追加操作。
3,基本概念
1)块:操作系统中的文件块大小为几千字节,而磁盘块的大小为512KB.
HDFS中的块是一个抽象概念,一般系统默认为64M
使用抽象块的好处:
可存储任意大的文件而不会受到网络中任一单个节点磁盘大小的限制
使用抽象块作为操作的单元可以简化存储子系统
块有利于分布式文件系统中复制容错的实现
2)NameNode与DataNode
NameNode
管理文件系统的命名空间
记录每个文件数据块在各个DataNode上的位置和副本信息
协调客户端对文件的访问
记录命名空间内的改动或空间本身属性的改动
使用事务日志记录HDFS元数据的变化。使用映像文件存储文件系统的命名空间,包括文件映射,文件属性等
DataNode
负责所在物理节点的存储管理
一次写入,多次读取(不修改)
文件由数据块组成,典型的块大小是64MB
数据块尽量散布到各个节点
4. HDFS读写数据流程
1) DataNode
客户端要访问HDFS中的一个文件
首先从NameNode获得组成这个文件的数据块位置列表
根据列表知道存储数据块的DataNode
访问DataNode获取数据
NameNode并不参与数据实际传输
5, HDFS可靠性
可以在hdfs-site.xml中设置复制因子指定副本数量
所有数据块都有副本
DataNode启动时,遍历本地文件系统,产生一份HDFS数据块和本地文件的对应关系列表(blockreport)汇报给NameNode
6,机架策略
集群一般放在不同机架上,机架间带宽要比机架内带宽要小 HDFS的“机架感知” ,一般在本机架存放一个副本,在其它机架再存放别的副本,这样可以防止机架失效时丢失数据,也可以提高带宽利用率
7,心跳机制
1) NameNode周期性从DataNode接收心跳信号和块报告
2) NameNode根据块报告验证元数据
3) 没有按时发送心跳的DataNode会被标记为宕机,不会再给它任何I/O请求
4) 如果DataNode失效造成副本数量下降,并且低于预先设置的阈值,NameNode会检测出这些数据块,并在合适的时机进行重新复制
5) 引发重新复制的原因还包括数据副本本身损坏、磁盘错误,复制因子被增大等
8 校验和
在文件创立时,每个数据块都产生校验和
校验和会作为单独一个隐藏文件保存在命名空间下
客户端获取数据时可以检查校验和是否相同,从而发现数据块是否损坏
如果正在读取的数据块损坏,则可以继续读取其它副本
9,回收站
删除文件时,其实是放入回收站/trash ,回收站里的文件可以快速恢复,可以设置一个时间阈值,当回收站里文件的存放时间超过这个阈值,就被彻底删除,并且释放占用的数据块
10,元数据保护
映像文件和事务日志是NameNode的核心数据。可以配置为拥有多个副本,副本会降低NameNode的处理速度,但增加安全性 。NameNode依然是单点,如果发生故障要手工切换
11,HDFS文件操作常用命令:
选项名称 使用格式 含义
-ls -ls <路径> 查看指定路径的当前目录结构
-lsr -lsr <路径> 递归查看指定路径的目录结构
-du -du <路径> 统计目录下个文件大小
-dus -dus <路径> 汇总统计目录下文件(夹)大小
-count -count [-q] <路径> 统计文件(夹)数量
-mv -mv <源路径><目的路径> 移动
-cp -cp<源路径> <目的路径> 复制
-rm -rm [-skipTrash] <路径> 删除文件/空白文件夹
-rmr -rmr [-skipTrash] <路径> 递归删除
-put -put <多个linux上的文件> <hdfs路径> 上传文件
-copyFromLocal -copyFromLocal <多个linux上的文件><hdfs路径> 从本地复制
-moveFromLocal -moveFromLocal <多个linux上的文件><hdfs路径> 从本地移动
-getmerge -getmerge <源路径> <linux路径> 合并到本地
-cat -cat <hdfs路径> 查看文件内容
-text -text <hdfs路径> 查看文件内容
-copyToLocal -copyToLocal [-ignoreCrc] [-crc] [hdfs源路径] [linux目的路径] 从本地复制
-moveToLocal -moveToLocal [-crc] <hdfs源路径> <linux目的路径> 从本地移动
-mkdir -mkdir <hdfs路径> 创建空白文件夹
-setrep -setrep [-R] [-w] <副本数> <路径> 修改副本数量
-touchz -touchz <文件路径> 创建空白文件
-stat -stat [format] <路径> 显示文件统计信息
-tail -tail [-f] <文件> 查看文件尾部信息
-chmod -chmod [-R] <权限模式> [路径] 修改权限
-chown -chown [-R] [属主][:[属组]] 路径 修改属主
-chgrp -chgrp [-R] 属组名称 路径 修改属组
-help -help [命令选项] 帮助
简化hadoop命令,在用户根目录下 vi.bashrc
在最后添加:
aliasfs='hadoop fs' # 定义一个别名,简单化名字
aliasfsa='hadoop dfsadmin'
执行source .bashrc即可生效
fs-ls
fs-mkdir input
fsa-safemode leave
等等命令
hadoop知识点总结(二)hdfs分布式文件系统的更多相关文章
- hadoop系列(二)分布式文件系统HDFS
根据core-site.xml的配置,接下来就可以通过:hdfs://localhost:9000来对hdfs进行操作了. 1.创建输入目录 C:\WINDOWS\system32>hadoop ...
- Hadoop基础-HDFS分布式文件系统的存储
Hadoop基础-HDFS分布式文件系统的存储 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.HDFS数据块 1>.磁盘中的数据块 每个磁盘都有默认的数据块大小,这个磁盘 ...
- 我理解中的Hadoop HDFS分布式文件系统
一,什么是分布式文件系统,分布式文件系统能干什么 在学习一个文件系统时,首先我先想到的是,学习它能为我们提供什么样的服务,它的价值在哪里,为什么要去学它.以这样的方式去理解它之后在日后的深入学习中才能 ...
- Hadoop HDFS分布式文件系统 常用命令汇总
引言:我们维护hadoop系统的时候,必不可少需要对HDFS分布式文件系统做操作,例如拷贝一个文件/目录,查看HDFS文件系统目录下的内容,删除HDFS文件系统中的内容(文件/目录),还有HDFS管理 ...
- 【史上最全】Hadoop 核心 - HDFS 分布式文件系统详解(上万字建议收藏)
1. HDFS概述 Hadoop 分布式系统框架中,首要的基础功能就是文件系统,在 Hadoop 中使用 FileSystem 这个抽象类来表示我们的文件系统,这个抽象类下面有很多子实现类,究竟使用哪 ...
- HDFS分布式文件系统资源管理器开发总结
HDFS,全称Hadoop分布式文件系统,作为Hadoop生态技术圈底层的关键技术之一,被设计成适合运行在通用硬件上的分布式文件系统.它和现有的分布式文件系统有很多共同点,但同时,它和其他的分布式 ...
- 通过Thrift访问HDFS分布式文件系统的性能瓶颈分析
通过Thrift访问HDFS分布式文件系统的性能瓶颈分析 引言 Hadoop提供的HDFS布式文件存储系统,提供了基于thrift的客户端访问支持,但是因为Thrift自身的访问特点,在高并发的访问情 ...
- 认识HDFS分布式文件系统
1.设计基础目标 (1) 错误是常态,需要使用数据冗余 (2)流式数据访问.数据批量读而不是随机速写,不支持OLTP,hadoop擅长数据分析而不是事物处理. (3)文件采用一次性写多次读的模型, ...
- 1、HDFS分布式文件系统
1.HDFS分布式文件系统 分布式存储 分布式计算 2.hadoop hadoop含有四个模块,分别是 common. hdfs和yarn. common 公共模块. HDFS hadoop dist ...
- HDFS 分布式文件系统
博客出处W3c:https://www.w3cschool.cn/hadoop/xvmi1hd6.html 简介 Hadoop Distributed File System,分布式文件系统 架构 B ...
随机推荐
- TextView上下滚动
public class AutoTextView extends TextSwitcher implements ViewFactory { private float mHeight; priva ...
- java操作HDFS相关demo(TDH,kerberos认证)
public class Test { private static Configuration conf; private static FileSystem fs; //开 ...
- c3p0连接池使用:使用c3p0数据源步骤以及完成jdbcUtills类
1.使用c3p0数据源步骤): a.下载c3p0jar,官网下载:https://sourceforge.net/projects/c3p0/: b.导入jar包时,应该导入下面两个包: c.编写c3 ...
- Eclipse-Che 安装(Centos)
安装docker,然后执行:docker run -it --rm -v /var/run/docker.sock:/var/run/docker.sock -v /home/cheData:/dat ...
- Logrotate工具使用
Logrotate logrotate是一个被设计来简化系统管理日志文件的工具,在系统运行时,如果产生大量的日志文件,可以使用该工具进行管理,如/var/log/*文件夹是存储系统和应用日志的目录 ...
- Nacos(二)源码分析Nacos服务端注册示例流程
上回我们讲解了客户端配置好nacos后,是如何进行注册到服务器的,那我们今天来讲解一下服务器端接收到注册实例请求后会做怎么样的处理. 首先还是把博主画的源码分析图例发一下,让大家对整个流程有一个大概的 ...
- python无法连接mysql,有个小坑,需要注意一下!
尝试用python链接mysql数据库,按照教程里链接了小半夜,就是没有链接上,找了各种文章,最后发现是版本的问题,我想使用的模块是MySQLdb,刚刚去他们的官网看了一下,最近一次更新是2014年, ...
- IE浏览器直接在页面中显示7z文件而不是下载问题解决
IE浏览器中输入7z文件的完整下载URL后,不是保存文件,而是直接在页面中显示(当然是乱码) 这是因为浏览器对不同的资源文件处理的方式不同,例如图片文件,一般会直接打开,所以我们可以不用7z,使用zi ...
- 24V降压5V芯片,5A,4.5V-30V输入,同步降压调节器
PW2205开发了一种高效率的同步降压DC-DC转换器5A输出电流.PW2205在4.5V到30V的宽输入电压范围内工作集成主开关和同步开关,具有非常低的RDS(ON)以最小化传导损失.PW2205采 ...
- 干电池升压5V,功耗10uA
PW5100干电池升压5V芯片 输出电容: 所以为了减小输出的纹波,需要比较大的输出电容值.但是输出电容过大,就会使得系统的 反应时间过慢,成本也会增加.所以建议使用一个 22uF 的电容,或者两个 ...