由于大多数服务器和外网做了隔离,进行源码编译并不方便,所以采用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配置增加这个

  1. <property>
  2.  
    <name>dfs.client.datanode-restart.timeout</name>
  3.  
    <value>30</value>
  4.  
    </property>

     记得重启所有配置让其生效

     

    yarn java.lang.NoSuchFieldError: HADOOP_CLASSPATH 出现这个报错

     

    到tez下面的lib

    把hadoop的jar包都移除。可能是hadoop包冲突或者不兼容把

     

     

     

    使用hiveserver2记得要配置,不然会读取不到配置,而且记得要给目录文件足够权限。