通过多线程写入HDFS与使用hbase / hive等选项

时间:2017-02-16 13:13:07

标签: hadoop hive hbase hdfs

我需要以有效的方式使用JAVA API批量写入hadoop系统。 只需在此查看选项。

与使用hbase / hive等选项相比,通过多线程写入HDFS是一项昂贵的操作。

2 个答案:

答案 0 :(得分:1)

Hive和HBase是两种不同的工具。 Hbase是一个数据库,Hive是一个查询引擎。 Hbase与hive和hadoop不同。

现在回答您的问题,您可以使用带有Java API的mapreduce写入HDfS,如果您的程序对您正在处理的数据非常有效。然后map reduce可以比hive更快。 这样做的主要原因是,您在hive中编写的任何查询都会转换为map reduce程序。因此,最重要的是mapreduce程序的效率很重要。因此,如果你能编写一个更好,更有效的程序,那么它可以比hive查询更快。

答案 1 :(得分:-1)

在回答这个问题之前,我认为你对这些概念感到有些困惑。

  

Hadoop:MapReduce + HDFS(分布式文件系统)。

Hive 只是HDFS之上的一层。它根本不是文件系统。将HDFS与Hive进行比较没有意义。

HBase 是一个非关系型数据库,可以在Hadoop之上运行,并为您提供随机数据访问/查询功能。 HDFS本身不支持随机位置的读/写。

引自 Hadoop - 权威指南

  

HDFS是围绕最有效的数据处理理念而构建的   pattern是一次写入,多次读取的模式。数据集是   通常从源生成或复制,然后进行各种分析   随着时间的推移在该数据集上执行。每个分析都涉及一个   如果不是全部,数据集的比例很大,所以是时候阅读了   整个数据集比读取第一个数据集的延迟更重要   记录。

我认为这篇文章(Introduction to Hadoop HDFS)对您非常有帮助。

为了更进一步尝试回答您的问题,HBase将数据存储为列数据库中的键/值对。您可以将Hbase视为Hadoop环境的扩展,它允许您快速读/写数据。它将数据存储在HDFS中。

一些功能:

  1. 从大型数据集中对少量数据进行低延迟访问。您可以从十亿行表中快速访问单行。
  2. 使用灵活的数据模型,数据由行键索引。
  3. 快速扫描表格。
  4. <强> 4。根据写入和数据总量进行扩展。

相关问题