Sqoop:Avro 与 Gzip 编解码器失败
Sqoop: Avro with Gzip Codec failing
当尝试使用带有 --as-avrodatafile 和 GzipCodec 的 Sqoop 将表导入 HDFS 时,失败并出现以下异常,我是 运行 这个 CDH7 Cloudera quickstart docker image
是否存在我们无法将 Gzip 与 Avro 一起使用的原因,或者是缺少某些配置导致了这种情况。
注意:Gzip 在没有 --as-avrodatafile 开关的情况下可以工作
Error: org.apache.avro.AvroRuntimeException: Unrecognized codec: gzip
at org.apache.avro.file.CodecFactory.fromString(CodecFactory.java:102)
at org.apache.sqoop.mapreduce.AvroOutputFormat.configureDataFileWriter(AvroOutputFormat.java:63)
at org.apache.sqoop.mapreduce.AvroOutputFormat.getRecordWriter(AvroOutputFormat.java:102)
at org.apache.hadoop.mapred.MapTask$NewDirectOutputCollector.<init>(MapTask.java:647)
at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:767)
at org.apache.hadoop.mapred.MapTask.run(MapTask.java:341)
at org.apache.hadoop.mapred.YarnChild.run(YarnChild.java:164)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:415)
at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1693)
at org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:158)
来自 Avro CodecFactory
/** Maps a codec name into a CodecFactory.
*
* Currently there are five codecs registered by default:
* <ul>
* <li>{@code null}</li>
* <li>{@code deflate}</li>
* <li>{@code snappy}</li>
* <li>{@code bzip2}</li>
* <li>{@code xz}</li>
* </ul>
*/
因此 sqoop 中的其他输出格式支持 gzip,但 avro 不支持。
当尝试使用带有 --as-avrodatafile 和 GzipCodec 的 Sqoop 将表导入 HDFS 时,失败并出现以下异常,我是 运行 这个 CDH7 Cloudera quickstart docker image
是否存在我们无法将 Gzip 与 Avro 一起使用的原因,或者是缺少某些配置导致了这种情况。
注意:Gzip 在没有 --as-avrodatafile 开关的情况下可以工作
Error: org.apache.avro.AvroRuntimeException: Unrecognized codec: gzip
at org.apache.avro.file.CodecFactory.fromString(CodecFactory.java:102)
at org.apache.sqoop.mapreduce.AvroOutputFormat.configureDataFileWriter(AvroOutputFormat.java:63)
at org.apache.sqoop.mapreduce.AvroOutputFormat.getRecordWriter(AvroOutputFormat.java:102)
at org.apache.hadoop.mapred.MapTask$NewDirectOutputCollector.<init>(MapTask.java:647)
at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:767)
at org.apache.hadoop.mapred.MapTask.run(MapTask.java:341)
at org.apache.hadoop.mapred.YarnChild.run(YarnChild.java:164)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:415)
at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1693)
at org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:158)
来自 Avro CodecFactory
/** Maps a codec name into a CodecFactory.
*
* Currently there are five codecs registered by default:
* <ul>
* <li>{@code null}</li>
* <li>{@code deflate}</li>
* <li>{@code snappy}</li>
* <li>{@code bzip2}</li>
* <li>{@code xz}</li>
* </ul>
*/
因此 sqoop 中的其他输出格式支持 gzip,但 avro 不支持。