全部版块 我的主页
论坛 数据科学与人工智能 大数据分析 Hadoop论坛
4978 3
2014-05-19

从零开始学习hadoop之内理解云计算分布式大数据处理框架Hadoop并开始动手实践

    我会带您在快速理解云计算分布式大数据处理框架Hadoop并开始动手实践,开始……

      Hadoop要解决的问题是什么?

      答:Hadoop核心要解决长期IT界乃至人类社会的两大主题:

1,        海量数据的存储:传统的存储方式昂贵而且日益难以满足核裂变级别数据的增长,例如纽约证券交易所每天要产生T级别的数据量,Facebook要每天要服务过亿的用户(其中图片等数据`量是惊人的),如何使用廉价的设备支持无线增长的数据的安全高效的存储,Hadoop提出了解决方案,即HDFS.

2,        海量数据的分析:如何有效而快速的从海量数据中提取出有价值的信息,Hadoop给出了解决方案,即MapReduce.

HDFS和MapReduce是Hadoop整个项目的基础和核心,Hadoop庞大的家族中的其它子项目都是基于HDFS和MapReduce,所以掌握HDFS和MapReduce也就掌握了Hadoop的核心。

      Hadoop的来源和发展历史是什么?

      答:始于2002Apache搜索引擎项目Nutch2004Nutch的开发者基于Google发表的著名的GFS论文开发出了开源版本的GFSNDFS2005年基于Google发表的著名的MapReduce论文把MapReduce引入NDFS2006年改名为HadoopNDFS的创始人加入Yahoo,同时Yahoo成立专门的小组发展Hadoop

      可以看出,在Hadoop的发展过程中,除了其创始人外,GoogleYahoo居功至伟。

      Hadoop到底是什么?

      答:Hadoop是基于廉价设备利用集群的威力对海量数据进行安全存储和高效计算的分布式存储和分析框架,Hadoop本身是一个庞大的项目家族,其核心家族或者底层是HDFSMapReduceHDFSMapReduce分别用来实现对海量数据的存储和分析,其它的项目,例如HiveHBase等都是基于HDFSMapReduce,是为了解决特定类型的大数据处理问题而提出的子项目,使用HiveHBase等子项目可以在更高的抽象的基础上更简单的编写分布式大数据处理程序。Hadoop的其它子项目还包括Common, Avro, Pig, ZooKeeper,Sqoop, Oozie 等,随着时间的推移一些新的子项目会被加入进来,一些关注度不高的项目会被移除Hadoop家族,所以Hadoop是一个充满活力的系统。

      什么问题场景下适合使用HDFS?什么场景下不适合采用HDFS

      答:

适合使用Hadoop的场景:非常大的文件,包括单个文件非常大(例如超过100G大小的文件)和文件总大小非常大(例如达到P级别),即支持海量的数据;“write-once,read-many-times”的Streaming的文件访问方式;普通的硬件系统支持大数据的处理;

不适用Hadoop的场景:低延迟的数据访问;有很多细小文件的系统;要多次写入和修改的文件系统;


      如何解读HDFS架构图?

      答:架构图如下:

1.jpg

      HDFS架构图的解读:

1,               HDFS会把一个大文件分成很多小些的文件,把这些小文件存放在不同的节点上;

2,               这些数据存放的节点叫做DataNode,DataNade中存放HDFS中定义的Block,即数据块,每块的大小是64M;

3,               HDFS把大文件分成的多个小文件不仅存放在不同的节点上,而且同一个文件块在不同的节点上有多个副本;

4,               记录这些数据和数据划分以及存储信息的节点叫做NameNode,NameNode是关键性的配置文件,而且是单一节点存在的,在2.x开始使用了HA策略,即HDFS支持NameNode的active-standy模式了;

5,               客户端请求Hadoop中的数据时先要访问NameNode,从NameNode中获取DataNode中数据存储的信息后,才进行具体数据的访问;

      MapReduce到底是如何工作的?

      答:举个例子你就明白了:求20个数据中的最大数,一般的编程方式把第一个数据开始往后面一个个的比较,总是把更大的数据记录下来,这样顺序比较下去,最后就得到了最大的数据;但是MapReduce的做法是把这20个数据分成4组,每组5个数据,每组采用Map函数求出最大值,然后后每组把求得的各自最大值交给Reduce,由Reduce得出最后的最大值;

      简言之:MapReduce的工作方式就是大事化小,并行工作,各个击破。

为什么要学习Hadoop

      答:Hadoop是云计算的具体实践技术,是处理大数据的开源框架,而大数据处理是IT界越来越热的主题,通过Hadoop开源代码的学习也是工程师提升自己功力的一个绝佳途径。

      如何开始学习Hadoop

      答:先搭建好Hadoop的单击环境、伪分布式环境和分布式环境。

后续内容,敬请期待
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2014-5-19 13:51:12
好东西,不错,值得看一下。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2014-5-19 13:54:25
附件呢?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2014-6-5 09:36:40
有过多少往事,好人一生平安!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群