黑马程序员技术交流社区

标题: hadoop技术普及贴——HDFS应该掌握哪些知识 [打印本页]

作者: wuddd    时间: 2013-4-17 22:54
标题: hadoop技术普及贴——HDFS应该掌握哪些知识
    Hdfs(分布式文件系统)hadoop的两大核心(hdfsmapreduce)之一,hdfs又是mapreduce运算的数据存放地,因此hdfshadoop的根基。没有hdfs,就没有hadoop


    Hdfs是一个分布式文件系统,作用就是用来存放数据的。大家想一想,对于存放数据的文件系统,我们应该怎么学习,掌握哪些知识哪?


    首先我们应该知道是如何存放的吧,hadoop是通过DataNode存放数据的。那么一个文件存放在哪些DataNode上,文件多大,这些信息在哪里?是NameNode。可以看出,NameNode是管理DataNode的。真正存放数据的地方是DataNode,管理文件与这些DataNode之间的映射关系的是NameNode。这就是核心,就这么简单。


    那么,DataNode在磁盘存放数据的基本单位是什么哪?块。一个块默认是64MB


    既然是分布式存放数据,那么就需要考虑DataNode节点所在机器的故障,因此需要对数据冗余备份,也就是要设置存放的数据的副本数。可以想象到:副本数肯定小于等于DataNode数量。


    假设数据有3份副本,也就是说2个存放数据的DataNode坏掉,不会影响数据的安全性,还有一份可以用。想过吗,管理这些DataNodeNameNode坏掉怎么办?没办法。这里的NameNode是单点的,一旦NameNode坏掉,hdfs就不能用了。因此,必须备份NameNode的数据,防止系统down掉,这就是SecondaryNameNode的职责。SecondaryNameNode的作用就是备份NameNode。目前不能实时备份。不过,有胜于无嘛。


    以上谈的都是原理性的东西。对于我们程序员,最关心的是如何访问、操作这些数据。这就是hdfs公布的对外访问方式,包括java访问方式和shell访问方式。这两种访问方式都是非常重要的,必须熟练掌握。


    如果把我上面说的知识都掌握了,hdfs这块就过关了。



作者: 曹睿翔    时间: 2013-4-17 23:02
沙发其实不重要
作者: 曹睿翔    时间: 2013-4-17 23:02
重要是的是对技术的狂热!对生活的热爱1
作者: 栗俊植    时间: 2013-4-17 23:54
有一点点观念了  谢谢!
作者: zjm10zj    时间: 2013-4-19 21:34
HDFS是基础,mapreduce是关键技术
作者: 杜鹏飞    时间: 2013-4-19 22:09
顶顶更健康.
作者: 李罡    时间: 2013-4-20 10:43
DataNode存放数据的基本单位是块,一个块默认大小是64MB,这也太大了吧。。。真是大数据时候了么
作者: wuddd    时间: 2013-4-20 10:53
李罡 发表于 2013-4-20 10:43
DataNode存放数据的基本单位是块,一个块默认大小是64MB,这也太大了吧。。。真是大数据时候了么 ...

这是默认配置,实际生产中一般是128MB。
作者: 董霁辉    时间: 2013-4-21 11:08
学 习 学 习 收藏了
作者: 李志杰    时间: 2013-4-23 23:13
感觉自己要学的东西真的有很多很多啊啊,学无止境啊
作者: wuddd    时间: 2013-4-23 23:14
李志杰 发表于 2013-4-23 23:13
感觉自己要学的东西真的有很多很多啊啊,学无止境啊

嗯。我现在也总觉得时间太少,还有很多东西要学习
作者: chenwenbin    时间: 2013-4-24 00:13
对hadoop很狂热




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2