Java 为什么要使用Hadoop?

Java 为什么要使用Hadoop?,java,hadoop,Java,Hadoop,我对Hadoop的用法有点困惑。我不知道何时何地使用Hadoop Hadoop是一个开源框架,允许存储和处理 跨计算机集群的分布式环境中的大数据 使用简单的编程模型。它被设计成从 单个服务器连接到数千台机器,每台机器都提供本地 计算和存储 根据定义,这项工作也由其他数据库完成,如Oracle、MSSQL等,即跨集群存储和处理数据。那么使用Hadoop还有什么好处呢?Hadoop基本上是一个分布式文件系统HDFS-它允许您在机器云中存储大量文件数据,处理数据冗余等 在这个分布式文件系统之上,Had

我对Hadoop的用法有点困惑。我不知道何时何地使用Hadoop

Hadoop是一个开源框架,允许存储和处理 跨计算机集群的分布式环境中的大数据 使用简单的编程模型。它被设计成从 单个服务器连接到数千台机器,每台机器都提供本地 计算和存储


根据定义,这项工作也由其他数据库完成,如Oracle、MSSQL等,即跨集群存储和处理数据。那么使用Hadoop还有什么好处呢?

Hadoop基本上是一个分布式文件系统HDFS-它允许您在机器云中存储大量文件数据,处理数据冗余等

在这个分布式文件系统之上,Hadoop提供了一个API来处理所有存储的数据—Map Reduce。 其基本思想是,由于数据存储在多个节点中,因此最好以分布式方式处理数据,每个节点都可以处理存储在其中的数据,而不是花费大量时间在网络上移动数据

与可以实时查询的RDM不同,map reduce过程需要时间,不会立即产生结果

在这个基本方案的基础上,您可以构建一个列数据库,如HBase。 列数据库基本上是一个哈希表,允许对行进行实时查询

据我所知,有很多不同之处。请阅读下面的差异

Hadoop不是一个数据库。Hbase或Impala可能被视为数据库,但Hadoop只是一个具有内置冗余、并行性的文件系统hdfs。 传统的数据库/RDBMS具有酸性属性——原子性、一致性、隔离性和持久性。这些都不是Hadoop的现成功能。因此,如果你必须编写代码从一个银行账户取钱并存入另一个银行账户,你必须痛苦地编写所有场景,比如如果钱被取出,但在转移到另一个账户之前发生了故障。 Hadoop以与RDBMS相当的极低成本提供了大规模的处理能力和存储。 Hadoop提供了巨大的并行处理能力。您可以并行运行作业来处理大量数据。 有些人认为传统的数据库不能很好地处理非结构化数据,但它并没有那么简单。有许多应用程序是使用传统的RDBMS构建的,它们使用了大量的非结构化数据或视频文件或PDF,而我遇到的这些应用程序工作得很好。 通常,RDBMS将管理其缓存中的大量数据,以加快处理速度,同时保持跨会话的读取一致性。我认为Hadoop在使用内存缓存处理数据方面做得更好,而不提供任何其他项目,如读取一致性。 配置单元SQL几乎总是比在传统数据库中运行的SQL慢一个数量级。所以,如果您认为配置单元中的SQL比数据库中的SQL快,那么您会感到非常失望。对于复杂的分析,它根本无法扩展。 Hadoop非常适合于并行处理问题——比如在一大组文档中查找一组关键字——此操作可以并行化。然而,对于可比较的数据集,RDBMS的实现通常会更快。
Hadoop基本上是一个分布式文件系统HDFS——它允许您在机器云中存储大量文件数据,处理数据冗余等

在这个分布式文件系统之上,Hadoop提供了一个API来处理所有存储的数据—Map Reduce。 其基本思想是,由于数据存储在多个节点中,因此最好以分布式方式处理数据,每个节点都可以处理存储在其中的数据,而不是花费大量时间在网络上移动数据

与可以实时查询的RDM不同,map reduce过程需要时间,不会立即产生结果

