编译脚本如下:
#!/bin/bash
mvn package -Pdist,native,nexus -DskipTests=true -Dmaven.javadoc.skip=true -Dtar -Dcontainer-executor.conf.dir=/etc/hadoop/ -Drequire.snappy -Dbundle.snappy -Dsnappy.lib=/opt/develop/snappy/lib -Dsnappy.prefix=/opt/develop/snappy -Drequire.openssl -Dbundle.openssl -Dopenssl.lib=/opt/develop/openssl/lib -Dopenssl.prefix=/opt/develop/openssl -Drequire.bzip2=true -Dzstd.prefix=/opt/develop/zstd -Dzstd.lib=/opt/develop/zstd/lib -Dbundle.zstd -Drequire.zstd -Disal.prefix=/opt/develop/isal -Drequire.isal=true -Dbundle.isal -Disal.lib=/opt/develop/isal/lib
可以将上述脚本放置到一个脚本文件中,然后执行脚本文件即可,例如以下脚本文件:
make-tarball.sh
若使用jdk11编译hadoop3.2.1的源码,可能会报相应的javah找不到,这是因为在hadoop3.2.1的源码中,暂时对jdk11还不支持,需要将报错的模块的pom文件找到,然后,将相应的寻找javah的地方,目录直接指定为相应的jdk8中的位置即可。
ps:在hadoop3.3.0中,已经支持了jdk11
本文介绍了一个用于编译Hadoop的bash脚本,并说明了如何解决使用jdk11编译hadoop3.2.1源码时遇到的问题。对于hadoop3.3.0及以后的版本,已经支持jdk11。

857

被折叠的 条评论
为什么被折叠?



