一、Hadoop简介

1.1、Hadoop主要进行分布式存储和分布式计算

  1.1-1、HDFS:分布式文件系统

  1.1-2、MapReduce:并行计算框架

1.2、Hadoop用来做什么

  搭建大型的数据仓库

  搜索引擎、日志分析、数据挖掘

1.3、优势:

  高扩展、低成本、成熟的生态圈

二、Hadoop核心

2.1、HDFS

  2.1.1 简介

文件被分成块进行存储(默认块的大小是64MB),HDFS两个重要节点NameNode和DataNode

  1)NameNode:管理节点,存储源文件

    (1)存储文件与数据块的映射表

    (2)存储数据块与DataNode的映射表

  2)DataNode:数据节点

    用于存放数据块

   

  2.1.3 HDFS的数据存储和容错

  1)对每个数据块存储3份,2份在同一机架,1份在另一机架

  2)心跳检测,DataNode定期向NameNode发送心跳消息。

  3)二级NameNode(对NameNode的数据进行同步备份,),NameNode故障以后,切换到二级NameNode

  2.1.4 HDFS文件读取

  1)读取文件

    (1) 客户端向NameNode请求数据

    (2) NameNode查询源数据,回复客户端,文件包括哪些块,这些块分别位于哪个DataNode

    (3)客户端分别对DataNode读取块,将block组装成源文件

  2)写文件

  

    (1)客户端将文件拆分成块,发送给NameNode

    (2)NameNode发挥给客户端一系列可用的DataNode

    (3)客户端将数据写入到DataNode,

    (4)DataNode对数据进行流水线复制,保留三份

    (5)更新源数据,DataNode向NameNode汇报数据

  2.1.5 HDFS的特点

  1) 数据冗余,硬件容错(三备份)

  2) 流式数据访问(1次写入,多次读取,写入后无法修改)

  3) 适合存储大文件,(小文件对NameNode的负载压力大)

  2.1.6 HDFS适应性和局限性

  1) 适合数据批量读写,吞吐量高。不适合交互式应用,低延时很满足(例如数据库)

  2) 适合一次写入,多次读取,顺序写入。不支持多用户并发写相同的文件。

2.2、MapReduce

  2.2.1 简介

  MapReduce(一个大任务分成小的子任务,并行执行后,合并结果)

  Map:大任务拆分成多个子任务

  Reduce:并行计算后,合并结果

  2.2.2 MapReduce运行流程

 1、基本概念

    -Job & Task(一个Job分成多个task,task分为MapTask和ReduceTask)(例如统计日志中每个IP出现的次数,这就是一个Job)

    -JobTracker:作业调度、分配任务、监控任务执行进度、监控TaskTracker的状态

    -TaskTracker:执行任务、向JobTracker汇报任务状态

   一般配置的时候,TaskTracker与HDFS的DataNode配置在同一节点。

  

  

  2.2.3 MapReduce的容错机制

  1、重复执行(般重复执行4次以后就会放弃)

  2、推测执行:对于一个执行特别慢的TaskTracker(预测可能出现故障),在另一台机器上面重新开一个TaskTracker,执行相同的计算,两者谁先执行完,用谁的数据

  2.2.4开发Hadoop应用程序

(未完待续)