在这个基本方案的基础上,您可以构建一个列数据库,如HBase。 列数据库基本上是一个哈希表,允许对行进行实时查询

据我所知,有很多不同之处。请阅读下面的差异

Hadoop不是一个数据库。Hbase或Impala可能被视为数据库,但Hadoop只是一个具有内置冗余、并行性的文件系统hdfs。 传统的数据库/RDBMS具有酸性属性——原子性、一致性、隔离性和持久性。这些都不是Hadoop的现成功能。因此,如果你必须编写代码从一个银行账户取钱并存入另一个银行账户,你必须痛苦地编写所有场景,比如如果钱被取出,但在转移到另一个账户之前发生了故障。 Hadoop以与RDBMS相当的极低成本提供了大规模的处理能力和存储。 Hadoop提供了巨大的并行处理能力。您可以并行运行作业来处理大量数据 . 有些人认为传统的数据库不能很好地处理非结构化数据,但它并没有那么简单。有许多应用程序是使用传统的RDBMS构建的,它们使用了大量的非结构化数据或视频文件或PDF,而我遇到的这些应用程序工作得很好。 通常,RDBMS将管理其缓存中的大量数据,以加快处理速度,同时保持跨会话的读取一致性。我认为Hadoop在使用内存缓存处理数据方面做得更好,而不提供任何其他项目,如读取一致性。 配置单元SQL几乎总是比在传统数据库中运行的SQL慢一个数量级。所以,如果您认为配置单元中的SQL比数据库中的SQL快,那么您会感到非常失望。对于复杂的分析,它根本无法扩展。 Hadoop非常适合于并行处理问题——比如在一大组文档中查找一组关键字——此操作可以并行化。然而,对于可比较的数据集,RDBMS的实现通常会更快。
分发数据和计算。本地数据的计算可以防止网络过载。任务是独立的,因此很容易处理部分故障。在这里,整个节点可能会出现故障并重新启动


它避免了故障和容错同步分布式系统的爬行恐怖。理想情况下的线性扩展。它曾经设计廉价的商品硬件。简单的编程模型。最终用户程序员只编写map reduce任务。

分发数据和计算。本地数据的计算可以防止网络过载。任务是独立的,因此很容易处理部分故障。在这里,整个节点可能会出现故障并重新启动


它避免了故障和容错同步分布式系统的爬行恐怖。理想情况下的线性扩展。它曾经设计廉价的商品硬件。简单的编程模型。最终用户程序员只编写map reduce任务。

RDBMS无法以经济高效的方式处理大数据。随着数据量的增加,使用垂直可伸缩性技术的RDBMS系统将无法正常工作。在这里,hadoop等大数据处理框架以经济高效的方式运行良好。 大多数大数据处理框架都是开源的,设计用于在商品硬件上运行。因此,与相同设置所需的RDBMS相比,成本将非常低

简单地说,由于数据的大小和复杂性,bigdata从RDBMS停止的地方开始。
另一点是RDBMS主要处理结构化数据。但大多数大数据框架都可以处理结构化、非结构化和半结构化数据。大多数大数据框架设计用于处理任何类型的大数据。

RDBMS无法以经济高效的方式处理大数据。随着数据量的增加,使用垂直可伸缩性技术的RDBMS系统将无法正常工作。在这里,hadoop等大数据处理框架以经济高效的方式运行良好。 大多数大数据处理框架都是开源的,设计用于在商品硬件上运行。因此,与相同设置所需的RDBMS相比,成本将非常低

简单地说,由于数据的大小和复杂性,bigdata从RDBMS停止的地方开始。
另一点是RDBMS主要处理结构化数据。但大多数大数据框架都可以处理结构化、非结构化和半结构化数据。大多数大数据框架都是为处理任何类型的大数据而设计的。

忽略了代码的使用block@manetsus我试图修复它,但对我来说仍然无法读取。代码的使用小姐block@manetsus我试图解决这个问题,但我仍然无法阅读。您可以在以下位置查看Hadoop的用例:您可以在以下位置查看Hadoop的用例: