2017年在OSX上从源代码构建ApacheHadoop

fsi0uk1n  于 2021-05-29  发布在  Hadoop
关注(0)|答案(4)|浏览(373)

到目前为止,我已经完成了git回购:

https://github.com/apache/hadoop

我一直在四处寻找有关如何从源代码构建的信息,我尝试了以下命令:

mvn package -Pdist -Dtar -DskipTests

导致以下错误:

似乎没有很好的文档记录,有人知道正确的程序吗?
更新:
也尝试了这种方式:
根据这个文件,您需要让protoc为要构建的包工作

brew link --force --overwrite protobuf250

macos依赖项包括:

$ brew install cmake
$ brew install zlib
$ brew install protobuf
$ brew install snappy

但无济于事:

顺便说一句,官方文件是完全没有帮助的-他们基本上说“使用码头集装箱”

s2j5cfk0

s2j5cfk01#

最近我也遇到了这个问题。通过google搜索,我发现这个问题涉及到第三方tls库(openssl)和macos中的本机tls库之间的一些棘手问题。虽然我还没弄清楚这里到底发生了什么。
我的解决方案:
假设您已经通过自制安装了openssl。在命令行或~/.bash\u配置文件中设置这些参数(并重新设置源代码)。

export OPENSSL_ROOT_DIR="/usr/local/opt/openssl"
export LDFLAGS="-L${OPENSSL_ROOT_DIR}/lib"
export CPPFLAGS="-I${OPENSSL_ROOT_DIR}/include"
export PKG_CONFIG_PATH="${OPENSSL_ROOT_DIR}/lib/pkgconfig"
export OPENSSL_INCLUDE_DIR="${OPENSSL_ROOT_DIR}/include"

再次运行maven命令,就可以开始了。

flseospp

flseospp2#

对于protobuf 2.5.0,较旧的brew版本似乎不再存在。我下载了以下内容:
https://github.com/google/protobuf/releases/download/v2.5.0/protobuf-2.5.0.tar.bz2
然后在展开该文件后运行常规安装:

cd protobuf-2.5.0  
./configure
make
make check
sudo make install
p1tboqfb

p1tboqfb3#

在osx上使用自制软件:
安装所需的依赖项:

brew install protobuf@2.5 gcc autoconf automake libtool cmake snappy gzip bzip2 zlib openssl

符号链接协议:

ln -s /usr/local/Cellar/protobuf@2.5/2.5.0/bin/protoc /usr/local/bin/protoc

验证版本(libprotoc 2.5.0):

protoc --version

导出生成标志:

export OPENSSL_ROOT_DIR="/usr/local/opt/openssl"
export LDFLAGS="-L${OPENSSL_ROOT_DIR}/lib"
export CPPFLAGS="-I${OPENSSL_ROOT_DIR}/include"
export PKG_CONFIG_PATH="${OPENSSL_ROOT_DIR}/lib/pkgconfig"
export OPENSSL_INCLUDE_DIR="${OPENSSL_ROOT_DIR}/include"

检查hadoop版本:

hadoop version

获取上面返回的版本的hadoop源代码并生成:

wget https://archive.apache.org/dist/hadoop/core/hadoop-3.1.0/hadoop-3.1.0-src.tar.gz
tar zxvf hadoop-3.1.0-src.tar.gz
cd hadoop-3.1.0-src
mvn package -Dmaven.javadoc.skip=true -Pdist,native -DskipTests -Dtar

将本机libs复制到您的自制安装:

cp -R hadoop-dist/target/hadoop-3.1.0/lib/ /usr/local/Cellar/hadoop/3.1.0/lib/

更新hadoop-env.sh:

vi /usr/local/Cellar/hadoop/3.1.0/libexec/etc/hadoop/hadoop-env.sh

修改hadoop选项(可能会被注解掉):

export HADOOP_OPTS="-Djava.net.preferIPv4Stack=true -Djava.library.path=/usr/local/Cellar/hadoop/3.1.0/lib/native"

重新启动hadoop并运行以下程序进行验证:

hadoop checknative -a

根据https://medium.com/@faizanahemad/hadoop-native-libraries-installation-on-mac-osx-d8338a6923db

8ftvxx2r

8ftvxx2r4#

mvn clean install -DskipTests

mvn package -Pdist -Pnative -Dtar -DskipTests

相关问题