如何通过HTTP或Java API从HDFS获取具体的键/值?

ybzsozfc  于 2022-09-20  发布在  Java
关注(0)|答案(1)|浏览(298)

如何通过HTTP或Java API从远程客户端获取HDFS中一个或多个密钥的值?例如,下面的文件有一百万个键和值。我只想知道“手机”和“玩具”钥匙的价值。

我的文件:

  1. book, 5
  2. notebook, 5
  3. phone, 3
  4. toys, 2
  5. .
  6. .
  7. .
ct3nt3jp

ct3nt3jp1#

HDFS是数据块存储,而不是密钥值存储。

如果您需要这样的查询,您可以选择Acumulo、HBase或Have(外加Presto/Trino、Drill、Spark等变体)。

否则,您必须读取整个文件,然后遍历每一行,查找这些值。考虑到HDFS文件可能有几GB大小,并且您不应该为了简单的KV查找而通过HTTP/RPC传输GB的数据,这并不理想。相反,您可以使用MapReduce或Spark将文件读取为2列CSV文件,但同样,这将迭代和解析所有行,而不是可索引的查找表。

或者,使用数据或将数据转储到传统数据库中,您可以查询特定值

相关问题