大数据

大数据简要概念

指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合。
需要新处理模式,才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。

大数据作用

主要解决:通过对海量数据的存储和分析计算,找出其中的价值。

数据单位

按顺序给出数据存储单位:bit、ByteKB、MB、GB、TB、PB、EB、ZB、YBBB、NB、DB。i Byte= 8bit ik=1024byte IMB=1024KlG=1024M1T=1024G1P=1024T

大数据特点

数据量大、增速快、格式多样(除了文本文件还有视频图片等等)、价值密度低(需要从大量数中分析才能得出)。

Hadoop

Hadoop简要定义

Hadoop是一个由 Apache开发的开源的分布式存储计算处理平台。
广义上来说, HADOOP通常是指一个更广泛的概念HADOOP生态。

Hadoop作用

主要解决大数据的存储和分析计算问题。
日志分析、搜索引擎、商业智能、数据挖掘等。

Hadoop版本

三大发行版本Hadoop三大发行版本: Apache、 Cloudera、 Hortonworks
Apache版本最原始(最基础)的版本,对于入门学习最好。
Cloudera在大型互联网企业中用的较多
Hortonworks文档较好。

Hadoop优点

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

Hadoop组成

Hadoop的组成(2.x及以上版本)包括三个核心组成
HDFS:分布式文件系统,存储海量的数据
Mapreduce:并行处理框架,实现任务分解和调度
Yarn:负责资源调度

Hdfs文件存储

HDFS中有两类节点Namenode和 Datanode
注意:
格式化namenode,会产生新的集群namenode的集群id和datanode的集群id不一致,集群找不到己往数据。所以,格式 Namenode时,一定要先删除data数据和logs日志,然后再格式化 Namenode。

Namenode是管理节点, 存放文件元数据

  1. 文件与数据块的映射表
  2. 数据块与数据节点的映射表

DateNode是HDFS的工作节点,存放数据块

Hdfs体系结构:

数据读取:用户需要获取数据,先去namenode上得到这个数据分布在那个datanode等相关元数据,然后去读取。
数据分布:三副本模式,存储在两个机架的三个节点上
心跳检测:datanode定时向namenode发送心跳数据
二级namenode: namenode会定期同步数据到二级namenode,如果namenode出问题了就会将二级namenode备胎转正

读取流程

数据写入流程:

hsfs数据写入流程

HDFS的特点

1、数据冗余,硬件容错
2、流式的数据访问
3、存储大文件

适用性和局限性

适合数据批量读写,吞吐量高,
适合一次写入多次读取,顺序读写,不支持多用户并发写相同文件
不适合交互式应用,低延迟很难满足

MapReduce并行处理框架,实现任务分解和调度

简要概念

分而治之,一个大任务分成多个小的子任务(map)并行执行后,合并结果( reduce)

场景

有一千副扑克牌,但是少了一张,如何知道少了那一张呢?

  1. 先每个人分一部分,
  2. 然后各自都按照某个规则进行归类,如每个花色和数字出现的次数的进行整理,
    红桃A 19张
    黑桃B 50张等
  3. 然后交换数据,将相同花色相同数字的进行reduce合并
    红桃A 1000张
    黑桃B 999张
  4. 输出数据,可以看出少了那张

    数据处理流程

    相似的使用场景,如日志分析
    比如我们有半年的日志,想分析出每个ip的访问量也可以这么做

MapReduce体系结构

MapReduce体系结构

Jobtracker负责任务拆分,拆分为map任务和reduce任务
Jobtrackere的角色①作业调度②分配任务、监控任务执行进度③监控 Tasktracker的状态
taskTracker负责任务执行
Tasktrackere的角色①执行任务②汇报任务状态

MapReduce的执行流程

作业执行过程

Mapreduce的容错机制

1. 重复执行
2. 推测执行,发现某个任务的执行超慢,就将这个任务在另一个节点上让他也去执行,做同样的执行,防止某一两个taskTracker异常导致整个任务失败的情况

Yarn负责资源调度

