图像存在hadoop比在mysql中_比较SQL数据库和Hadoop

鉴于Hadoop是一个数据处理框架,而在当前大多数应用中数据处理的主力是标准的关系数据库,那又是什么使得Hadoop更具优势呢?其中一个原因是,SQL(结构化查询语言)是针对结构化数据设计的,而Hadoop最初的许多应用针对的是文本这种非结构化数据。从这个角度来看,Hadoop比SQL提供了一种更为通用的模式。

若只针对结构化数据处理,则需要做更细致的比较。原则上,SQL和Hadoop可以互补,因为SQL是一种查询语言,它可将Hadoop作为其执行引擎 。但实际上,SQL数据库往往指代一整套传统技术,有几个主要的厂商,并面向一组历史悠久的应用进行优化。许多这些现有的商业数据库无法满足Hadoop设计所面向的需求。

考虑到这一点,让我们从特定视角将Hadoop与典型的SQL数据库做更详细的比较。

1. 用向外扩展代替向上扩展

扩展商用关系型数据库的代价是非常昂贵的。它们的设计更容易向上扩展。要运行一个更大的数据库,就需要买一个更大的机器。事实上,往往会看到服务器厂商在市场上将其昂贵的高端机标称为“数据库级的服务器”。不过有时可能需要处理更大的数据集,却找不到一个足够大的机器。更重要的是,高端的机器对于许多应用并不经济。例如,性能4倍于标准PC的机器,其成本将大大超过将同样的4台PC放在一个集群中。Hadoop的设计就是为了能够在商用PC集群上实现向外扩展的架构。添加更多的资源,在Hadoop集群上意味着增加更多的机器。一个Hadoop集群的标配是十至数百台计算机。事实上,如果不是为了开发目的,没有理由在单个服务器上运行Hadoop。

2. 用键/值对代替关系表

关系数据库的一个基本原则是让数据按某种模式存放在具有关系型数据结构的表中。虽然关系模型具有大量形式化的属性,许多当前的应用所处理的数据类型并不能很好地适合这个模型。文本、图片和XML文件是最典型的例子。此外,大型数据集往往是非结构化或半结构化的。Hadoop使用键/值对作为基本数据单元,可足够灵活地处理较少结构化的数据类型。在Hadoop中,数据的来源可以有任何形式,但最终会转化为键/值对以供处理。

3. 用函数式编程(MapReduce)代替声明式查询(SQL)

SQL从根本上说是一个高级声明性语言。查询数据的手段是,声明想要的查询结果并让数据库引擎判定如何获取数据。在MapReduce中,实际的数据处理步骤是你指定的,这更类似于SQL引擎的一个执行计划。SQL使用查询语句,而MapReduce则使用脚本和代码。MapReduce允许你采用比SQL查询更为一般化的数据处理方式。例如,你可以建立复杂的数据统计模型,或者改变图像数据的格式。而SQL就不能很好地适应这些任务。

另一方面,当数据处理非常适合于关系型数据结构时,有些人可能会发现使用MapReduce并不自然。那些习惯于SQL范式的人可能会发现用MapReduce来思考是一个挑战。我希望本书中的练习和示例能帮你更轻松地掌握MapReduce编程。不过值得注意的是,这里还有很多扩展可用,它们允许人们采用更熟悉的范式来编程,同时拥有Hadoop的可扩展性优势。事实上,一些扩展会允许你使用一种类似SQL的查询语言,并自动将查询编译为可执行的MapReduce代码。我们将在第10章和第11章介绍其中的一些工具。

4. 用离线批量处理代替在线处理

Hadoop是专为离线处理和大规模数据分析而设计的,它并不适合那种对几个记录随机读写的在线事务处理模式。事实上,在本书写作时(以及在可预见的未来),Hadoop最适合一次写入、多次读取的数据存储需求。在这方面它就像SQL世界中的数据仓库。

