[ 
https://issues.apache.org/jira/browse/HADOOP-17125?focusedWorklogId=492567&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-492567
 ]

ASF GitHub Bot logged work on HADOOP-17125:
-------------------------------------------

                Author: ASF GitHub Bot
            Created on: 29/Sep/20 17:20
            Start Date: 29/Sep/20 17:20
    Worklog Time Spent: 10m 
      Work Description: steveloughran commented on pull request #2297:
URL: https://github.com/apache/hadoop/pull/2297#issuecomment-700859880


   Having checked up on those dependencies myself, yes, we are already shipping 
snappy-java 1.0.5 as a dependency of hadoop-common, by way of avro. Which makes 
a strong case for keeping the snappy codec in hadoop-common, declaring the 
snappy dependency as a compile time dependency, with the version we choose. 
This ensures hbase &c pick it up, and, because it is there: we aren't creating 
any more complications for people downstream than they get today.
   
   @saintstack happy with that?
   
   In which case, we actually go to the earlier patches, which just switch the 
codec to using the native one, and the pom changes to import it. Plus a release 
note 'you don't need native snappy no more'.
   
   We could stay with the current code, which is resilient to someone removing 
the JAR. 
   Good: resilient
   bad: doesn't work so well if things (hadoop-client?) shade the snappy jar 
references. 
   
   I don't know what to do there. Given the code is written, I'd go for "merge 
it as is and see what happens", but the "go back to the minimal binding" could 
well have lower maintenance costs down the line


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
[email protected]


Issue Time Tracking
-------------------

    Worklog Id:     (was: 492567)
    Time Spent: 20h 10m  (was: 20h)

> Using snappy-java in SnappyCodec
> --------------------------------
>
>                 Key: HADOOP-17125
>                 URL: https://issues.apache.org/jira/browse/HADOOP-17125
>             Project: Hadoop Common
>          Issue Type: New Feature
>          Components: common
>    Affects Versions: 3.3.0
>            Reporter: DB Tsai
>            Priority: Major
>              Labels: pull-request-available
>          Time Spent: 20h 10m
>  Remaining Estimate: 0h
>
> In Hadoop, we use native libs for snappy codec which has several 
> disadvantages:
>  * It requires native *libhadoop* and *libsnappy* to be installed in system 
> *LD_LIBRARY_PATH*, and they have to be installed separately on each node of 
> the clusters, container images, or local test environments which adds huge 
> complexities from deployment point of view. In some environments, it requires 
> compiling the natives from sources which is non-trivial. Also, this approach 
> is platform dependent; the binary may not work in different platform, so it 
> requires recompilation.
>  * It requires extra configuration of *java.library.path* to load the 
> natives, and it results higher application deployment and maintenance cost 
> for users.
> Projects such as *Spark* and *Parquet* use 
> [snappy-java|[https://github.com/xerial/snappy-java]] which is JNI-based 
> implementation. It contains native binaries for Linux, Mac, and IBM in jar 
> file, and it can automatically load the native binaries into JVM from jar 
> without any setup. If a native implementation can not be found for a 
> platform, it can fallback to pure-java implementation of snappy based on 
> [aircompressor|[https://github.com/airlift/aircompressor/tree/master/src/main/java/io/airlift/compress/snappy]].



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

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to