大数据简单来说就是短时间快速的产生大量的多种多样的有价值的数据,但是这些数据的价值密度不是很高。


进入2012年,大数据(big data)一词越来越多地被提及,人们用它来描述和定义信息爆炸时代产生的海量数据,并命名与之相关的技术发展与创新。它已经上过《纽约时报》《华尔街日报》的专栏封面,进入美国白宫官网的新闻,现身在国内一些互联网主题的讲座沙龙中,甚至被嗅觉灵敏的国金证券、国泰君安、银河证券等写进了投资推荐报告。
数据正在迅速膨胀并变大,它决定着企业的未来发展,虽然很多企业可能并没有意识到数据爆炸性增长带来问题的隐患,但是随着时间的推移,人们将越来越多的意识到数据对企业的重要性。
正如《纽约时报》2012年2月的一篇专栏中所称,“大数据”时代已经降临,在商业、经济及其他领域中,决策将日益基于数据和分析而作出,而并非基于经验和直觉。
哈佛大学社会学教授加里·金说:“这是一场革命,庞大的数据资源使得各个领域开始了量化进程,无论学术界、商界还是政府,所有领域都将开始这种进程。

一、大数据有四大特征

数据量大(Volume)
第一个特征是数据量大。大数据的起始计量单位至少是P(1000个T)、E(100万个T)或Z(10亿个T)。

类型繁多(Variety)
第二个特征是数据类型繁多。包括网络日志、音频、视频、图片、地理位置信息等等,多类型的数据对数据的处理能力提出了更高的要求。

价值密度低(Value)
第三个特征是数据价值密度相对较低。如随着物联网的广泛应用,信息感知无处不在,信息海量,但价值密度较低,如何通过强大的机器算法更迅速地完成数据的价值“提纯”,是大数据时代亟待解决的难题。

速度快、时效高(Velocity)
第四个特征是处理速度快,时效性要求高。这是大数据区分于传统数据挖掘最显著的特征。

既有的技术架构和路线,已经无法高效处理如此海量的数据,而对于相关组织来说,如果投入巨大采集的信息无法通过及时处理反馈有效信息,那将是得不偿失的。可以说,大数据时代对人类的数据驾驭能力提出了新的挑战,也为人们获得更为深刻、全面的洞察能力提供了前所未有的空间与潜力。

当数据的处理技术发生翻天覆地的变化时,大数据时代,我们的思维也要变革。

  1. 第一个思维变革:利用所有的数据,而不再仅仅依靠部分数据,即不是随机样本,而是全体数据。
  2. 第二个思维变革:我们唯有接受不精确性,才有机会打开一扇新的世界之窗,即不是精确性,而是混杂性。
  3. 第三个思维变革:不是所有的事情都必须知道现象背后的原因,而是要让数据自己“发声”,即不是因果关系,而是相关关系。

二、那么这么大的数据量,就关乎到了关键的问题。那就是如何进行存储!要知道在当今社会中瞬间产生的数据量是可以达到几十TB来计算的,可以说是无法想象的庞大的数据量!

