什么是Hadoop?

搞什么东西之前,第一步是要知道What(是什么),然后是Why(为什么),最后才是How(怎么做)。但很多开发的朋友在做了多年项目以后,都习惯是先How,然后What,最后才是Why,这样只会让自己变得浮躁,同时往往会将技术误用于不适合的场景。

Hadoop框架中最核心的设计就是:MapReduce和HDFS。MapReduce的思想是由Google的一篇论文所提及而被广为流传的,简单的一句话解释MapReduce就是“任务的分解与结果的汇总”。HDFS是Hadoop分布式文件系统(Hadoop Distributed File System)的缩写,为分布式计算存储提供了底层支持。

MapReduce从它名字上来看就大致可以看出个缘由,两个动词Map和Reduce,“Map(展开)”就是将一个任务分解成为多个任务,“Reduce”就是将分解后多任务处理的结果汇总起来,得出最后的分析结果。这不是什么新思想,其实在前面提到的多线程,多任务的设计就可以找到这种思想的影子。不论是现实社会,还是在程序设计中,一项工作往往可以被拆分成为多个任务,任务之间的关系可以分为两种:一种是不相关的任务,可以并行执行;另一种是任务之间有相互的依赖,先后顺序不能够颠倒,这类任务是无法并行处理的。回到大学时期,教授上课时让大家去分析关键路径,无非就是找最省时的任务分解执行方式。在分布式系统中,机器集群就可以看作硬件资源池,将并行的任务拆分,然后交由每一个空闲机器资源去处理,能够极大地提高计算效率,同时这种资源无关性,对于计算集群的扩展无疑提供了最好的设计保证。(其实我一直认为Hadoop的卡通图标不应该是一个小象,应该是蚂蚁,分布式计算就好比蚂蚁吃大象,廉价的机器群可以匹敌任何高性能的计算机,纵向扩展的曲线始终敌不过横向扩展的斜线)。任务分解处理以后,那就需要将处理以后的结果再汇总起来,这就是Reduce要做的工作。

Hadoop解决两个问题海量数据存储、海量数据分析
提供了一个可靠的共享存储和分析系统,HDFS(Hadoop Distributed File System)实现存储,MapReduce实现分析处理。这两块是Hadoop的核心

Hadoop具有最大化利用内存、最大化利用磁盘、最大化利用CPU的特点。

Hbase:nosql数据库,最大化利用内存。

HDFS:架构设计原则(最大化利用磁盘):
    Block(文件块):一个文件分块默认64M。
    NameNode:保存文件系统的目录信息,读取信息。数据节点很多时,容易成为系统的瓶颈,避免这个问题,实现NameNode一般都保存到内存中,同事持久化一部分信息在磁盘上,以备数据丢失。
    DataNode:用于存储Block。
    HDFS的HA策略:2.x开始hadoop支持namenode的active-standy模式,宕机时standy切换成active模式为整个应用提供服务。

MapReduce:
最大化利用CPU,分析处理大规模的数据集

通过图片可以简单了解,将同一操作,放在相当于多台处理器上并行执行,每个处理器执行1部分执行后,在将结果汇总在一起,这样减少了很多的时间。


Hadoop--初识Hadoop相关推荐

  1. 细细品味大数据--初识hadoop

    初识hadoop 前言 之前在学校的时候一直就想学习大数据方面的技术,包括hadoop和机器学习啊什么的,但是归根结底就是因为自己太懒了,导致没有坚持多长时间,加上一直为offer做准备,所以当时重心 ...

  2. Hadoop权威指南 _03_第I部分Hadoop基础知识_第1章初识Hadoop.

    第I部分Hadoop基础知识 第1章初识Hadoop. 比较喜欢这句极其形象的比喻. "在古时候,人们用牛来拉重物.当一头牛拉不动根圆木时,人们从来没有考虑过要想方设法培育出一种更强壮的牛. ...

  3. 雾里探花之Hadoop初识

    Hadoop初识 写在前面 Hadoop 产生 问题 与传统关系型数据库的比较 HDFS 节点: 数据流 读取 写入 高可用 安全模式 MapReduce 节点 写在前面 写个啥呢,算了,不写了. H ...

  4. 《Hadoop基础教程》之初识Hadoop

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

  5. [转载]Apache之Hadoop学习:初识hadoop

    原文转自:http://qa.taobao.com/blogs/qa?bid=10514 这是本人看到过的关于hadoop的比较容易理解的入门文章,在此转载过来,方便广大像我这样的初级码农. 原文如下 ...

  6. Hadoop基础教程》之初识Hadoop【转】

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

  7. 初识Hadoop两大核心:HDFS和MapReduce

    一.Hadoop是什么? Hadoop是一个能够对大量数据进行分布式处理的软件框架,实现了Google的MapReduce编程模型和框架,能够把应用程序分割成许多的小的工作单元,并把这些单元放到任何集 ...

  8. 初识Hadoop之概念认知篇

    Hadoop作为大数据的支撑,那么我们会有一些疑问,什么是Hadoop,Hadoop能够做些什么,它的优点是什么,它是如何进行海量数据的操作的.相信这些疑问,一定在此时困扰着你,不要担心,下面我们一步 ...

  9. [转]《Hadoop基础教程》之初识Hadoop

    原文链接:http://blessht.iteye.com/blog/2095675 Hadoop历史 雏形开始于2002年的Apache的Nutch,Nutch是一个开源Java 实现的搜索引擎.它 ...

  10. 零基础linux安装hadoop步骤,hadoop的Linux下简单安装步骤

    首先安装Hadoop cluster版本: $ curl -O http://archive.cloudera.com/cdh/3/hadoop-0.20.2-cdh3u6.tar.gz $ cd / ...

最新文章

  1. 并发锁之二:ReentrantReadWriteLock读写锁
  2. 一个数独引发的惨案:零知识证明(Zero-Knowledge Proof)
  3. SAP UI5 初学者教程之八 - 多语言的支持试读版
  4. 大动作!北京大学成立新系!
  5. TokenInsight:反映区块链行业整体表现的TI指数较昨日同期上涨1.37%
  6. 洛谷 P4001 [ICPC-Beijing 2006]狼抓兔子
  7. Javascript执行效率总结
  8. 李炎恢php视频教程ed2k,李炎恢PHP视频教程第一二三四季,含源码和教课文档从入门到精通...
  9. 在Linux下安装软件
  10. 树莓派基于motion的usb摄像头监控
  11. Jmeter 压测和AB压测的比较
  12. 微信小程序云开发项目——多肉植物销售小程序
  13. 用户增长——CLV用户生命周期价值CLTV 笔记(一)
  14. Eclipse修改背景颜色(豆沙绿)
  15. 读取统计微信捐款(matlab)
  16. Makerdown小白使用指南
  17. 计算机网络技术包含哪些方面,计算机网络包括哪些内容
  18. linux dvb设备信息,Linux DVB api 笔记
  19. 字符串的排列(TS)
  20. 自动编程软件面世 我们还需要程序员吗?

热门文章

  1. C++(STL):21---deque之源码剖析
  2. Lua 与 C混合编程 .
  3. QT5生成.exe文件时,出现缺少QT5core.dll文件解决方法
  4. plsql如何显示表结构图_【论文攻略】排版技巧——如何用 Word 编辑参考文献
  5. 单基因gsea_筛到5分的核心基因以后你可以怎么做?
  6. std::reserves使用
  7. 对于boost锁机制结论性的介绍
  8. 永远和靠谱的人在一起!
  9. 能让你成为更优秀程序员的10个C语言资源
  10. 硅谷创业者中被遮蔽的“中国现象”