tez的编译真的是无数坑,官方只适配了2.7.2的系列,要适配3.x系列的编译,很多依赖要自己升级。
编译环境为centos 8
前置条件:
- 不能使用root账户
- jdk maven 安装(忽略,请自行安装,不会请google)
编译Protobuf 2.5.0 官方依赖依然这么老
### 安装编译工具
yum -y install autoconf automake libtool cmake ncurses-devel openssl-devel lzo-devel zlib-devel gcc gcc-c++
编译protobuf
下载 源码包,解压
./configure
make install
编译 tez
下载 apache-tez-0.9.2-src 并解压到/opt
下
设置环境变量
#安装tez-ui的时候,node 会被自动下载到的目录,所以必须设置到path环境变量中弄过,不然后面的命令会报找不到node
export PATH=${PATH}:/opt/apache-tez-0.9.2-src/tez-ui/src/main/webapp/node
#bower global安装后的软连接路径
export PATH=${PATH}:/opt/apache-tez-0.9.2-src/tez-ui/src/main/webapp/bin
#在编译tez-ui的时候,bower 很可能安装不上,报错找不到bower命令,此时需要手动安装bower,因为front-maven-plugin已经自动安装的node 和 yarn包管理工具。yarn包管理命令在/opt/apache-tez-0.9.2-src/tez-ui/src/main/webapp/node/yarn/dist/bin下,所以可以通过yarn global add bower@x.x.x 来安装,具体版本好,在tez-ui下的package.json中。
export PATH=${PATH}:/opt/.config/yarn/global/node_modules/bower/bin
设置变更的版本餐参数进行maven 编译
mvn clean package -DskipTests=true -Dhadoop.version=3.2.1 -DnodeVersion=6.17.1 -P hadoop28 -P\!hadoop27 -Dmaven.javadoc.skip=true
编译成功后,生成的包在 /opt/apache-tez-0.9.2-src/tez-dist/target
网友评论