你已经从宏观上看到Hadoop与分布式系统和SQL数据库之间的关系。那么,让我们开始学习如何用它来编程。为此,我们首先需要了解Hadoop中MapReduce的范式。

摘自《Hadoop实战》

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/358929.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

搭建xss-platform平台

这篇更详细,对蓝莲花的XSS有更详细的说明 https://blog.csdn.net/weixin_50464560/article/details/115360092 https://bbs.secgeeker.net/thread-1519-1-1.html 搭建xss-platform平台 一直想搭在公网搭建自己的XSS平台用来验证XSS漏洞,使用别人的平台…

如何获取电脑网站(手机网站)支付宝支付的配置信息(appid、商户私钥、支付宝公钥)

需求:想在网站接入支付宝支付。现在的网站基本分为PC端和手机端。 明确工作目标:appid、商户私钥、支付宝公钥以及回调地址。 电脑PC端支付宝支付获取配置信息步骤如下: 1.登录支付宝开放平台 (传送门),使用企业认证的支付宝账户或者个人认证的支付宝账号扫码登录。…

get--ip

public string GetIp() { Regex reg1 new Regex("(\\d).(\\d).(\\d).(\\d)"); return reg1.Replace(GetRealIp, "*.$2.$3.$4"); } /// <summary> /// 获取用户的IP地址 /// </summary> public string GetRealIp…

9针串口定义测试方法_一些定义–测试技术9

9针串口定义测试方法我认为我即将结束有关测试技术的博客系列&#xff0c;感觉好像已经过去了。 对我来说更清楚的一件事是&#xff0c;测试方法仍处于起步阶段&#xff0c;因此是开发人员之间争执或讨论的明确来源&#xff0c;这是一件好事。 我怀疑我们正处于职业发展史上的某…

ubuntu下c 访问mysql_Ubuntu下用C语言访问MySQL数据库

在Ubuntu下费了好长时间终于让C操作MySQL成功了&#xff0c;在此把方法记下来&#xff0c;留着以后用。先安装MySQL 代码: sudo apt-get install mysql在Ubuntu下费了好长时间终于让C操作MySQL成功了&#xff0c;在此把方法记下来&#xff0c;留着以后用。先安装MySQL代码:sudo…

HTML5新增的主体结构元素

article元素section元素nav元素aside元素time元素与微格式pubdate属性 1.article元素 代码片段: <!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><title>HTML学习计划</title> </head> …

在Eclipse中使用JUnit4进行单元测试(图文教程一)

在Eclipse中使用JUnit4进行单元测试 单元测试&#xff0c;JUnit4。 这两个有什么关系呢&#xff1f;这就好比&#xff08;草&#xff09;单元测试和&#xff08;割草机&#xff09;。用这个JUnit4工具去辅助我们进行测试。其实不理解这个也没关系&#xff0c;听多了见多了用多了…

Java 9和Project Jigsaw如何破坏您的代码

Java 9迫在眉睫&#xff0c;它将带有完整的Project Jigsaw 。 在我从OpenJFX邮件列表的最近讨论中得知它可能会破坏现有代码之前&#xff0c;我并没有对此给予太多关注。 这对于Java非常不寻常&#xff0c;因此引起了我的兴趣。 我阅读了该项目的JEP和一些相关文章&#xff0c…

php一句话后门学习(含免杀)

php一句话后门 开发很久的可利用函数 eval和assert php任意代码执行的一句话后门&#xff0c;我们喜欢用的是传统的eval&#xff0c;php5&#xff0c;7通用。 <?php eval($_POST[a]) ?>但由于eval不能拆分&#xff0c;早期也有人喜欢用assert&#xff0c;这样通过编…

mysql 表结构 增删改查_mysql学习【第3篇】:数据库之增删改查操作

注意的几点&#xff1a;1.如果你在cmd中书命令的时候&#xff0c;输入错了就用\c跳出2.\s查看配置信息一、操作文件夹(库)增&#xff1a;create database db1 charset utf8;删&#xff1a;drop database db1;改&#xff1a;alter database db1 charset gbk;查&#xff1a;show …

