Big Data 技术综述 大数据 研究 大数据 综述

Big Data 技术综述 大数据 研究 大数据 综述BigData 技术综述大数据研究大数据综述 2011 08 271 30 此文 BYCSDN nbsp 蒋杰 BigData 是近来的一个技术热点 但从名字就能判断它并不是什么新词 毕竟 大是一个相对概念 历史上 数据库 数据仓库 数据集市等信息管理领域的技术 很大程度上也是为了解决大规模数据的问题 被誉为数据仓库之父的 BillInmon 早在 20 世纪 90 年代就经

Big Data 技术综述 大数据 研究 大数据 综述
2011-08-27 1:30

此文BY CSDN 蒋杰

Big Data是近来的一个技术热点,但从名字就能判断它并不是什么新词。毕竟,大是一个相对概念。历史上,数据库、数据仓库、数据集市等信息管理领域的技术,很大程度上也是为了解决大规模数据的问题。被誉为数据仓库之父的Bill Inmon早在20世纪90年代就经常将Big Data挂在嘴边了。

然而,Big Data作为一个专有名词成为热点,主要应归功于近年来互联网、云计算、移动和物联网的迅猛发展。无所不在的移动设备、RFID、无线传感器每分每秒都在产生数据,数以亿计用户的互联网服务时时刻刻在产生巨量的交互……要处理的数据量实在是太大、增长太快了,而业务需求和竞争压力对数据处理的实时性、有效性又提出了更高要求,传统的常规技术手段根本无法应付。

在这种情况下,技术人员纷纷研发和采用了一批新技术,主要包括分布式缓存、基于MPP的分布式数据库、分布式文件系统、各种NoSQL分布式存储方案等。

10年前,Eric Brewer提出著名的CAP定理,指出:一个分布式系统不可能满足一致性、可用性和分区容忍性这三个需求,最多只能同时满足两个。系统的关注点不同,采用的策略也不一样。只有真正理解了系统的需求,才有可能利用好CAP定理。

架构师一般有两个方向来利用CAP理论。

Key-Value存储,如Amazon Dynamo等,可以根据CAP理论灵活选择不同倾向的数据库产品。领域模型+分布式缓存+存储,可根据CAP理论结合自己的项目定制灵活的分布式方案,但难度较高。

对大型网站,可用性与分区容忍性优先级要高于数据一致性,一般会尽量朝着A、P的方向设计,然后通过其他手段保证对于一致性的商务需求。架构设计师不要将精力浪费在如何设计能满足三者的完美分布式系统,而应该懂得取舍。

不同的数据对一致性的要求是不同的。SNS网站可以容忍相对较长时间的不一致,而不影响交易和用户体验;而像支付宝这样的交易和账务数据则是非常敏感的,通常不能容忍超过秒级的不一致。

Big Data 技术综述 大数据 研究 大数据 综述图1 memcached构成

Cache篇

缓存在Web开发中运用越来越广泛,mem-cached是danga.com(运营LiveJournal的技术团队)开发的一套分布式内存对象缓存系统,用于在动态系统中减少数据库负载,提升性能。

memcached具有以下特点:

协议简单;基于libevent的事件处理;内置内存存储方式;memcached不互相通信的分布式。

memcached处理的原子是每一个(Key,Value)对(以下简称KV对),Key会通过一个hash算法转化成hash-Key,便于查找、对比以及做到尽可能的散列。同时,memcached用的是一个二级散列,通过一张大hash表来维护。

memcached由两个核心组件组成:服务端(ms)和客户端(mc),在一个memcached的查询中,ms先通过计算Key的hash值来确定KV对所处在的ms位置。当ms确定后,mc就会发送一个查询请求给对应的ms,让它来查找确切的数据。因为这之间没有交互以及多播协议,所以memcached交互带给网络的影响是最小化的。

MemcacheDB是一个分布式、Key-Value形式的持久存储系统。它不是一个缓存组件,而是一个基于对象存取的、可靠的、快速的持久存储引擎。协议与memcached一致(不完整),所以很多memcached客户端都可以跟它连接。MemcacheDB采用Berkeley DB作为持久存储组件,因此很多Berkeley DB的特性它都支持。

Big Data 技术综述 大数据 研究 大数据 综述图2 Greenplum数据引擎软件

类似这样的产品也很多,如淘宝Tair就是Key-Value结构存储,在淘宝得到了广泛使用。后来Tair也做了一个持久化版本,思路基本与新浪MemcacheDB一致。

分布式数据库篇

