致初学者

一,恶龙出巢

大数据,顾名思义,就是数据变得越来越多,变得很大很大。我知道很多人对这个解释嗤之以鼻,可是经过我的一段时间学习,发现这个概念就是这样,没有必要把它上升到一种难以理解的高度。

不理解的问题在于:你对数据到底有多大根本没有概念。

我们在网络上每一次操作无非都是对数据的增删改查,在未来随着网络应用的越来越多,人们对网络需求的越来越大,每个网络使用者相当于一个庞大的数据集,可以说你的经历有多少,你看到的,听到的有多少,你的数据就会有多少。

而随着数据越来越多,我们需要采集,传输,计算,存储的资源就有多少。我们无法要求我们的数据存储硬件越来越大,我们的计算机硬件越来越快,因为所有硬件的资源到了一定程度都受限于物资的资源。所以我们要解决未来发展中这样一个困难的问题,即产生了一系列关于大数据的学思和产品。

二,勇士拔剑

计算机科学就是数据结构+算法。

大数据作为计算机科学的分支,解决问题也从这两个角度出发。开启革命第一枪的是谷歌04年发表的论文MapReduce,其实早于这篇论文已经有很多类似想法产生的发表,不过还要资本推动技术革命嘛。这篇论文的关键思想在于他给了分布式计算的一个很典型的算法,做到一个庞大数据集计算功力的成功分布,这样一来即使我们不依靠硬件的提升,只通过算法就可以实现对大数据的计算了。

举个栗子,现在需要对全校的毕业论文做每个单词的词频统计。MapReduce的做法是把每篇论文的每个单词先做一个键值对形式的转化(Map),如(we,0),然后把转化后的键值对集分布到集群下各个子节点中(shuffle),这样每个普通计算机分到了比较少量的论文数量,再把他们按值键值相同的合并(Reduce),可能会是(we,10086),在统一将整理后的数据集返还给master节点,完成整个数据集的计算。

三,恶龙咆哮

我们现在很耳熟的框架基本上都是开源的,从Apache的Hadoop运用MapReduce开启了全民使用Hadoop的热潮后,大数据方向的框架一直在发展,一直在进步,一直适应于人们的生活。

我们从上个例子可以知道,要处理人们日常生活中产生的大数据要分很多步骤:

数据采集(Apache Flume)--->数据缓冲缓存,分布式消息队列(Apache Kafka)--->数据实时计算(Apache Hadoop, Spark,Storm,Flink)--->数据存储(HBase)

在这期间还要有很多对大数据补充产品比如:分布式协调工具Zookeeper,数据仓库Hive等等,有些已经弃用,有些还在更新。

当然,除了Apache家族开源的几个产品,市场上其他比较热门的分布式框架比如Redis(分布式内存存储),Dubbo(分布式远程服务调用)等等。

需要一提的是,所有这些产品在网络分层的角度看都是软件层面上的产品,网络整个五层结构的协同合作才使得我们能在互联网浪潮中扑腾,所以即使我们了解了其中一个框架,也只不过是冰山一角。

四,利刃出击

简单来说,Apache的实时计算框架经历的一系列的发展过程:

Hadoop依靠MapReduce的数据处理

Hadoop通过主从模型,用一系列技术维护同时性,做出来一个可维护可高效率运行的大数据实时处理框架

名门望族Spark通过RDD进行系统能力扩展

其实Spark对于Hadoop的创新有很多,但还是在发展路途中留下了很多Hadoop的身影。其中最主要的创新就是Hadoop创建了RDD(分布式弹性数据集)这样一个数据结构,其中很多分区存储信息,还建立了与其他RDD之间的联系,这样就使得我们的数据集大小可控,可以根据业务需要进行数据分流操作,提高系统灵活性,运行速度也由于在MapRedeuce方面的改进而大大提高。

Storm流处理革新

大数据的革新带来了数据形式的革新,数据不再像以前一样是大规模集成式的批处理,更多的是来自不同地点的分布式实时流计算。Storm的方式是彻底改变思想,新建了自己的一套数据结构,把整个数据当作数据流一样处理,想要关闭就拧紧水龙头,想要打开就控制流开启,在自己形成的topology中做业务。

Flink有状态的实时运算

Flink把数据当成流来处理,计算时直接计算每个状态,并保留过程中的状态数据,而不是数据本身,在流当中设置窗口等概念控制流,并有一系列容错机制如ABS来保证持久化。

HDFS分布式存储

基于一件事情说三遍的思想,就是用一个主从模型做系统备份,并通过心跳保证系统一致性,在期间还要考虑网络,性能,单点破坏等一系列事件。

关于HBase等分布式存储的框架,起源于Google的另一篇论文BigTable思想,这里不再阐述。

以上是大数据实时处理的基本介绍,疏漏还请包涵,如要学习推荐先有一点理论常识,然后从o'reilly和官方书籍入手,再看工程代码辅助论文看,才会有效果。

