Hadoop:查询/读取Avro文件

时间:2017-05-14 12:43:54

标签: java hadoop hdfs avro apache-nifi

我正在存储从复杂JSON对象导入到Avro格式的数据。

JSON对象由具有嵌套对象和对象数组的对象表示。 Avro Schema看起来像这样:

{
    "type" : "record",
    "name" : "userInfo",
    "namespace" : "my.example",
    "fields" : [{"name" : "username", 
                 "type" : "string", 
                 "default" : "NONE"},

                {"name" : "age", 
                 "type" : "int",
                 "default" : -1},

                 {"name" : "phone", 
                  "type" : "string", 
                  "default" : "NONE"},

                 {"name" : "housenum", 
                  "type" : "string", 
                  "default" : "NONE"},

                  {"name" : "address", 
                   "type" : {
                         "type" : "record",
                         "name" : "mailing_address",
                         "fields" : [
                            {"name" : "street", 
                             "type" : "string", 
                             "default" : "NONE"},

                            {"name" : "city", 
                             "type" : "string", 
                             "default" : "NONE"},

                            {"name" : "state_prov", 
                             "type" : "string", 
                             "default" : "NONE"},

                            {"name" : "country", 
                             "type" : "string", 
                             "default" : "NONE"},

                            {"name" : "zip", 
                             "type" : "string", 
                             "default" : "NONE"}
                          ]},
                          "default" : {}
                }
    ]
} 

我使用NiFi将JSON转换为Avro并将序列化文件存储在Hadoop中(目前我只使用纯Hadoop): enter image description here

我的问题:

出于测试目的,我想查询存储HDFS(Avro格式)的数据。

所以在这一点上我有点困惑,因为围绕Hadoop的很多工具和技术.. 我怎么能以正确的方式做到这一点?什么工具和工作流程?

1 个答案:

答案 0 :(得分:2)