hadoop输入格式二进制或ascii

plicqrtu  于 2021-06-03  发布在  Hadoop
关注(0)|答案(1)|浏览(408)

我想知道是否有人在dfs上存储大文件,然后阅读它的经验;例如,我想有成千上万条记录描述一个对象,它们是它的不同示例。例如,我有以下描述对象的类实现:

class someclass {
    attr1
    attr2
    attr3
    ....
}

这个类是相同的,但我会有不同的示例。在hadoop、二进制类型的存储器(用来编写序列化程序并转储它)或ascii中使用哪个更好,只要随意解析它们就行了?
我还必须提到的是,其中的属性数量可能会改变,并且在将来会有所不同。如果可能的话,我希望避免更新已经在dfs中编写的类示例。

sg2wtvxw

sg2wtvxw1#

使用avro二进制序列化。在这种情况下不能使用同一个类,但它在属性和类型方面看起来是相同的。avro有一个非常灵活的模式支持,它是可拆分的,完全由hadoop支持。
类的架构如下所示:

{"namespace": "your.package.name",
 "type": "record",
 "name": "SomeClass",
 "fields": [
     {"name": "attr1", "type": "YourType1"},
     {"name": "attr2", "type": "YourType2"},
     {"name": "attr3", "type": "YourType3"}
 ]
}

相关问题