支付宝公司在国内最早使用Greenplum数据库,将数据仓库从原来的Oracle RAC平台迁移到Greenplum集群。Greenplum强大的计算能力用来支持支付宝日益发展的业务需求。

Greenplum数据引擎软件专为新一代数据仓库所需的大规模数据和复杂查询功能所设计,基于MPP(海量并行处理)和Shared-Nothing(完全无共享)架构,基于开源软件和x86商用硬件设计(性价比更高)。

分布式文件系统篇

谈到分布式文件系统,不得不提的是Google的GFS。基于大量安装有Linux操作系统的普通PC构成的集群系统,整个集群系统由一台Master(通常有几台备份)和若干台TrunkServer构成。GFS中文件备份成固定大小的Trunk分别存储在不同的TrunkServer上,每个Trunk有多份(通常为3份)拷贝,也存储在不同的TrunkServer上。Master负责维护GFS中的 Metadata,即文件名及其Trunk信息。客户端先从Master上得到文件的Metadata,根据要读取的数据在文件中的位置与相应的TrunkServer通信,获取文件数据。

Big Data 技术综述 大数据 研究 大数据 综述图3 引自Facebook工程师的Hive与Hadoop关系图

在Google的论文发表后,就诞生了Hadoop。截至今日,Hadoop被很多中国最大互联网公司所追捧,百度的搜索日志分析,腾讯、淘宝和支付宝的数据仓库都可以看到Hadoop的身影。

Hadoop具备低廉的硬件成本、开源的软件体系、较强的灵活性、允许用户自己修改代码等特点,同时能支持海量数据存储和计算任务。

Hive是一个基于Hadoop的数据仓库平台,将转化为相应的MapReduce程序基于Hadoop执行。通过Hive,开发人员可以方便地进行ETL开发。

如图3所示,引用一张Facebook工程师做的Hive和Hadoop的关系图。

NoSQL篇

随着数据量增长,越来越多的人关注NoSQL,特别是2010年下半年,Facebook选择HBase来做实时消息存储系统,替换原来开发的Cassandra系统。这使得很多人开始关注HBase。Facebook选择HBase是基于短期小批量临时数据和长期增长的很少被访问到的数据这两个需求来考虑的。

HBase是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBase技术可在廉价PC Server上搭建大规模结构化存储集群。HBase是BigTable的开源实现,使用HDFS作为其文件存储系统。Google运行MapReduce来处理BigTable中的海量数据,HBase同样利用MapReduce来处理HBase中的海量数据;BigTable利用Chubby作为协同服务,HBase则利用Zookeeper作为对应。

Big Data 技术综述 大数据 研究 大数据 综述图4 线上应用系统与数据平台的无缝融入

总结篇

近来NoSQL数据库的使用越来越普及,几乎所有的大型互联网公司都在这个领域进行着实践和探索。在享受了这类数据库与生俱来的扩展性、容错性、高读写吞吐外(尽管各主流NoSQL仍在不断完善中),越来越多的实际需求把人们带到了NoSQL并不擅长的其他领域,比如搜索、准实时统计分析、简单事务等。实践中一般会在NoSQL的外围组合一些其他技术形成一个整体解决方案。

准实时的统计分析

传输时统计分析,Stream Processing技术:FlumeBase、S4。

FlumeBase:可参考 http://flumebase.org/documentation/0.1.0/UserGuide.html中的quick start和architecture两部分。

S4:Yahoo!开源数据来流计算实时框架,可参考http://labs.yahoo.com/files/KDCloud%%20S4.pdf。

查询时统计分析,结果集较小时,可以直接在返回前做统计分析处理。

比如买家消费记录查询的HBase实现,Schema设计,rowkey=uid,column=搜索词和查询值,version=交易id。

搜索相关

充分利用NoSQL(比如HBase)内部数据的有序性、Row Key、Column Family、Version Timestamp。

我们用“HBase+二次索引”来实现实时营销的解决方案。也可以参考Facebook Message的解决方案:http://blog.bluedavy.com/?p=258。

构建一个外围系统完成索引建立。

Google MegaStore:原文链接为http://www.cidrdb.org/cidr2011/Papers/CIDR11_Paper32.pdf,中文译文链接为http://cloud.csdn.net/a/20110216/291968.html。

也有人开始尝试基于HBase的MegaStore实现,链接为https://github.com/drevell/megalon。

简单事务

事务处理服务 + NoSQL存储。淘宝开发的千亿级海量数据库Oceanbase,通过update server角色执行将写操作限制在一台机器上,实现事务。参考链接为:http://www.nosqlnotes.net/archives/170。Google MegaStore通过为用户提供机制,根据应用特点划分entity group,将事务涉及的数据分布到一台机器上,实现事务。

