A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© wuddd 高级黑马   /  2013-4-17 22:54  /  2706 人查看  /  11 人回复  /   1 人收藏 转载请遵从CC协议 禁止商业使用本文

    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这块就过关了。


11 个回复

倒序浏览
沙发其实不重要
回复 使用道具 举报
重要是的是对技术的狂热!对生活的热爱1
回复 使用道具 举报
有一点点观念了  谢谢!
回复 使用道具 举报
HDFS是基础,mapreduce是关键技术
回复 使用道具 举报
顶顶更健康.
回复 使用道具 举报
李罡 中级黑马 2013-4-20 10:43:34
7#
DataNode存放数据的基本单位是块,一个块默认大小是64MB,这也太大了吧。。。真是大数据时候了么
回复 使用道具 举报
wuddd 高级黑马 2013-4-20 10:53:11
8#
李罡 发表于 2013-4-20 10:43
DataNode存放数据的基本单位是块,一个块默认大小是64MB,这也太大了吧。。。真是大数据时候了么 ...

这是默认配置,实际生产中一般是128MB。
回复 使用道具 举报
学 习 学 习 收藏了
回复 使用道具 举报
感觉自己要学的东西真的有很多很多啊啊,学无止境啊
回复 使用道具 举报
wuddd 高级黑马 2013-4-23 23:14:57
11#
李志杰 发表于 2013-4-23 23:13
感觉自己要学的东西真的有很多很多啊啊,学无止境啊

嗯。我现在也总觉得时间太少,还有很多东西要学习
回复 使用道具 举报
对hadoop很狂热
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马