由于大多数服务器和外网做了隔离,进行源码编译并不方便,所以采用window进行编译
1.安装maven 并需要配置conf 进行可用源。尽量用公共源,公司内部源并不全
2.进行windowprotoc-2.5.0-win32.zip 的下载和安装 需要到环境变量进行路径配置
3./apache-tez-0.9.2-src 下载tez 源码进行编译
编译过程会遇到
You are using 'tasks' which has been removed from the maven-antrun-plugin. Please use 'target' and refer to the >>Major Version Upgrade to version 3.0.0<< on the plugin site.的问题
需要到对应报错项目中,比如:
需要到对应项目的pom.xml的ant本版,默认可能没版本,需要给限定死
<groupId>org.apache.maven.plugins</groupId> <artifactId>maven-antrun-plugin</artifactId> <version>1.8</version>
这两个最好注释掉,避免麻烦,如果你不用的话
mvn clean package -Dmaven.javadoc.skip=true -Dmaven.test.skip=true编译命令
最后编译成功
部署过程一些麻烦问题
hive on tez java.lang.NumberFormatException: For input string: “30s“
到hdfs配置增加这个
-
<property>
-
<name>dfs.client.datanode-restart.timeout</name>
-
<value>30</value>
-
</property>
记得重启所有配置让其生效
yarn java.lang.NoSuchFieldError: HADOOP_CLASSPATH 出现这个报错
到tez下面的lib
把hadoop的jar包都移除。可能是hadoop包冲突或者不兼容把
使用hiveserver2记得要配置,不然会读取不到配置,而且记得要给目录文件足够权限。