我需要以有效的方式使用JAVA API批量写入hadoop系统。 只需在此查看选项。
与使用hbase / hive等选项相比,通过多线程写入HDFS是一项昂贵的操作。
答案 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中。
一些功能:
<强> 4。根据写入和数据总量进行扩展。