Cheng Li created BEAM-11231:
-------------------------------

             Summary: Better support for Hadoop native libs and compression 
codecs in Java Dataflow batch worker
                 Key: BEAM-11231
                 URL: https://issues.apache.org/jira/browse/BEAM-11231
             Project: Beam
          Issue Type: Improvement
          Components: io-java-gcp, io-java-hadoop-file-system, 
io-java-hadoop-format, io-java-hbase, runner-dataflow
    Affects Versions: 2.24.0
            Reporter: Cheng Li


Current(as of Beam SDK 2.24.0) Java Dataflow workers does not ship with [Hadoop 
native 
library|https://hadoop.apache.org/docs/r2.8.5/hadoop-project-dist/hadoop-common/NativeLibraries.html]
 and popular native compression codecs(e.g libsnappy) .

If one try to read files using IO classes that assume native library 
support(e.g, org.apache.hadoop.hbase.mapreduce.TableSnapshotInputFormat) on GCP 
Dataflow, the following error will be throw if the file is compressed by snappy:

 

```

java.io.IOException: Failed to start reading from source: 
org.apache.beam.sdk.io.hadoop.format.HadoopFormatIO$HadoopInputFor
 matBoundedSource@311fa603

...

Caused by: org.apache.hadoop.hbase.DoNotRetryIOException: 
java.lang.RuntimeException: native snappy library not available: this version 
of libhadoop was built without snappy support.
  
 ```

There is very little one can do from within pipeline job code unless rewriting 
the IO class, so it might make sense to include these native libraries for 
Hadoop IOs



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to