Centos 生成Avro模式文件并存储在HDFS中

Centos 生成Avro模式文件并存储在HDFS中,centos,hdfs,avro,Centos,Hdfs,Avro,我正在使用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文件系统中。如何更改此命令以完成此操作?我还有别的办法吗 玩了一会

我正在使用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
将确保覆盖任何现有的模式文件。

经过一段时间的反复尝试,最终找到了一些可行的方法:

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
将确保覆盖任何现有架构文件