说到大数据的存储就要说到一种技术------hadoop!
Hadoop是一个由Apache基金会所开发的分布式系统基础架构。
用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。
Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS。HDFS有高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上;而且它提供高吞吐量(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序。HDFS放宽了(relax)POSIX的要求,可以以流的形式访问(streaming access)文件系统中的数据。
Hadoop的框架最核心的设计就是:HDFS和MapReduce。HDFS为海量的数据提供了存储,而MapReduce则为海量的数据提供了计算。
为了解决数据量过大的问题,有两种解决的办法:① 垂直扩展:就是在单个服务器内增加存储空间 ;② 横向扩展:对多个服务器或者PC段进行连接。

三、Hadoop的来历

Hadoop是原Yahoo的Doug Cutting根据Google发布的学术论文研究而来。Doug Cutting给这个Project起了个名字,就叫Hadoop。
Doug Cutting在Cloudera公司任职。Cloudera的Hadoop是商用版。不同于Apache的开源版。如果要研究Hadoop的话,下载Apache的开源版本是一种不错的选择。只研究Apache版本的,不足以对Hadoop的理念理解。再对Cloudera版本的研究,会更上一层楼。美国的AsterData,也是Hadoop的一个商用版,AsterData的MPP理念,Applications Within理念等等,也都是值得研究。Google的成功已经说明了RDB的下一代就是Nosql(Not Only SQL),比如说GFS,Hadoop等等。Hadoop作为开源软件来说,其魅力更是不可估量。
上文中说到Google的学术论文,其中包涵有:

  1. Google File System(大规模分散文件系统)
  2. MapReduce (大规模分散FrameWork)
  3. BigTable(大规模分散数据库)-----------------------HBase
  4. Chubby(分散锁服务)

四、Hadoop的优点

Hadoop是一个能够对大量数据进行分布式处理的软件框架。 Hadoop 以一种可靠、高效、可伸缩的方式进行数据处理。
Hadoop 是可靠的,因为它假设计算元素和存储会失败,因此它维护多个工作数据副本,确保能够针对失败的节点重新分布处理。
Hadoop 是高效的,因为它以并行的方式工作,通过并行处理加快处理速度。
Hadoop 还是可伸缩的,能够处理 PB 级数据。
此外,Hadoop 依赖于社区服务,因此它的成本比较低,任何人都可以使用。

Hadoop是一个能够让用户轻松架构和使用的分布式计算平台。用户可以轻松地在Hadoop上开发和运行处理海量数据的应用程序。它主要有以下几个优点:
1. 高可靠性。Hadoop按位存储和处理数据的能力值得人们信赖。
2. 高扩展性。Hadoop是在可用的计算机集簇间分配数据并完成计算任务的,这些集簇可以方便地扩展到数以千计的节点中。
3. 高效性。Hadoop能够在节点之间动态地移动数据,并保证各个节点的动态平衡,因此处理速度非常快。
4. 高容错性。Hadoop能够自动保存数据的多个副本,并且能够自动将失败的任务重新分配。
5. 低成本。与一体机、商用数据仓库以及QlikView、Yonghong、 Z-Suite等数据集市相比,hadoop是开源的,项目的软件成本因此会大大降低。 Hadoop 带有用Java语言编写的框架,因此运行在 Linux 生产平台上是非常理想的。Hadoop 上的应用程序也可以使用其他语言编写,比如 C++。

五、hadoop大数据处理的意义

Hadoop得以在大数据处理应用中广泛应用得益于其自身在数据提取、变形和加载(ETL)方面上的天然优势。Hadoop的分布式架构,将大数据处理引擎尽可能的靠近存储,对例如像ETL这样的批处理操作相对合适,因为类似这样操作的批处理结果可以直接走向存储。Hadoop的MapReduce功能实现了将单个任务打碎,并将碎片任务(Map)发送到多个节点上,之后再以单个数据集的形式加载(Reduce)到数据仓库里。

六、Hadoop的核心架构

Hadoop是项目的总称。主要是由HDFS和MapReduce组成。
HDFS是Google File System(GFS)的开源实现。
MapReduce是Google MapReduce的开源实现。
Hadoop 由许多元素构成。其最底部是 Hadoop Distributed File System(HDFS),它存储 Hadoop 集群中所有存储节点上的文件。HDFS(对于本文)的上一层是MapReduce 引擎,该引擎由 JobTrackers 和 TaskTrackers 组成。通过对Hadoop分布式计算平台最核心的分布式文件系统HDFSMapReduce处理过程,以及数据仓库工具Hive分布式数据库Hbase的介绍,基本涵盖了Hadoop分布式平台的所有技术核心。
HDFS把节点分成两类:NameNode和DataNode。NameNode是唯一的,程序与之通信,然后从DataNode上存取文件。这些操作是透明的,与普通的文件系统API没有区别。
MapReduce则是JobTracker节点为主,分配工作以及负责和用户程序通信。是批处理的,用于一些不急于解决的请求
HDFS和MapReduce实现是完全分离的,并不是没有HDFS就不能MapReduce运算。
Hadoop是Apache软件基金会发起的一个项目,在大数据分析以及非结构化数据蔓延的背景下,Hadoop受到了前所未有的关注。
Spark:用于Hadoop数据的快速通用计算引擎。Spark提供了一种简单而富有表现力的编程模型,支持广泛的应用程序,包括ETL,机器学习,流处理和图形计算。分为spark core,sparkSQLsql处理,sparkStreaming流式处理,mllib机器学习库和graphx(spark停止维护)
Hadoop是一种分布式数据和计算的框架。它很擅长存储大量的半结构化的数据集。数据可以随机存放,所以一个磁盘的失败并不会带来数据丢失。Hadoop也非常擅长分布式计算——快速地跨多台机器处理大型数据集合。
MapReduce是处理大量半结构化数据集合的编程模型。编程模型是一种处理并结构化特定问题的方式。例如,在一个关系数据库中,使用一种集合语言执行查询,如SQL。告诉语言想要的结果,并将它提交给系统来计算出如何产生计算。还可以用更传统的语言(C++,Java),一步步地来解决问题。这是两种不同的编程模型,MapReduce就是另外一种。
MapReduce和Hadoop是相互独立的,实际上又能相互配合工作得很好。

Hadoop的架构是一种主从架构分为主节点----Namenode,从节点----Datanode和client(服务于主节点的,可以理解为老板的秘书)。

七、Hadoop的读写机制和备份机制

首先Hadoop是以block块的形式将大文件进行相应的存储,在一版本中默认分配块的大小为64M,然后在二版本中默认分配块大小为128M。
文件线性切割成块(Block),偏移量offset(byte)可以认为是block的id或者索引
block是分散存储在集群节点中的,单一文件block大小一致,文件与文件可以不一致
block可以设置副本数,副本分散在不同节点中,副本数不要超过节点数量,副本可以认为是备份
已上传文件block副本数可以调整,但是大小不变
block只支持一次写入,但支持多次读取,同一时刻只有一个写入者
(源数据就是数据,元数据是描述数据的数据)
Namenode要做些什么?
1.首先它是掌控全局的,管理Datanode的信息,管理元数据。
2.接收client的请求,这些请求是读写请求。
3.与Datanode之间进行相应的通信。
Datanode要做些什么?
1.存储数据
2.向Namenode发送自己的情况
3.接收client的一个任务
写机制
1.首先要有一个大文件
2.client将大文件进行切块,一般默认block块数等于文件大小/128M
3.向Namenode发送一些信息
① 块数 ② 文件大小 ③ 文件权限 ④ 文件属主 ⑤ 文件上传时间
4.client切下一块(128M)
5.client向Namenode申请资源即Datanode的信息
6.Namenode会返回给client一批负载不高的Datanode的信息
7.client回向Datanode里面发送block并且做好备份
8.Datanode存放完block块之后会向Namenode汇报情况
读机制
1.Namenode会向client发送一个请求,client接收到请求之后会向Namenode申请节点信息(blockid)
2.Namenode会向client发送一些节点信息
3.client获取到节点信息之后去Datanode上获取数据,在这当中将遵循就近原则
备份机制
集群是多个服务器连接在一个机架中,机架可以有多个,在集群中只有一个Namenode。
1.集群内提交 在提交的节点上放置block
集群外提交 学则一个负载不高的节点进行存放
2.放置在于第一个备份不同机架的任意节点上
3.放置在第二个机架的不同节点上
而在备份数据时如果想同时给多个节点备份同一份数据的话,就会带来一些存储性能上的问题,那么就出现了pipeline管道。
pipeline管道
1.Namenode返回给client一些Datanode的信息
2.client会和这些Datanode形成一个管道,并且将block块切割成一个个ackPackage(64K)
3.Datanode会从管道中拿取相应的数据进行存储
4.当存储完成之后,Datanode会向Namenode进行汇报。

八、发展现状

Hadoop 设计之初的目标就定位于高可靠性、高可拓展性、高容错性和高效性,正是这些设计上与生俱来的优点,才使得Hadoop 一出现就受到众多大公司的青睐,同时也引起了研究界的普遍关注。到目前为止,Hadoop 技术在互联网领域已经得到了广泛的运用,例如,Yahoo 使用4 000 个节点的Hadoop集群来支持广告系统和Web 搜索的研究;Facebook 使用1 000 个节点的集群运行Hadoop,存储日志数据,支持其上的数据分析和机器学习;百度用Hadoop处理每周200TB 的数据,从而进行搜索日志分析和网页数据挖掘工作;中国移动研究院基于Hadoop 开发了“大云”(Big Cloud)系统,不但用于相关数据分析,还对外提供服务;淘宝的Hadoop 系统用于存储并处理电子商务交易的相关数据。国内的高校和科研院所基于Hadoop 在数据存储、资源管理、作业调度、性能优化、系统高可用性和安全性方面进行研究,相关研究成果多以开源形式贡献给Hadoop 社区。
除了上述大型企业将Hadoop 技术运用在自身的服务中外,一些提供Hadoop 解决方案的商业型公司也纷纷跟进,利用自身技术对Hadoop 进行优化、改进、二次开发等,然后以公司自有产品形式对外提供Hadoop 的商业服务。比较知名的有创办于2008 年的Cloudera 公司,它是一家专业从事基于ApacheHadoop 的数据管理软件销售和服务的公司,它希望充当大数据领域中类似RedHat 在Linux 世界中的角色。该公司基于Apache Hadoop 发行了相应的商业版本Cloudera Enterprise,它还提供Hadoop 相关的支持、咨询、培训等服务。在2009 年,Cloudera 聘请了Doug Cutting(Hadoop 的创始人)担任公司的首席架构师,从而更加加强了Cloudera 公司在Hadoop 生态系统中的影响和地位。最近,Oracle 也表示已经将Cloudera 的Hadoop 发行版和Cloudera Manager 整合到Oracle Big Data Appliance 中。同样,Intel 也基于Hadoop 发行了自己的版本IDH。从这些可以看出,越来越多的企业将Hadoop 技术作为进入大数据领域的必备技术。
需要说明的是,Hadoop 技术虽然已经被广泛应用,但是该技术无论在功能上还是在稳定性等方面还有待进一步完善,所以还在不断开发和不断升级维护的过程中,新的功能也在不断地被添加和引入,读者可以关注Apache Hadoop的官方网站了解最新的信息。得益于如此多厂商和开源社区的大力支持,相信在不久的将来,Hadoop 也会像当年的Linux 一样被广泛应用于越来越多的领域,从而风靡全球。

我们正处在大数据时代,浅谈大数据相关推荐

  1. 执行一次怎么会写入两次数据_浅谈 Redis 数据持久化之 AOF 模式

    我们知道 Redis 之所以读写快.性能高,得益于它是一种基于内存的数据库,毫无疑问它的操作都几乎都是基于内存.但是内存型数据库也有一个很大的弊端:如果进程崩溃或者服务重启的时候内存数据得不到保存,就 ...

  2. 大数据审计的发展_浅谈大数据时代下审计工作的发展方向

    浅谈大数据时代下审计工作的发展方向 李寒梅 [摘 要] [ 摘 要 ] 随着信息化水平不断提升,企业的审计工作需要处理海量的数 据,而利用常规软件难以对海量数据进行处理,这就需要应用大数据技术.审 计 ...

  3. 浅谈大数据的标签管理

    最近参与了一个大数据的项目,是涉及标签管理方面的内容,使我这个初涉入大数据领域的人获益匪浅. 标签,也可以叫做Tag,最早出现于2005年(注1),随着Web2.0的Blog应用被广泛使用开来.标签也 ...

  4. 张晓波:浅谈大数据应用的知与行|V课堂第82期

    2017年8月26日,<中国大数据应用蓝皮书>的发布引起了大数据领域的政产学界领导.顶尖学者的强烈关注.在全球化的新阶段,面对互联的新世界,大数据如何不断创造新模式.新生态和新时代? 第8 ...

  5. 浅谈大数据:如何成为大数据企业?

    文章讲的是 浅谈大数据:如何成为大数据企业, 1.什么叫大数据? "大数据"是"数据化"趋势下的必然产物!数据化最核心的理念是:"一切都被记录,一切都 ...

  6. 直播技术:从性能参数到业务大数据,浅谈直播CDN服务监控

    线上服务的有效监控和数据收集,一直是后端服务离不开的话题.直播作为一种经典的分布式系统,监控以及数据收集更是必不可少的工作.如何对海量的服务集群有效的监控和保活,又如何抓取集群中的碎片数据中来优化服务 ...

  7. 从性能参数到业务大数据,浅谈直播CDN服务监控

    线上服务的有效监控和数据收集,一直是后端服务离不开的话题.直播cdn作为一种经典的分布式系统,监控以及数据收集更是必不可少的工作.如何对海量的服务集群有效的监控和保活,又如何抓取集群中的碎片数据中来优 ...

  8. 让数据站住脚-浅谈用户研究中的信度与效度

    让数据站住脚-浅谈用户研究中的信度与效度 在用户研究工作中,如何让自己的数据和结论更有说服力,是很重要的问题.最近将自己积累的用研信度和效度的笔记整理一下,罗列在文中,希望对大家有所帮助. 一.调查的 ...

  9. 浅谈导航数据中POI搜索技术原理

    浅谈导航数据中POI搜索技术原理之一 王健 导航技术的应用已经成为现在生活中重要组成部分,为我们的生活提供了极大的便利.基本都有这样生活的体验,搜索自己位置附近的银行网点.餐馆.那么这些POI是如何快 ...

最新文章

  1. 彭旭老师《项目管理中的领导力与团队建设》
  2. ssh协议是osi_TCP/IP 协议模型
  3. python:进程操作
  4. 实现在Android本地视频播放器开发
  5. 增加 Eclipse color Theme
  6. 从零开始学习docker(九)持久化存储和数据共享之 bind Mounting
  7. [LeetCode] Length of Last Word - 最后一个单词的长度
  8. [PowerShell]人人都值得学一点PowerShell实现自动化(2)有哪些可用的场景及方式?
  9. Linux系统的基本安装
  10. 用深度强化学习玩atari游戏_被追捧为“圣杯”的深度强化学习已走进死胡同
  11. KlayGE C++代码风格指南英文版
  12. Git 笔记——如何处理分支合并冲突
  13. 浏览器占满整个屏幕_浏览器无法最大化 为什么我的IE浏览器最大化时,会铺满整个电脑屏...
  14. 计算机网络基础(二)
  15. Stable Baselines/用户向导/矢量化环境
  16. 【FlinkX】数据同步工具的研究与实践
  17. matlab定义双精度型变量_MATLAB 数据类型
  18. android 微博一键关注,新浪微博怎样一键关注多个好友
  19. python爬虫爬取拉勾网招聘信息
  20. 把网页知乎的视频下载下来

热门文章

  1. 计算机管理中打开移动硬盘磁盘必须格式化,最佳解决方案:无法打开移动硬盘分区,并且未格式化解决方案。...
  2. VerilogA学习 - VCO demo 合集
  3. Kali系统安装搜狗输入法
  4. openwrt 自启动实现4G路由器功能总结
  5. solidworks中开孔绘制螺纹孔
  6. c语言19之用1元5角钱人名币兑换5分、2分和1分的硬币(每一种都要有)共一百枚,问共有几种兑换方案?并输出每种方案
  7. vulnhub-ted靶场
  8. X-XSS-Protection
  9. 关于 z-Stack MT层的使用
  10. PCB板区域裁剪及尺寸标注