文档章节

Hadoop初识

天呀鲁哇
 天呀鲁哇
发布于 2015/03/13 09:26
字数 1516
阅读 20
收藏 1

钉钉、微博极速扩容黑科技,点击观看阿里云弹性计算年度发布会!>>>

Hadoop一直是我想学习的技术,正巧最近项目组要做电子商城,我就开始研究Hadoop,虽然最后鉴定Hadoop不适用我们的项目,但是我会继续研究下去,技多不压身。

         《Hadoop基础教程》是我读的第一本Hadoop书籍,当然在线只能试读第一章,不过对Hadoop历史、核心技术和应用场景有了初步了解。

 

  • Hadoop历史

        雏形开始于2002年的Apache的Nutch,Nutch是一个开源Java 实现的搜索引擎。它提供了我们运行自己的搜索引擎所需的全部工具。包括全文搜索和Web爬虫。

        随后在2003年Google发表了一篇技术学术论文谷歌文件系统(GFS)。GFS也就是google File System,google公司为了存储海量搜索数据而设计的专用文件系统。

        2004年Nutch创始人Doug Cutting基于Google的GFS论文实现了分布式文件存储系统名为NDFS。

        2004年Google又发表了一篇技术学术论文MapReduce。MapReduce是一种编程模型,用于大规模数据集(大于1TB)的并行分析运算。

        2005年Doug Cutting又基于MapReduce,在Nutch搜索引擎实现了该功能。

        2006年,Yahoo雇用了Doug Cutting,Doug Cutting将NDFS和MapReduce升级命名为Hadoop,Yahoo开建了一个独立的团队给Goug Cutting专门研究发展Hadoop。

        不得不说Google和Yahoo对Hadoop的贡献功不可没。

 

  • Hadoop核心

        Hadoop的核心就是HDFS和MapReduce,而两者只是理论基础,不是具体可使用的高级应用,Hadoop旗下有很多经典子项目,比如 HBase、Hive等,这些都是基于HDFS和MapReduce发展出来的。要想了解Hadoop,就必须知道HDFS和MapReduce是什么。

 

  • HDFS

HDFS(Hadoop Distributed File System,Hadoop分布式文件系统),它是一个高度容错性的系统,适合部署在廉价的机器上。HDFS能提供高吞吐量的数据访问,适合那些有着超大数据集(large data set)的应用程序。

 

HDFS的设计特点是:

1、大数据文件,非常适合上T级别的大文件或者一堆大数据文件的存储,如果文件只有几个G甚至更小就没啥意思了。

2、文件分块存储,HDFS会将一个完整的大文件平均分块存储到不同计算器上,它的意义在于读取文件时可以同时从多个主机取不同区块的文件,多主机读取比单主机读取效率要高得多得都。

3、流式数据访问,一次写入多次读写,这种模式跟传统文件不同,它不支持动态改变文件内容,而是要求让文件一次写入就不做变化,要变化也只能在文件末添加内容。

4、廉价硬件,HDFS可以应用在普通PC机上,这种机制能够让给一些公司用几十台廉价的计算机就可以撑起一个大数据集群。

5、硬件故障,HDFS认为所有计算机都可能会出问题,为了防止某个主机失效读取不到该主机的块文件,它将同一个文件块副本分配到其它某几个主机上,如果其中一台主机失效,可以迅速找另一块副本取文件。

 

HDFS的关键元素:

Block:将一个文件进行分块,通常是64M。

NameNode: 保存整个文件系统的目录信息、文件信息及分块信息,这是由唯一一台主机专门保存,当然这台主机如果出错,NameNode就失效了。在Hadoop2.* 开始支持activity-standy模式----如果主NameNode失效,启动备用主机运行NameNode。

DataNode:分布在廉价的计算机上,用于存储Block块文件。


 

 

  • MapReduce

通俗说MapReduce是一套从海量·源数据提取分析元素最后返回结果集的编程模型,将文件分布式存储到硬盘是第一步,而从海量数据中提取分析我们需要的内容就是MapReduce做的事了。

 

下面以一个计算海量数据最大值为例:一个银行有上亿储户,银行希望找到存储金额最高的金额是多少,按照传统的计算方式,我们会这样:

Java代码  收藏代码

  1. Long moneys[] ...  

  2. Long max = 0L;  

  3. for(int i=0;i<moneys.length;i++){  

  4.   if(moneys[i]>max){  

  5.     max = moneys[i];  

  6.   }  

  7. }  

 

 如果计算的数组长度少的话,这样实现是不会有问题的,还是面对海量数据的时候就会有问题。