简单介绍之大数据框架相关推荐

  1. 玩转人工智能(3)常用的大数据框架简单介绍

    时光不老,我们不散. 讲大数据框架前,简单的介绍下大数据的文化.信息时代人类社会的进步得益于分享和开源.大数据时代属于信息时代的第三代发展阶段(2001年到2011年可以认为是CT行业的黄金期,200 ...

  2. 大数据框架对比:Hadoop、Storm、Samza、Spark和Flink——flink支持SQL,待看

    简介 大数据是收集.整理.处理大容量数据集,并从中获得见解所需的非传统战略和技术的总称.虽然处理数据所需的计算能力或存储容量早已超过一台计算机的上限,但这种计算类型的普遍性.规模,以及价值在最近几年才 ...

  3. Java程序员必备的10个大数据框架

    当今IT开发人员面对的最大挑战就是复杂性,硬件越来越复杂,OS越来越复杂,编程语言和API越来越复杂,我们构建的应用也越来越复杂.根据外媒的一项调查报告,小千列出了Java程序员在过去12个月内一直使 ...

  4. 大数据框架复习-flink

    大数据框架复习-flink flink的简单介绍 Flink 是一个面向流处理和批处理的分布式数据计算引擎,能够基于同一个 Flink 运行,可以提供流处理和批处理两种类型的功能. 在 Flink 的 ...

  5. 大数据准实时流式系统设计(一)——基于大数据框架设计

    前段时间负责了公司一个新的项目,项目不属于直接面向用户的线上实时响应系统,要求做到尽快毫秒级或者秒级响应的准实时系统.结合以前学习的一些大数据理论方面和参与的准实时系统方面的经验,对准实时系统架构设计 ...

  6. 【组件】大数据框架安装功能来划分

    海量数据存储: HDFS.Hive(本质存储数据还是hdfs).HBASE.ES 海量数据分析: MapReduce.Spark.SQL 最原始的Hadoop框架 数据存储:HDFS(Hadoop D ...

  7. 大数据框架Hadoop篇之Hadoop入门

    1. 写在前面 今天开始,想开启大数据框架学习的一个新系列,之前在学校的时候就会大数据相关技术很是好奇,但苦于没有实践场景,对这些东西并没有什么体会,到公司之后,我越发觉得大数据的相关知识很重要,不管 ...

  8. 【大数据框架及实战2】---初识

    [大数据框架及实战]---数据集 第一节 数据从哪里来 数据怎么用 本项目使用的数据 结构化和非结构数据 结构表的特征提取和呈现 攀登数据分析金字塔 第二节 实战项目中工具软件选型 数据采集到的技术- ...

  9. 排名前6位的最流行的大数据框架,你在用哪一款?

    介绍大数据框架 市场上有许多可用的框架.其中一些更受欢迎,例如Spark,Hadoop,Hive和Storm.Presto在效用指数上得分很高,而Flink具有巨大的潜力.另外还有一些需要提及的其他内 ...

最新文章

  1. php正则表达式函数 preg_replace用法
  2. BCH踏着优化升级路线,在数字货币界声名鹊起
  3. 《Data-Intensive Text Processing with mapReduce》读书笔记之一:前言
  4. 测试动态视力软件叫什么影响吗,动态视力
  5. opencv 边缘平滑_基于OpenCV的车道检测实现(一)
  6. echarts源码:图标类插件开发
  7. 软件工程详细设计说明书_软件设计师
  8. rpm打包的流程包括以下哪些_Linux 下RPM打包制作流程
  9. kafka开源版本quota限流功能缺陷
  10. php 获取路由器mac地址,php如何获取网卡MAC地址(支持WIN与LINUX系统)
  11. leetcode题库10--正则表达式匹配
  12. 4.1 CMMI4级——CMMI4级简述
  13. 惠普2t服务器硬盘,HP DL388 Gen8系列服务器硬盘超过2T的分区方法
  14. WIN10和WIN11修改C盘用户文件夹名称
  15. 避免安信可导入SDK出错
  16. HTML5制作诗歌锦集,短小优美的自创现代诗歌(精选5首)
  17. base64解密java代码,base64编码解码java代码
  18. 虚拟机安装(保姆级教程)
  19. 用PS做手机计算机,功能与电脑ps相媲美的手机画画软件
  20. [Shiro教程] Shiro 教程基于SSM(SpringMVC + Spring + Mybatis)

热门文章

  1. 1.计算机的网络功能和组成,1.2计算机网络的组成与功能.ppt
  2. IDEA TOMCAT设置UTF-8编码
  3. sybase用户权限管理1
  4. 杂谈之WEB前端工程师身价
  5. 基于“机器学习”智能聊天机器人---python实现(2)
  6. 线程中断的三个方法的区别(interrupt/isInterrupted/interrupted)
  7. Oracle 11g版本下载及安装超详细教程图解
  8. JSCanvas画板
  9. python 读取QQ邮件内容
  10. 语音合成10107错误码解决记录