模块解释

  1. Resourcemanager(rm):处理客户端请求、启动/监控 Applicationmaster、监控 Nodemanager、资源分配与调度:NodeManager
  2. Nodemanager(nm):单个节点上的资源管理、处理来自 Resourcemanager的命令、处理来自 Applicationmaster的命令
  3. ApplicationMaster:数据切分、为应用程序申请资源,Node并分配给内部任务、任务监控与容错。
  4. Container:对任务运行环境的抽象,封装了CPU、内ContainerContainer存等多维资源以及环境变量、启动命令等任务运行相关的信息

    YARN 架构及各角色职责

MRAppMaster介绍

MRAppMaster是MapReduce的ApplicationMaster实现,它使得Map
Reduce可以直接运行在YARN上,它主要作用在于管理作业的生命周期:
1.1作业的管理:作业的创建,初始化以及启动等
1.2向RM申请资源和再分配资源
1.3Container的启动与释放
1.4监控作业运行状态
1.5作业恢复

调度流程

1.用户向YARN中(RM)提交应用程序,其中包括ApplicationMaster程序、启动ApplicationMaster的命令、用户程序等。
2.ResourceManager为该应用程序分配第一个Container,ResouceManag与某个NodeManager通信,启动应用程序ApplicationMaster,NodeManager接到命令后,首先从HDFS上下载文件(缓存),然后启动ApplicationMaser。
3当ApplicationMaster启动后,它与ResouceManager通信,以请求和获取资源。ApplicationMaster获取到资源后,与对应NodeManager通信以启动任务。
注:
1.如果该应用程序第一次在给节点上启动任务,则NodeManager首先从HDFS上下载文件缓存到本地,这个是由分布式缓存实现的,然后启动该任务。
2.分布式缓存并不是将文件缓存到集群中各个结点的内存中,而是将文件换到各个结点的磁盘上,以便执行任务时候直接从本地磁盘上读取文件。
4.ApplicationMaster首先向ResourceManager注册,这样用户可以直接通过ResourceManage查看应用程序的运行状态,然后它将为各个任务申请资源,并监控它们的运行状态,直到运行结束,即重复步骤5~8
5.ApplicationMaster采用轮询的方式通过RPC协议向ResourceManager申请和领取资源
6.一旦ApplicationMaster申请到资源后,ApplicationMaster就会将启动命令交给NodeManager,要求它启动任务。启动命令里包含了一些信息使得Container可以与ApplicationMaster进行通信。
7.NodeManager为任务设置好运行环境(包括环境变量、JAR包、二进制程序等)后,将任务启动命令写到一个脚本中,并通过运行该脚本启动任务(Container)。
8.在应用程序运行过程中,用户可随时通过RPC向ApplicationMaster查询应用程序的当前运行状态
9.应用程序运行完成后,ApplicationMaster向ResourceManager注销并关闭自己。