MapReduce会这样做:首先数字是分布存储在不同块中的,以某几个块为一个Map,计算出Map中最大的值,然后将每个Map中的最大值做Reduce操作,Reduce再取最大值给用户。


        MapReduce的基本原理就是:将大的数据分析分成小块逐个分析,最后再将提取出来的数据汇总分析,最终获得我们想要的内容。当然怎么分块分析,怎么 做Reduce操作非常复杂,Hadoop已经提供了数据分析的实现,我们只需要编写简单的需求命令即可达成我们想要的数据。

 

 

  • 总结

        总的来说Hadoop适合应用于大数据存储和大数据分析的应用,适合于服务器几千台到几万台的集群运行,支持PB级的存储容量。

        Hadoop典型应用有:搜索、日志处理、推荐系统、数据分析、视频图像分析、数据保存等。

        但要知道,Hadoop的使用范围远小于SQL或Python之类的脚本语言,所以不要盲目使用Hadoop,看完这篇试读文章,我知道Hadoop不适 用于我们的项目。不过Hadoop作为大数据的热门词,我觉得一个狂热的编程爱好者值得去学习了解,或许你下一个归宿就需要Hadoop人才,不是吗。


天呀鲁哇
粉丝 8
博文 98
码字总数 42007
作品 0
长宁
程序员
私信 提问
加载中
请先登录后再评论。
【慕课网实战】Spark Streaming实时流处理项目实战笔记二之铭文升级版

铭文一级: 第二章:初识实时流处理 需求:统计主站每个(指定)课程访问的客户端、地域信息分布 地域:ip转换 Spark SQL项目实战 客户端:useragent获取 Hadoop基础课程 ==> 如上两个操作:采...

osc_162cn79f
2018/01/24
2
0
初识Hadoop

Hadoop 安装 Ubuntu环境 192.168.1.64 HNClient 192.168.1.65 HNName SUSE,Ubuntu的vi不能使用退格键删除数据 删除的时候,要按ESC,再按X才能删除数据 插入数据,使用i 在当前行之下新开一行...

normanjin
2018/11/03
0
0
初识Hadoop

Hadoop一直是我想学习的技术,正巧最近项目组要做电子商城,我就开始研究Hadoop,虽然最后鉴定Hadoop不适用我们的项目,但是我会继续研究下去,技多不压身。 《Hadoop基础教程》是我读的第一...

BigSea123
2015/01/09
10
0
初识hadoop

初识hadoop 概念 hadoop首先是大数据领域。大数据领域至少是分布式的,分布式数据必然是有一定规模了。如果数据只有几个G或者更小就没有什么意义了。 hadoop最核心的概念就是HDFS和MapReduce...

王二狗子11
2018/01/07
0
0
hadoop初识

introduce:Hadoop is a distributed computing platform.its primary consists of (主要由...构成)the HDFS(Hadoop Distributed FileSystem) and an implemention of the Map-Reduce progra......

laserdance
2011/10/26
322
0

没有更多内容

加载失败,请刷新页面

加载更多

十年饮冰,难凉热血.高考失利的同学们应该怎么学习

今天练车的时候跟几个朋友聊了会天,朋友考的学校都比较好,一个山大,一个山师大,一个上师大,让我个人夹杂在他们当中作为一个高考失败者实属自卑,虽然一直在尽力准备专升本,但是难免现阶...

osc_ccy4urvn
26分钟前
10
0
Hubbard Model严格对角化

osc_pnyuctmm
26分钟前
20
0
为什么 SQL 语句不要过多的 join?

作者:柯三 juejin.im/post/5e0443ae6fb9a0162277a2c3 送分题 面试官:有操作过Linux吗? 我:有的呀 面试官:我想查看内存的使用情况该用什么命令 我:free 或者 top 面试官:那你说一下用f...

Java技术栈
27分钟前
24
0
在Deepin Linux操作系统中如何连接Microsoft OneDrive

OneDrive网盘没有为Linux操作系统提供桌面客户端,在本文介绍使用rclone工具连接OneDrive当做本地磁盘使用,可以同步文件到网盘中。 Rclone是一个开源的命令行工具,它能够将本地Linux目录与...

linuxprobe2020
27分钟前
19
0
做了两年java,这些高性能高可用高并发的技术架构你都知道吗?

前言 每一个模式描述了一个在我们周围不断重复发生的问题及该问题解决方案的核心。这样,你就能一次又一次地使用该方案而不必做重复工作。 所谓网站架构模式即为了解决大型网站面临的高并发访...

osc_43xj61td
28分钟前
17
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部