任何机构都可以向我解释Hadoop中的索引过程是什么意思。它是否类似于我们在 RDBMS 中所做的传统数据索引,因此在 Hadoop 中进行相同的类比,我们索引数据块并将块的物理地址存储在某些数据结构中。所以这将是集群中的一个额外空间。
用谷歌搜索这个话题,但没有得到任何令人满意和详细的东西。任何指针都会有所帮助。
提前致谢
小智 5
Hadoop 将数据存储在文件中,并且不索引它们。为了找到一些东西,我们必须运行一个 MapReduce 作业来处理所有数据。当数据对于数据库来说太大时,Hadoop 是高效的。对于非常大的数据集,重新生成索引的成本非常高,您无法轻松索引更改数据。
但是,我们可以使用两种类型在 HDFS 中使用索引。基于文件的索引和基于 InputSplit 的索引。假设我们有 2 个文件要存储在 HDFS 中进行处理。第一个是 500 MB,第二个是大约 250 MB。因此,我们将在第一个文件上有 4 个 128MB 的 InputSplits,在第二个文件上有 3 个 InputSplits。对于上述情况,我们可以应用 2 种类型的索引 - 1. 使用基于文件的索引,您将得到 2 个文件(此处设置完整数据),这意味着您的索引查询将等同于完整扫描查询 2. 使用 InputSplit基于索引,您将得到 4 个 InputSplits。性能肯定比做全扫描查询要好。
现在,为了实现 InputSplits 索引,我们需要执行以下步骤:
有关代码示例和其他详细信息,请参阅此 -
https://hadoopi.wordpress.com/2013/05/24/indexing-on-mapreduce-2/