文档章节

Hadoop学习笔记之HDFS

ivan-Zhao
 ivan-Zhao
发布于 2015/11/06 15:29
字数 1472
阅读 135
收藏 5

        hadoop是一个适合大数据处理的分布式的存储以及计算平台,我个人感觉称他为平台是 非常贴切的,因为不管是hive、hbase等这类产品都是需要依赖hadoop的两个核心hdfs和mapreduce。hdfs和mapreduce是hadoop平台的基础核心,其中hdfs是负责大数据的分布式存储,而mapreduce是数据处理的计算框架。下面就开始记录hdfs,mapreduce后面再记录咯。

    对于HDFS,我个人感觉就是架构在操作系统平台上面的一个文件管理系统,跟操作系统的文件系统不同的是他具有了对文件的自动的分布式管理的能力,不过这一切对于用户来说都是透明的,比如我们向hdfs put一个文件时他会根据我们的设置对该文件产生replication,这里只是说他的分布式存储,为了更适合大数据的处理,hdfs也有自己的机制。

     以下是我记录的知识点,以便日后复习,写得有点乱,只为记录,不为出名!!!哈哈哈哈~~~~

    1.   安全模式

    当集群启动的时候,默认进入安全模式。默认30秒会自动退出。

    在安全模式下,只能读,不能写。

    dfsadmin  -safemode  get|enter|leave 

    如果遇到集群刚刚启动,就立刻执行写操作,系统会报错。

    安全模式给了系统一个初始化的时间。

   2.   配额

    配额通常会在多用户的情况下使用,就是给每个用户设置一个目录,并对目录的元数据(大小、数量)信息做限制

    setQuota  限制某个目录的文件()的数量。

   clrQuota 取消

   setSpaceQuota 限制某个目录的空间大小。

   clrSpaceQuota 取消

   hdfs dfs -count -q /lisi  查看配置设置的值


   3.   HDFS的体系结构

    分布式的文件系统,意味着数据存储在很多节点上。 

    NameNode用来管理元数据本身。DataNode用来管理数据本身。

   4.   NameNode的体系结构

    管理元数据的节点。管理着文件(夹)的元数据,如权限、所有者、所在组、大小、最后访问时间、最后修改时间、名称、配额。 

    客户端在访问数据的时候,首先和NameNode打交道。元数据信息位于fsimage文件中,fsimage是hdfs状态的体现。当集群启动的时候,fsimage中的信息加载到内存中。

    edits中保存的是操作日志。edits是hdfs 事务的体现。 

    在hdfs-site.xml中,配置dfs.namenode.name.dir的值,是多个都好分隔的目录列表。fsimage内容就会同时存储在多个目录中,实现数据安全。

    在hdfs-site.xml中,配置dfs.namenode.edits.dir的值,是${dfs.namenode.name.dir} 

    如果机器宕机,以上方案就无效了。实现NameNodeHA功能。

    5.   DataNode的体系结构

    实现数据的存储。很多的节点,每个节点都是DataNode 

    DataNode存储数据的时候,都是以block形式存储。

    blockDataNode存储数据的基本单位,类似于快递公司的包裹。

    为了节省空间,一般只会规定包裹的最大尺寸,不会规定标准尺寸,hdfs的block也是这个原理。block的最大尺寸是128MB,没有最小尺寸。

    当一个12k的数据存放到一个block中时,该block只占用12k的磁盘物理空间。 

    在前面看fsimage的内容时,发现每个文件都有block对应。fsimage的内容在集群运行时,存放在内存中。每个文件会产生至少一个block。当小文件非常多的时候,对Namenode节点的内存产生什么影响?多耗费内存,造成内存压力大。 所以hdfs不适合存储大量的小文件

    当namenode -format命令执行的时候,在namenode节点和datanode节点的VERSION中都会产生一个namespaceID值,并且这两个值必须相同。如果再次执行格式化,那么namenode会产生一个新的namespaceID,但是datanode不会产生新的值。

