如何在 Hadoop HDFS 中管理 JSON

How to manage JSON in Hadoop HDFS

Hadoop如何HDFS管理JSON个文件?

假设一些 JSON 文件存储在 HDFS 中,并且这些 JSON 中的每一个都与其他文件不同,我想输出一个 JSON 通过询问。喜欢MongoDB.

例如,我给你看这个伪代码:

FOR EACH json IN hdfs:
    name = json.NAME
    IF json HAS this_attribute:
        x = json.this_attribute.value

CREATE A CSV THAT CONTAINS ALL INFO REQUIRED (name, x)

RETURN CSV

在 MongoDB 中,生成此输出是最容易的。但我参与的项目中 无法使用 MongoDB

我认为与 HDFS 一起使用的最简单的工具是 spark。它为您提供了许多丰富的工具,包括许多丰富的文件格式,这些文件格式比将文本信息存储为文本、CSV 或 JSON 的性能要好得多。我建议您在处理大数据时研究使用非文本文件格式。

Hadoop/HDFS 除了放置块之外不“管理”任何文件。

如果你想运行查询数据,你需要使用Hive、Presto、Drill、Spark、Flink等工具,或者你可以改变你的文件上传过程写入HBase .

each of these JSONs is different from the others

大多数查询工具更喜欢半结构化数据,因此 JSON 的键最好相似。如果你真的需要存储随机 JSON 对象,那么最好使用像 Mongo 这样的文档数据库。 (Hadoop 不是 Mongo 的替代品)