《深入理解Hadoop(原书第2版)》——1.4大数据和事务性系统

本文涉及的产品
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
云原生大数据计算服务 MaxCompute,5000CU*H 100GB 3个月
简介:

本节书摘来自华章计算机《深入理解Hadoop(原书第2版)》一书中的第1章,第1.4节,作者 [美]萨米尔·瓦德卡(Sameer Wadkar),马杜·西德林埃(Madhu Siddalingaiah),杰森·文纳(Jason Venner),译 于博,冯傲风,更多章节内容可以访问云栖社区“华章计算机”公众号查看。

1.4大数据和事务性系统

以大数据作为参照来理解事务概念的发展变化是非常重要的。这个问题的讨论会涉及相应的NoSQL数据库。Hadoop系统使用HBase来作为自己的NoSQL数据存储。你也可以使用Cassandra或者云计算提供商(如Amazon Dynamo)的NoSQL系统来替代。

大多数的RDBMS使用者都要求数据库必须要遵守ACID准则,但是遵守这些准则是有系统代价的。当数据库后台需要处理峰值为每秒数百万次的事务操作的时候,要求苛刻地遵守ACID准则对数据库来说是个巨大的挑战。

ACID是atomicity(原子性)、consistency(一致性)、isolation(隔离性)和durability(持久性)的首字母简写。进一步详细讲解见:http://en.wikipedia.org/wiki/ACID

对苛刻的ACID准则做出妥协是必要的。做出妥协的理论依据就是著名的CAP理论(又称Brewer理论)。CAP理论是下面三点的首字母缩写:

  • Consistency(一致性):在分布式系统中的所有数据备份,在同一时刻有同样的值。
  • Availability(可用性):在合理且明确的时间内,保证每个请求都能获得成功或者失败的结果的响应。
  • Partition tolerance(分区容忍性): 在集群中一部分节点故障后,集群整体仍可使用。
  • 这个理论用来证明,任何分布式系统只能同时满足其中的两个特性,而无法三者兼顾。现在,让我们仔细地思考对比下面列出的各种系统:
  • 一致性和可用性:遵守ACID准则的单机RDBMS是兼顾一致性和可用性的系统的一个例子。但是不满足分区容忍性。如果这个RDBMS当机了,用户将无法访问数据。
  • 一致性和分区容忍性:一个RDBMS集群就是这样的系统。分布式事务保证了所有用户在同一时刻获取到相同的数据(一致性);数据的分布式存储天然地保证在集群部分节点故障的情况下,集群系统仍然可用。可是,分布式事务在满足系统一致性的同时,也有副作用,导致系统无法做到可用性,在两阶段提交事务执行期间,系统是不可用的。一致性限制了系统可以支持的同时执行的事务数量,反过来也影响到了系统的可用性。
  • 可用性和分区容忍性:本类别中这样的系统常常被归类为“最终一致性”系统。考虑一下流行的电子商务网站,比如亚马逊。假如你正在浏览商品目录,发现你需要的商品正好有货。在购买流程中很自然就可以想到,在你发现所需的商品有货并发起了购买请求这段时间内,其他人更早地进入并抢购了商品。所以有必要及时显示最新库存变化。库存变化将会广播到为用户提供服务的集群中的其他所有节点。为了给用户提供库存变化后的最新值,当商品库存变化后的数据在各个节点的传递还没有完成的时候,如果系统阻止了用户的访问,就会使网站丧失可用性,从而影响交易量。为了系统可用性和分区容忍性而牺牲系统一致性,我们选择这个折中来使多个节点为用户显示相同的数据(在一个小的时间窗内,用户看到的数据可能是不同的,这个时间窗的大小取决为用户提供服务的那个节点)。

如何做出折中选择,在大数据系统设计的时候是非常关键的。本书的主题MapReduce只是大数据生态环境中的一个组件。它常常与其他类似HBase这样的产品搭配使用,在选择不同产品配合使用的时候,在本章讲解的这些权衡中做出选择,是解决方案是否可行的关键。

