SequenceFile 作为具有自定义 class 的文本 CLI
SequenceFile as text CLI with custom class
我有一个 SequenceFile
格式的 HDFS 文件。键是 Text
,值是自定义可序列化的 class(比如)MyCustomClass
。我想通过 hadoop fs -text
命令读取此文件,但它失败了,因为 hadoop 不知道 MyCustomClass
定义是什么。
我也尝试了 hdfs dfs - text
命令,但得到了相同的响应。使用 hadoop2.
有没有一种方法可以指定 class(例如通过 jar,例如 -cp myjar.jar
选项)?
您可以使用 -libjars
添加包含自定义可写 class 的 jar。
例如:
hadoop fs -libjars <JAR>.jar -text <DIR>
hadoop fs -libjars my-lib.jar -text output-dir/part-r-*
这将读取序列文件 Key/Value 对并在两个对象上调用 toString() ,在输出到标准输出时将它们分隔开。 -libjars 指定 hadoop 可以在哪里找到您的自定义键/值 类
how-to-parse-customwritable-from-text-in-hadoop
我有一个 SequenceFile
格式的 HDFS 文件。键是 Text
,值是自定义可序列化的 class(比如)MyCustomClass
。我想通过 hadoop fs -text
命令读取此文件,但它失败了,因为 hadoop 不知道 MyCustomClass
定义是什么。
我也尝试了 hdfs dfs - text
命令,但得到了相同的响应。使用 hadoop2.
有没有一种方法可以指定 class(例如通过 jar,例如 -cp myjar.jar
选项)?
您可以使用 -libjars
添加包含自定义可写 class 的 jar。
例如:
hadoop fs -libjars <JAR>.jar -text <DIR>
hadoop fs -libjars my-lib.jar -text output-dir/part-r-*
这将读取序列文件 Key/Value 对并在两个对象上调用 toString() ,在输出到标准输出时将它们分隔开。 -libjars 指定 hadoop 可以在哪里找到您的自定义键/值 类
how-to-parse-customwritable-from-text-in-hadoop