个人阅读评论:

1,作为科研工作者,很少阅读CSDN,但最近无意中发现CSDN 程序员 第八期的专题就是大数据,不得不佩服 CSDN对技术的敏感性。

2,读了这篇文章,除了标题,内容非常粗糙,缺乏新意,主要就是把K-V Store  和 NoSQL 柔和在了一起,没有掌握大数据的核心思想

3,个人觉得核心,就是存储模式 数据组织 以及 元数据的管理发生了深刻变化, 华人教授 XIAODONG ZHANG提出的RCFile

http://cloud.csdn.net/a/20110429/296900.html   其实提供了大数据组织的思考

4,再就是对大数据核心的 数据挖掘 的 介绍,基本没有,用什么样的算法,什么样的HPC应用来挖掘大数据的价值,是非常值得人思考的。目前大数据方面唯一的论文: Starfish: A self-tuning system for big data analytics  就是提出了一种数据分析的方法

总体上,这篇文章可以扫盲一下,但是实在价值不大,大数据的研究 任道重远,希望同仁们一起努力。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/224697.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月17日 上午11:21
下一篇 2026年3月17日 上午11:21


相关推荐

  • 成都java薪资待遇怎么样?还值得学习吗?

    成都java薪资待遇怎么样?还值得学习吗?成都 java 薪资待遇怎么样 还值得学习吗 2021 年了 成都 java 的薪资待遇怎么样 Java 现在还值得学习吗 每个人的价值观不一样 你先看下图 再考虑值不值得 数据来自职友集 成都 java 开发工程师月平均工资在 12 8k 应届生的平均工资在 5 5k 左右 能力强的在 8 9k 左右工作 1 3 年工作经验的初级 java 工程师在 8k 左右 能力强的在 10 12k 左右工作 3 5 年工作经验的中级 java 工程师在 10k 左右 能力强的在 12 15k 左右工作 5 10 年工作经验的高级

    2026年3月17日
    2
  • 鸿蒙OS架构及关键技术整理

    鸿蒙OS架构及关键技术整理鸿蒙OS架构及关键技术整理一. 鸿蒙OS整体介绍二. 子系统架构三. 关键技术1.分布式架构首次用于终端OS,实现跨终端无缝协同体验2.确定时延引擎和高性能IPC技术实现系统天生流畅3.基于微内核架构重塑终端设备可信安全4.通过统一IDE支撑一次开发,多端部署,实现跨终端生态共享四. 参考资料一. 鸿蒙OS整体介绍HarmonyOS简介原作者:xiangzhihong8前两天,华为发布了HarmonyOS2.0,俺也赶个时髦,给大家简单介绍下HarmonyOS。定义首先,我们来看一下官

    2022年7月12日
    12
  • mysql有多少个端口号_mysql默认端口号(mysql端口号是多少)[通俗易懂]

    mysql默认端口号(mysql端口号是多少)2020-05-0722:14:36共10个回答mysql的默认端口号是多少mysql默认端口号为3306,修改端口号方法:修改配置文件/etc/my.cnfmysql使用的默认端口号是哪个端口mysql的默认端口是3306,可以编辑用户目录下的.my.cnf文件进行修改.sqlserver默认端口号为:1433oracle默认端口号为:1521DB…

    2022年4月18日
    94
  • TinyXML介绍「建议收藏」

    TinyXML介绍「建议收藏」http://www.cnblogs.com/phinecos/archive/2008/03/11/1100912.html读取和设置xml配置文件是最常用的操作,试用了几个C++的XML解析器,个人感觉TinyXML是使用起来最舒服的,因为它的API接口和Java的十分类似,面向对象性很好。TinyXML是一个开源的解析XML的解析库,能够用于C++,能够在Wind

    2022年5月3日
    52
  • AI、游戏双驱动,腾讯「赚麻了」

    AI、游戏双驱动,腾讯「赚麻了」

    2026年3月12日
    2
  • visdom简易教程

    visdom简易教程如果想用pytorch来做神经网络学习和训练,那么不管想不想,你都得学visdom这个可视化工具,因为别人全部用这个玩意在进行可视化显示,如果不会用有时甚至别人的代码都跑不起来。这里这么说似乎显得有点怨念,这是真的,因为本人一开始并不想要去搞它。但后来学着学着发现这真是个神器,难怪那么多人一上来直接要求先装上这个。要用这个先要安装,对于python模块而言,安装都是蛮简单的:pipinsta…

    2022年6月26日
    24

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号