我真的不明白hadoop扩展背后的实际原因比RDBMS更好。任何人都可以在细粒度级别解释?这是否与基础数据结构有关?算法
答案 0 :(得分:7)
RDBMS在处理Terabytes&的大量数据方面遇到了挑战。 Peta字节。即使你有独立/廉价磁盘冗余阵列(RAID)&数据粉碎,对于大量数据而言,它不能很好地扩展。您需要非常昂贵的硬件。
修改强> 要回答,为什么RDBMS无法扩展,请查看Overheads of RBDMS。
<强>登录即可。组装日志记录并跟踪所有更改 在数据库结构中会降低性能。记录可能不是 必要性,如果可恢复性不是要求或可恢复性 通过其他方式(例如,网络上的其他站点)提供。
<强>锁定即可。传统的两相锁定会产生相当大的开销 因为对数据库结构的所有访问都由a管理 单独的实体,锁定管理器。
<强>锁存即可。在多线程数据库中,有许多数据结构 必须先锁定才能访问它们。删除它 功能和单线程方法有明显之处 绩效影响。
缓冲管理。主内存数据库系统没有 需要通过缓冲池访问页面,消除一定程度的 每个记录访问的间接。
Hadoop如何处理 ?:
Hadoop是一个免费的,基于Java的编程框架,支持在分布式计算环境中处理大型数据集,该环境可以在商用硬件上运行。它对于存储和存储非常有用。检索大量数据。
这种可扩展性&amp; Hadoop实现存储机制(HDFS)&amp;处理作业(YARN Map reduce jobs)。除了可扩展性之外,Hadoop还提供存储数据的高可用性。
可扩展性,高可用性,大量数据处理(Strucutred数据,非结构化数据,半结构化数据)具有灵活性是Hadoop成功的关键。
数据存储在数千个节点上。通过Map Reduce作业在存储数据的节点上(大多数时间)完成处理。处理前端的数据位置是 Hadoop 成功的关键领域之一。
这已通过名称节点,数据节点和资源经理。
要了解Hadoop如何实现这一目标,您应该访问以下链接:HDFS Architecture ,YARN Architecture和HDFS Federation
仍然RDBMS适用于Giga字节数据的多次写/读/更新和一致的ACID事务。但对处理Tera字节和处理不好Peta字节数据。在一些用例中,具有两个一致性,CAP理论的可用性分区属性的NoSQL很好。
但Hadoop并不适用于ACID属性的实时事务支持。对于带有批处理的商业智能报告很有用 - &#34; 写一次,多次阅读&#34;范例
再看一个相关的SE问题:
答案 1 :(得分:1)
首先,hadoop不是数据库的替代品。
RDBMS标度垂直和hadoop标度水平。
这意味着要将RDBMS扩展两倍,您需要具有双内存,双存储和双CPU的硬件。这是非常昂贵的并且有限制。例如,没有服务器具有10TB的RAM。由于hadoop不同,您不需要昂贵的边缘技术,而是可以使用多个商用服务器协同工作来模拟更大的服务器(有一些限制)。您可以拥有一个分布在多个节点中的10 Tb ram的集群。
其他优点是,必须购买新的更强大的服务器并删除旧服务器,扩展分布式系统只需要在集群中添加新节点。
答案 2 :(得分:0)
上面描述的一个问题是并行的RDBMS需要昂贵的硬件。 Teridata和Netezza需要特殊的硬件。 Greenplum和Vertica可以放在商品硬件上。 (现在,我将像其他所有人一样承认我有偏见。)我已经看到Greenplum每天扫描PB级的信息。 (最后一次,沃尔玛的存储容量达到2.5 PB。)我同时处理Hawq和Impala。他们都需要多出30%的硬件来对结构化数据执行相同的工作。 Hbase的效率较低。
没有魔术的银匙。根据我的经验,结构化和非结构化都有自己的位置。 Hadoop非常适合提取大量数据并进行少量扫描。我们将其用作加载过程的一部分。 RDBMS非常乐意通过高度复杂的查询反复扫描相同的数据。
您始终必须对数据进行结构化以加以利用。这种结构需要花费一些时间。在将其放入RDBMS之前或在查询时,您需要先进行以太结构。
答案 3 :(得分:-1)
在RDBMS中,数据是结构化的,而不是索引。 检索任何特定“第n”列的数据正在加载整个数据库,然后选择“第n”列。
在Hadoop中,比如Hive,我们只加载整个数据集中的特定列。 更多的数据加载也是通过Map reduce程序完成的,这是在分布式结构中完成的,可以减少总体时间。
因此,使用Hadoop及其工具有两个优点。