6.   读写数据

    读写与生活的举例:去客户现场解决问题,我(客户端)需要去询问项目经理(namenode)客户的地址等信息,项目经理告诉我(block location等),我就可以去客户现场,我告诉客户解决了,客户需要确认解决了才是真正的解决,我再去跟项目经理报告。

    Hdfs的读写其实跟普通的文件系统读写基本上一样,只是多了一个中间的注册。就像我们单身的时候花钱自己怎么花都可以,但是结了婚就需要先通过媳妇那才可以咯

    Namenode维护者两张表(从namenode源码得知),一张是文件与block块的映射(blockid,可以在fsimage文件中看到,存在本地磁盘),另一张是block块和磁盘的映射(体现为inode,既是每一个块与块所在datanode磁盘的位置,在每次hdfs启动时都要重新生成,其实就是每次启动进入安全模式的时候datanode向namenode报告的块信息)即:filename—blocksequence  block—node  前者是静态的(一旦改变会影响数据的信息不对应) 后者是动态的(分布式情况下,节点宕机是常态,则需要更新对应关系)

     Slaves文件只是在集群启动的时候使得能够一起启动datanode节点,即使slaves文件不正常,也只是在启动namenode时无法启动datanode,手动启动datanode时也是可以正常使用的,因为他们的vision文件中的namespaceID是相同的



© 著作权归作者所有

ivan-Zhao
粉丝 10
博文 33
码字总数 29110
作品 0
深圳
程序员
私信 提问
Hdoop 学习笔记

简介:Hadoop分布式系统体系结构的核心: HDFS和MapReduce 。HDFS在集群上实现分布式文件系统,MapReduce在集群上实现了分布式计算和任务处理。HDFS在MapReduce任务处理过程中提供了文件操作...

james_lz
2016/03/08
85
0
搭建spark on yarn集群全过程

搭建spark on yarn集群全过程 Mz的博客2016-03-24225 阅读 大数据SparkHadoopYarn 机器配置 在VMware上创建4个虚拟机来搭建集群。其中一个master,三个salve。 每台虚拟机配置1G内存,1核CPU...

Mz的博客
2016/03/24
0
0
Hadoop实战读书笔记(5)

HDFS文件操作 你可以把一个大数据集(100TB)在HDFS中存储为单个文件,而大多数其他的文件系统无力实现这一点。虽然该文件存在多个副本分布在多台机器上来支持并行处理,你也不必考虑这些细节...

祥林会跟你远走高飞
2014/12/08
93
0
学习笔记TF065: TensorFlowOnSpark

Hadoop生态大数据系统分为Yam、 HDFS、MapReduce计算框架。TensorFlow分布式相当于MapReduce计算框架,Kubernetes相当于Yam调度系统。TensorFlowOnSpark,利用远程直接内存访问(Remote Direc...

利炳根
2017/11/13
0
0
Hadoop简要介绍

本文大部分内容都是从官网Hadoop上来的。其中有一篇介绍HDFS的pdf文档,里面对Hadoop介绍的比较全面了。我的这一个系列的Hadoop学习笔记也是从这里一步一步进行下来的,同时又参考了网上的很...

晨曦之光
2012/03/09
226
0

没有更多内容

加载失败,请刷新页面

加载更多

Kafka实战(五) - 核心API及适用场景全面解析

1 四个核心API ● Producer API 允许一个应用程序发布一串流式的数据到一个或者多个Kafka topic。 ● Consumer API 允许一个应用程序订阅一个或多个topic ,并且对发布给他们的流式数据进行处...

JavaEdge
今天
11
0
实现线程的第三种方式——Callable & Future

Callable Runnable 封装一个异步运行的任务, 可以把它想象成为一个没有参数和返回值的异步方 法。Callable 与 Runnable 类似, 但是有返回值。Callable 接口是一个参数化的类型, 只有一 个...

ytuan996
今天
12
0
OSChina 周六乱弹 —— 不要摁F了!

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @巴拉迪维 : 朴树写的词曲都给人一种莫名的失落感,不过这首歌他自己却没有唱,换成赵传这种高音阶嘶喊的确很好,低沉但却有力,老男人的呐喊...

小小编辑
今天
22
0
Android Binder机制 - interface_cast和asBinder讲解

研究Android底层代码时,尤其是Binder跨进程通信时,经常会发现interface_cast和asBinder,很容易被这两个函数绕晕,下面来讲解一下: interface_cast 下面根据下述ICameraClient例子进行分析...

天王盖地虎626
昨天
13
0
计算机实现原理专题--存储器的实现(二)

计算机实现原理专题--存储器的实现(一)中描述了一种可以记住输入端变化的装置。现需要对其功能进行扩充,我们将上面的开关定义为置位,下面的开关定义为复位,然后需要增加一个保持位,当保...

FAT_mt
昨天
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部