Hadoop入门简介的更多相关文章

  1. 大数据技术Hadoop入门理论系列之一----hadoop生态圈介绍

    Technorati 标记: hadoop,生态圈,ecosystem,yarn,spark,入门 1. hadoop 生态概况 Hadoop是一个由Apache基金会所开发的分布式系统基础架构. 用 ...

  2. Hadoop入门学习笔记---part1

    随着毕业设计的进行,大学四年正式进入尾声.任你玩四年的大学的最后一次作业最后在激烈的选题中尘埃落定.无论选择了怎样的选题,无论最后的结果是怎样的,对于大学里面的这最后一份作业,也希望自己能够尽心尽力, ...

  3. Linux系统入门简介<1>

    linux系统入门简介 我们为什么要学习Linux? 在介绍Linux的历史前,我想先针对大家如何对Linux的发音说一下.我发现我身边的朋友对Linux的发音大致有这么几种: "里那克斯& ...

  4. [转帖]Flink(一)Flink的入门简介

    Flink(一)Flink的入门简介 https://www.cnblogs.com/frankdeng/p/9400622.html 一. Flink的引入 这几年大数据的飞速发展,出现了很多热门的 ...

  5. Hadoop入门学习笔记---part4

    紧接着<Hadoop入门学习笔记---part3>中的继续了解如何用java在程序中操作HDFS. 众所周知,对文件的操作无非是创建,查看,下载,删除.下面我们就开始应用java程序进行操 ...

  6. Hadoop入门学习笔记---part3

    2015年元旦,好好学习,天天向上.良好的开端是成功的一半,任何学习都不能中断,只有坚持才会出结果.继续学习Hadoop.冰冻三尺,非一日之寒! 经过Hadoop的伪分布集群环境的搭建,基本对Hado ...

  7. Hadoop入门学习笔记---part2

    在<Hadoop入门学习笔记---part1>中感觉自己虽然总结的比较详细,但是始终感觉有点凌乱.不够系统化,不够简洁.经过自己的推敲和总结,现在在此处概括性的总结一下,认为在准备搭建ha ...

  8. 初识Hadoop入门介绍

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

  9. 掌握 Ajax,第 1 部分: Ajax 入门简介

    转:http://www.ibm.com/developerworks/cn/xml/wa-ajaxintro1.html 掌握 Ajax,第 1 部分: Ajax 入门简介 理解 Ajax 及其工作 ...

随机推荐

  1. linux系统的权限介绍

    让我们用t o u c h命令创建一个文件:$ touch myfile现在对该目录使用ls -l命令: 我们已经创建了一个空文件,正如我们所希望的那样,第一个横杠告诉我们该文件是一个普通文件.你将会 ...

  2. solr在电商平台中的使用示例简析

    来源:http://blog.csdn.net/yangbutao/article/details/9450463 在电商平台中搜索是非常重要的功能,主要包括有搜索词类目导航.自动提示和搜索排序功能 ...

  3. ACdream 1726 A Math game (dfs+二分)

    http://acdream.info/problem?pid=1726 官方题解:http://acdream.info/topic?tid=4246 求n个数里面能不能选一些数出来让它们的和等于k ...

  4. maven3实战之仓库(快照版本)

    maven3实战之仓库(快照版本) ---------- 在Maven的世界中,任何一个项目或者构件都必须有自己的版本.版本的值可能是1.0.0,1.3-alpha-4,2.0,2.1-SNAPSHO ...

  5. 线程中无法实例化spring注入的服务的解决办法

    问题描述 在Java Web应用中采用多线程处理数据,发现Spring注入的服务一直报NullPointerException.使用注解式的声明@Resource和XML配置的bean声明,都报空指针 ...

  6. Centos 6.5LAMP服务器(Apache+PHP+MySQL)的搭建

    1.首先看下你的防火墙是否处于开启状态,如果是开启状态,按照如下方法来配置你的防火墙(如果你在安装虚拟机时就没有开启过防火墙,那么这一步就省略了): 1.配置防火墙,开启80端口.3306端口 vi ...

  7. PS太大GIMP可用

    图片处理中Photoshop用的非常多,但是该软件过于臃肿,使用起来也非常复杂,对于一般性的图片处理,有没有其他可以选择的工具呢? GIMP是GNU Image Manipulation Progra ...

  8. over-fitting、under-fitting 与 regularization

    机器学习中一个重要的话题便是模型的泛化能力,泛化能力强的模型才是好模型,对于训练好的模型,若在训练集表现差,不必说在测试集表现同样会很差,这可能是欠拟合导致:若模型在训练集表现非常好,却在测试集上差强 ...

  9. swun 1397 来电显示

    解题思路:这题最关键的是要注意当输入的数据,00123,0000等这些情况, 刚开始用long long, WA了好几发,非常迷茫,后来突然想起特殊数据, 用字符串,则轻松解决问题.顺便多说两句:当你 ...

  10. 【Python】入门 list有些不懂

    # -*- coding: utf-8 -*- # -*- coding: cp936 -*- 首行加这个 代码里就可以加注释 raw_input("Press Enter Exit&quo ...