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分布式文件系统的更多相关文章

  1. hadoop系列(二)分布式文件系统HDFS

    根据core-site.xml的配置,接下来就可以通过:hdfs://localhost:9000来对hdfs进行操作了. 1.创建输入目录 C:\WINDOWS\system32>hadoop ...

  2. Hadoop基础-HDFS分布式文件系统的存储

    Hadoop基础-HDFS分布式文件系统的存储 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.HDFS数据块 1>.磁盘中的数据块 每个磁盘都有默认的数据块大小,这个磁盘 ...

  3. 我理解中的Hadoop HDFS分布式文件系统

    一,什么是分布式文件系统,分布式文件系统能干什么 在学习一个文件系统时,首先我先想到的是,学习它能为我们提供什么样的服务,它的价值在哪里,为什么要去学它.以这样的方式去理解它之后在日后的深入学习中才能 ...

  4. Hadoop HDFS分布式文件系统 常用命令汇总

    引言:我们维护hadoop系统的时候,必不可少需要对HDFS分布式文件系统做操作,例如拷贝一个文件/目录,查看HDFS文件系统目录下的内容,删除HDFS文件系统中的内容(文件/目录),还有HDFS管理 ...

  5. 【史上最全】Hadoop 核心 - HDFS 分布式文件系统详解(上万字建议收藏)

    1. HDFS概述 Hadoop 分布式系统框架中,首要的基础功能就是文件系统,在 Hadoop 中使用 FileSystem 这个抽象类来表示我们的文件系统,这个抽象类下面有很多子实现类,究竟使用哪 ...

  6. HDFS分布式文件系统资源管理器开发总结

      HDFS,全称Hadoop分布式文件系统,作为Hadoop生态技术圈底层的关键技术之一,被设计成适合运行在通用硬件上的分布式文件系统.它和现有的分布式文件系统有很多共同点,但同时,它和其他的分布式 ...

  7. 通过Thrift访问HDFS分布式文件系统的性能瓶颈分析

    通过Thrift访问HDFS分布式文件系统的性能瓶颈分析 引言 Hadoop提供的HDFS布式文件存储系统,提供了基于thrift的客户端访问支持,但是因为Thrift自身的访问特点,在高并发的访问情 ...

  8. 认识HDFS分布式文件系统

    1.设计基础目标 (1) 错误是常态,需要使用数据冗余  (2)流式数据访问.数据批量读而不是随机速写,不支持OLTP,hadoop擅长数据分析而不是事物处理.  (3)文件采用一次性写多次读的模型, ...

  9. 1、HDFS分布式文件系统

    1.HDFS分布式文件系统 分布式存储 分布式计算 2.hadoop hadoop含有四个模块,分别是 common. hdfs和yarn. common 公共模块. HDFS hadoop dist ...

  10. HDFS 分布式文件系统

    博客出处W3c:https://www.w3cschool.cn/hadoop/xvmi1hd6.html 简介 Hadoop Distributed File System,分布式文件系统 架构 B ...

随机推荐

  1. Spring-构造注入&注解注入&代理模式&AOP

    1.   课程介绍 1.  依赖注入;(掌握) 2.  XML自动注入;(掌握) 3.  全注解配置;(掌握) 4.  代理模式;(掌握) 5.  AOP;(掌握) 依赖注入;(掌握) 2.1.  构 ...

  2. 第三章 IP地址规划设计技术(很重要)

    知识重点: 选择题考点 IP基础(网络地址.子网掩码) 网络地址转换 NAT 的原理 CIDR (计算方法) IPv6 地址表示 综合题 IP地址的分类与计算 VLSM 地址规划 3.1 基础知识 3 ...

  3. SpringBoot整合sa-token,完成网站权限验证

    sa-token是什么? sa-token是一个JavaWeb轻量级权限认证框架,其API调用非常简单,有多简单呢?以登录验证为例,你只需要: // 在登录时写入当前会话的账号id StpUtil.s ...

  4. day119:MoFang:宠物的状态改动&宠物粮道具的使用&宠物死亡处理

    目录 1.宠物的状态改动 2.宠物粮道具的使用 3.宠物死亡处理 1.宠物的状态改动 1.在setting表中为每个宠物配置生命周期时间 因为宠物有多个,每个宠物会有不同的初始生命的饥饿时间,所以我们 ...

  5. Svm算法原理及实现

    Svm(support Vector Mac)又称为支持向量机,是一种二分类的模型.当然如果进行修改之后也是可以用于多类别问题的分类.支持向量机可以分为线性核非线性两大类.其主要思想为找到空间中的一个 ...

  6. 两万字长文总结,梳理 Java 入门进阶那些事

    大家好,我是程序员小跃,一名在职场已经写了6年程序的老程序员,从一开始的菊厂 Android 开发到现在某游戏公司的Java后端架构,对Java还是相对了解的挺多. 大概是半年前吧,在知乎上有个知友私 ...

  7. 【Linux】iptables配置文件中的一些疑问

    1.看到配置文件中开头会写一句话,但是数值还都不一样 括号里面的数值的含义是:通过该规则的数据包和字节总数 Chain FORWARD (policy DROP 0 packets, 0 bytes) ...

  8. 19.java设计模式之备忘录模式

    基本需求 游戏的角色有攻击力和防御力,在大战Boss之前保存自身的状态(攻击力和防御力),当大战Boss之后攻击力和防御力下降,从备忘录对象恢复到大战前的状态 传统方案 一个对象,就对应一个保存对象状 ...

  9. ctfhub技能树—信息泄露—目录遍历

    打开靶机 查看页面 点击后发现几个目录 于是开始查找 在2/1目录下发现flag.txt 成功拿到flag 练习一下最近学习的requests库 附上源码 #! /usr/bin/env python ...

  10. Poj-P2533题解【动态规划】

    本文为原创,转载请注明:http://www.cnblogs.com/kylewilson/ 题目出处: http://poj.org/problem?id=2533 题目描述: 如果ai1 < ...