Tez安装使用

作者: JouyPub | 来源:发表于2018-08-08 10:31 被阅读1次

    简介

      tez全表查询时需要每个分区都存在,否则回报错,比如left join

    编译,安装依赖

    1. maven
    wget http://download.nus.edu.sg/mirror/apache/maven/maven-3/3.3.9/binaries/apache-maven-3.3.9-bin.tar.gz
    tar -xzf apache-maven-3.3.9-bin.tar.gz
    将mvn命令配置到/etc/profile下
    
    1. protoc
    wget https://github.com/google/protobuf/releases/download/v2.5.0/protobuf-2.5.0.tar.gz
    tar -xzf apache-maven-3.3.9-bin.tar.gz
    编译安装 ./configure && make && make install
    可能会缺少依赖,建议编译前先吧所有的依赖都装上 yum groupinstall -y "Development Tools"
    
    1. tez
    wget http://download.nus.edu.sg/mirror/apache/tez/0.8.3/apache-tez-0.8.3-src.tar.gz
    tar -xzf apache-tez-0.8.3-src.tar.gz
    
    编译打包 mvn clean package -DskipTests=true -Dmaven.javadoc.skip=true   # 默认hadoop2.6,如果集群不是hadoop2.6,需要修改pom.xml中的Hadoop version
    编译后的包在 tez-dist/target/目录下
    

    配置,以下是CDH的安装配置步骤,如果不是CDH请参考官方安装文档

    1. hadoop新建目录
      hadoop fs -mkdir /apps/tez-0.8.3/

    2. 上传 tez-dist/target/tez-0.8.3-minimal/下的所有文件到hdfs的 /apps/tez-0.8.3/ 目录
      hadoop fs -put tez-dist/target/tez-0.8.3-minimal/* /apps/tez-0.8.3/

    3. 新建tez目录
      mkdir /usr/lib/tez

    4. 复制文件到tez目录
      cp -r tez-dist/target/tez-0.8.3-minimal/* /usr/lib/tez

    5. 在tez目录下新建文件tez-site.xml,内容如下

    <?xml version="1.0" encoding="UTF-8"?>
      <configuration>
           <property>
               <name>tez.lib.uris</name>
               <value>${fs.defaultFS}/apps/tez-0.8.3/,${fs.defaultFS}/apps/tez-0.8.3/lib</value>
           </property>
           <property>
               <name>tez.use.cluster.hadoop-libs</name>
               <value>true</value>
           </property>
      </configuration>
    
    1. 配置环境变量

       export TEZ_JARS=/usr/lib/tez
       export TEZ_CONF_DIR=/usr/lib/tez/
       export HADOOP_CLASSPATH=${TEZ_CONF_DIR}:${TEZ_JARS}/*:${TEZ_JARS}/lib/*:${TEZ_JARS}
      
    2. 使用,可以全局设置tez为执行引擎,也可以hive查询时再设置,以下时hive查询时设置

       hive> set hive.execution.engine=tez;
      

    常见错误

    1. 如果是root用户执行编译会报错,修改 tez-ui/pom.xml 文件,在exec-maven-plugin 标签下新增 <argument>--allow-root</argument>
      (安装期间编译tez-ui2仍然报错,就把pom.xml中的tez-ui2 model给注释掉了,所以web页面会用不了)

    2. Caused by: java.lang.ClassNotFoundException: org.apache.hadoop.mapred.MRVersion
      解决办法: 拷贝mr依赖包至tez的hdfs目录中。笔者的环境是CDH5.4.4,所以把hadoop-mapreduce-client-common-2.6.0-cdh5.4.4.jar拷贝到hdfs的/apps/tez-0.8.3/目录

    参考文档

    官方安装文档(非CDH集群)
    https://tez.apache.org/install.html

    CDH集群下安装tez
    https://gist.github.com/epiphani/dd37e87acfb2f8c4cbb0

    几种常见错误
    https://cwiki.apache.org/confluence/display/TEZ/Build+errors+and+solutions
    http://www.leocook.org/2016/05/09/Tez%E7%B3%BB%E5%88%97%E7%AC%AC%E4%BA%8C%E7%AF%87-hive_on_tez/

    相关文章

      网友评论

        本文标题:Tez安装使用

        本文链接:https://www.haomeiwen.com/subject/ltetbftx.html