相关实践学习
基于MaxCompute的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
相关文章
|
1月前
|
传感器 人工智能 大数据
高科技生命体征探测器、情绪感受器以及传感器背后的大数据平台在健康监测、生命体征检测领域的设想与系统构建
本系统由健康传感器、大数据云平台和脑机接口设备组成。传感器内置生命体征感应器、全球无线定位、人脸识别摄像头等,搜集超出现有科学认知的生命体征信息。云平台整合大数据、云计算与AI,处理并传输数据至接收者大脑芯片,实现实时健康监测。脑机接口设备通过先进通讯技术,实现对健康信息的实时感知与反馈,确保身份验证与数据安全。
|
4月前
|
分布式计算 Kubernetes Hadoop
大数据-82 Spark 集群模式启动、集群架构、集群管理器 Spark的HelloWorld + Hadoop + HDFS
大数据-82 Spark 集群模式启动、集群架构、集群管理器 Spark的HelloWorld + Hadoop + HDFS
241 6
|
1月前
|
存储 分布式计算 Hadoop
基于Java的Hadoop文件处理系统:高效分布式数据解析与存储
本文介绍了如何借鉴Hadoop的设计思想,使用Java实现其核心功能MapReduce,解决海量数据处理问题。通过类比图书馆管理系统,详细解释了Hadoop的两大组件:HDFS(分布式文件系统)和MapReduce(分布式计算模型)。具体实现了单词统计任务,并扩展支持CSV和JSON格式的数据解析。为了提升性能,引入了Combiner减少中间数据传输,以及自定义Partitioner解决数据倾斜问题。最后总结了Hadoop在大数据处理中的重要性,鼓励Java开发者学习Hadoop以拓展技术边界。
50 7
|
2月前
|
存储 分布式计算 大数据
Flume+Hadoop:打造你的大数据处理流水线
本文介绍了如何使用Apache Flume采集日志数据并上传至Hadoop分布式文件系统(HDFS)。Flume是一个高可用、可靠的分布式系统,适用于大规模日志数据的采集和传输。文章详细描述了Flume的安装、配置及启动过程,并通过具体示例展示了如何将本地日志数据实时传输到HDFS中。同时,还提供了验证步骤,确保数据成功上传。最后,补充说明了使用文件模式作为channel以避免数据丢失的方法。
86 4
|
3月前
|
存储 分布式计算 Hadoop
数据湖技术:Hadoop与Spark在大数据处理中的协同作用
【10月更文挑战第27天】在大数据时代,数据湖技术凭借其灵活性和成本效益成为企业存储和分析大规模异构数据的首选。Hadoop和Spark作为数据湖技术的核心组件,通过HDFS存储数据和Spark进行高效计算,实现了数据处理的优化。本文探讨了Hadoop与Spark的最佳实践,包括数据存储、处理、安全和可视化等方面,展示了它们在实际应用中的协同效应。
191 2
|
3月前
|
存储 分布式计算 Hadoop
数据湖技术:Hadoop与Spark在大数据处理中的协同作用
【10月更文挑战第26天】本文详细探讨了Hadoop与Spark在大数据处理中的协同作用,通过具体案例展示了两者的最佳实践。Hadoop的HDFS和MapReduce负责数据存储和预处理,确保高可靠性和容错性;Spark则凭借其高性能和丰富的API,进行深度分析和机器学习,实现高效的批处理和实时处理。
185 1
|
4月前
|
分布式计算 Hadoop 大数据
大数据体系知识学习(一):PySpark和Hadoop环境的搭建与测试
这篇文章是关于大数据体系知识学习的,主要介绍了Apache Spark的基本概念、特点、组件,以及如何安装配置Java、PySpark和Hadoop环境。文章还提供了详细的安装步骤和测试代码,帮助读者搭建和测试大数据环境。
121 1
|
4月前
|
SQL 分布式计算 大数据
大数据平台的毕业设计01:Hadoop与离线分析
大数据平台的毕业设计01:Hadoop与离线分析
244 0
|
28天前
|
SQL 数据可视化 大数据
从数据小白到大数据达人:一步步成为数据分析专家
从数据小白到大数据达人:一步步成为数据分析专家
212 92
|
3月前
|
存储 分布式计算 数据挖掘
数据架构 ODPS 是什么?
数据架构 ODPS 是什么?
744 7