大数据及hadoop简要概念的更多相关文章

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

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

  2. 大数据和Hadoop生态圈

    大数据和Hadoop生态圈 一.前言: 非常感谢Hadoop专业解决方案群:313702010,兄弟们的大力支持,在此说一声辛苦了,经过两周的努力,已经有啦初步的成果,目前第1章 大数据和Hadoop ...

  3. 大数据和Hadoop时代的维度建模和Kimball数据集市

    小结: 1. Hadoop 文件系统中的存储是不可变的,换句话说,只能插入和追加记录,不能修改数据.如果你熟悉的是关系型数据仓库,这看起来可能有点奇怪.但是从内部机制看,数据库是以类似的机制工作,在一 ...

  4. 大数据与Hadoop

    figure:first-child { margin-top: -20px; } #write ol, #write ul { position: relative; } img { max-wid ...

  5. Hadoop专业解决方案-第1章 大数据和Hadoop生态圈

    一.前言: 非常感谢Hadoop专业解决方案群:313702010,兄弟们的大力支持,在此说一声辛苦了,经过两周的努力,已经有啦初步的成果,目前第1章 大数据和Hadoop生态圈小组已经翻译完成,在此 ...

  6. 大数据和Hadoop平台介绍

    大数据和Hadoop平台介绍 定义 大数据是指其大小和复杂性无法通过现有常用的工具软件,以合理的成本,在可接受的时限内对其进行捕获.管理和处理的数据集.这些困难包括数据的收入.存储.搜索.共享.分析和 ...

  7. [Hadoop 周边] 浅谈大数据(hadoop)和移动开发(Android、IOS)开发前景【转】

    原文链接:http://www.d1net.com/bigdata/news/345893.html 先简单的做个自我介绍,我是云6期的,黑马相比其它培训机构的好偶就不在这里说,想比大家都比我清楚: ...

  8. 大数据测试之hadoop集群配置和测试

    大数据测试之hadoop集群配置和测试   一.准备(所有节点都需要做):系统:Ubuntu12.04java版本:JDK1.7SSH(ubuntu自带)三台在同一ip段的机器,设置为静态IP机器分配 ...

  9. 老李分享:大数据框架Hadoop和Spark的异同 1

    老李分享:大数据框架Hadoop和Spark的异同   poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.如果对课程感兴趣,请大家咨 ...

随机推荐

  1. Java内部类的四种分类以及作用介绍

    内部类内容解析 内部类的区分 内部类分别有成员内部类.局部内部类.匿名内部类.静态内部类,接下来将分别介绍. 成员内部类 就是位于外部类成员位置的类.与外部类的属性.方法并列. 成员内部类作为外部类的 ...

  2. 264. 丑数 II

    编写一个程序,找出第 n 个丑数. 丑数就是只包含质因数 2, 3, 5 的正整数. 示例: 输入: n = 10输出: 12解释: 1, 2, 3, 4, 5, 6, 8, 9, 10, 12 是前 ...

  3. MyBatis框架——快速入门

    主流的ORM框架(帮助开发者实现数据持久化工作的框架): 1.MyBatis: 半自动化ORM框架,半自动:指框架只完成一部分功能,剩下的工作仍需开发者手动完成. MyBatis 框架没有实现 POJ ...

  4. Linux下安装MySQL的tar.gz包

    以root用户登录待安装的服务器. 上传软件包并解压. 以root用户通过sftp/ftp工具上传“mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz”软件包到“/o ...

  5. C语言学生管理系统

    想练习一下链表,所以就有了这个用C写的学生管理系统 没有把它写入文件,才不是因为我懒哈哈哈,主要是为了练习链表的 #include<stdio.h> #include<stdlib. ...

  6. 从源码和doc揭秘——Java中的Char究竟几个字节,Java与Unicode的关系

    #编码与字符编码 (懂编码的建议直接跳过) 在计算机世界中,任何事物都是用二进制图片数字表示的,图片可以编码为JPG,PNG格式的字节流,音频,视频有MP3,MP4格式的字节流.这些JPG,MP3等都 ...

  7. varchar int 查询 到底什么情况下走索引?

    一个字符类型的.一个int类型的,查询的时候到底会不会走索引,其实很多工作了几年的开发人员有时也会晕,下面就用具体事例来测试一下. 1.  准备工作 先准备2张表,以备后续测试使用. 表1:创建表te ...

  8. 理解BERT:一个突破性NLP框架的综合指南

    概述 Google的BERT改变了自然语言处理(NLP)的格局 了解BERT是什么,它如何工作以及产生的影响等 我们还将在Python中实现BERT,为你提供动手学习的经验 BERT简介 想象一下-- ...

  9. Xamarin.Forms客户端第一版

    Xamarin.Forms客户端第一版 作为TerminalMACS的一个子进程模块,目前完成第一版:读取展示手机基本信息.联系人信息.应用程序本地化. 功能简介 详细功能说明 关于TerminalM ...

  10. Pycharm 文件模板配置

    Pycharm 模板配置 #!/usr/bin/python # -*- coding: UTF-8 -*- # Author:${USER} 作者 # FileName:${NAME} 文件名称 # ...