HTML5的非主体结构元素(header、footer、hgroup、assress)

header元素footer元素hgroup元素address元素网页编排规则 1.header元素 代码演示: <!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><title>header元素</title> </head> <body> &l…

Oracle 基础 —SQL语句优化的途径

一&#xff1a;SQL语句的优化途径 1.选择合适的Oracle优化器 (1).RBO 基于规则进行优化的优化器 --Oracle 10G 后被抛掉 (2).CBO基于成本(CPU 和 内存的占用率)优化的优化器 --优化器使用的模式根据目标而定 CBO 的优化模式&#xff1a; Rule:基于规则 Choose:默认&#xff…

DVWA通关教程(上)

简介&#xff1a; DVWA是一款基于PHP和mysql开发的web靶场练习平台&#xff0c;集成了常见的web漏洞如sql注入,xss&#xff0c;密码破解等常见漏洞。本教程将以DVWA为例&#xff0c;演示常见的web漏洞的利用和攻击。 登录创建数据库&#xff08;账号为admin&#xff0c;密码为…

HTML5表单新增元素与属性(form、formaction、formmethod、formenctype、formtarget、autofous、required、labels)

表单内元素的form属性表单内元素的formaction属性​​​​​​​表单内元素的formmethod属性​​​​​​​表单内元素的formenctype属性​​​​​​​表单内元素的formtarget属性​​​​​​​表单内元素的autofous属性​​​​​​​表单内元素的required属性​​​​​​​…

python getostime_Python os.getrandom()用法及代码示例

Python中的OS模块提供了与操作系统进行交互的功能。操作系统属于Python的标准实用程序模块。该模块提供了使用依赖于操作系统的功能的便携式方法。os.getrandom()方法用于生成适合加密使用的大小随机字节的字符串&#xff0c;或者可以说此方法生成包含随机字符的字符串。它也可…

2048

最近用WPF写了款2048的小游戏&#xff0c;最早接触这款游戏是在手游上&#xff0c;觉得蛮好的&#xff0c;于是就用WPF实现了下&#xff0c;界面运行流畅&#xff0c;操作便捷&#xff0c;虽说程序在可玩度上还稍有欠缺&#xff0c;不过这也是WPF在游戏开发中的一个新篇章 程序…

表单新增元素与属性(control、placehoulder、list、AutoComplete、pattern、SelectionDirection、indeterminate属性)

标签的control属性文本框的placehoulder属性文本框的list属性文本框的AutoComplete属性文本框的pattern属性文本框的SelectionDirection属性复选框的indeterminate属性image提交按钮的height属性与width属性1.标签的control属性 代码演示: <!DOCTYPE html> <html la…

jboss7.0.2_JBoss AS 7.0.2“ Arc”发布–使用绑定选项

jboss7.0.2有关JBoss AS7方面的更多好消息。 JBoss AS 7.0.2.Final“ Arc”已经发布&#xff01; 自AS 7.0.1发布以来已经过去了一个月。 在这短时间内&#xff0c;修复了许多错误&#xff0c;并实现了更多功能和改进。 所有这些错误修复和功能已包含在此7.0.2版本中。 此新版…

DVWA通关教程(中)

不安全的验证码&#xff08;Insecure CAPTCHA&#xff09; Insecure CAPTCHA(不安全的验证码)主要是绕过验证码的安全验证&#xff0c;一般都有逻辑漏洞。 难度&#xff08;low&#xff09; 审计代码 <?phpif( isset( $_POST[ Change ] ) && ( $_POST[ step ] 1 …

UVa 208 Firetruck【回溯】

题意&#xff1a;给出一个n个节点的无向图&#xff0c;以及某个节点k&#xff0c;按照字典序从小到大输出从节点1到节点k的所有路径 看的题解 http://blog.csdn.net/hcbbt/article/details/9755147 因为节点数很少&#xff08;小于20&#xff09;&#xff0c;所以可以先用floyd…