我正在使用 avro 工具从 HDFS 中的 avro 文件生成模式文件,并使用以下命令将其转储到 Linux 文件系统:
hadoop jar /usr/bin/Avro/avro-tools-1.8.1.jar getschema /dw/hpm/ap_drg/ap_drg.avro > usr/bin/StageSchema/ap_drg.avsc
这很好用,可以得到我需要的文件。然而;我希望模式文件位于 HDFS 而不是 Linux 文件系统中。我怎样才能改变这个命令来完成这个?还有其他方法我应该这样做吗?
最佳答案
玩了一会儿,终于想出了一个可行的办法:
hadoop jar /usr/bin/Avro/avro-tools-1.8.1.jar getschema /dw/hpm/ap_drg/ap_drg.avro | hadoop fs -put -f - /dw/schemas/hpm/ap_drg/ap_drg.avsc
这将从 hdfs 上的 Avro 文件中提取 Avro 模式,并写入 hdfs 中的 Avro 模式文件。 -f
将确保任何现有的架构文件都将被覆盖。
关于centos - 生成 Avro Schema 文件并存储在 HDFS 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39667843/