hive on tez安装部署、配置及tez-ui配置


hive有三种引擎:mapreduce、spark、tez,默认引擎为MapReduce,但MapReduce的计算效率非常低,而Spark和Tez引擎效率高,公司一般会使用Spark或Tez作为hive的引擎。

Tez官网:http://tez.apache.org/

在官网中介绍,Tez的YARN Timeline在Hadoop 2.6.x及以上版本才支持,低版本有些功能并不支持,所以如果想用Tez作为hive的引擎先保证Hadoop版本不低于2.6.x,我的是hadoop-2.7.3

Tez官网也介绍了Tez与MapReduce处理数据的区别:
通过允许Apache Hive和Apache Pig这样的项目运行复杂的DAG任务,Tez可以用来处理数据,这些数据以前需要多个MR作业,现在在一个Tez作业中,如下所示。
在这里插入图片描述

下载开始下载安装部署Tez

下载解压

Tez下载网址:http://mirrors.shu.edu.cn/apache/tez/
可以在此网址选择不同的版本,我这里选择0.9.1的,进入版本之后有两个安装包可以下载,src的是源码包,下载后需要进行编译,bin的是已经编译好的压缩包,在Linux系统中解压及安装

cd /opt/tools/
rz  #将压缩包上传到目录中
tar -zxvf apache-tez-0.9.1-bin.tar.gz -C /opt/modules/  #解压到指定目录
cd /opt/modules/
mv /opt/modules/apache-tez-0.9.1-bin/ /opt/modules/tez-0.9.1/  #修改文件夹名称
cd /opt/modules/hadoop-2.7.3/  #切换的Hadoop目录
bin/hdfs dfs -mkdir /user/tez  #在HDFS上新建tez目录
bin/hdfs dfs -put /opt/modules/tez-0.9.1/share/tez.tar.gz /user/tez/  #将tez中的tez.tar.gz压缩包上传到HDFS的Tez目录中

如果是在Hadoop中配置,则在Hadoop的master节点上的$HADOOP_HOME/etc/hadoop/目录下创建tez-site.xml

cd /opt/modules/hadoop-2.7.3/etc/hadoop
vi tez-site.xml

简单配置

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<configuration>
        <property>
		<name>tez.lib.uris</name>
		<value>/user/tez/tez.tar.gz</value> <!-- 这里指向hdfs上的tez.tar.gz包 -->
	</property>
</configuration>

其他配置参数请参考官网
Tez中tez-site.xml参数配置网址:http://tez.apache.org/releases/0.9.1/tez-api-javadocs/configs/TezConfiguration.html

Tez运行时参数配置网址:http://tez.apache.org/releases/0.9.1/tez-runtime-library-javadocs/configs/TezRuntimeConfiguration.html

把Tez加入到环境变量(把Tez中所有jar包添加到HADOOP_CLASSPATH),在hadoop_env.sh文件的末尾,添加如下内容:

TEZ_CONF_DIR=/opt/modules/hadoop-2.7.3/etc/hadoop/tez-site.xml
TEZ_JARS=/opt/modules/tez-0.9.1
export HADOOP_CLASSPATH=${HADOOP_CLASSPATH}:${TEZ_CONF_DIR}:${TEZ_JARS}/*:${TEZ_JARS}/lib/*

顺便复习下怎么查看HADOOP_CLASSPATH

bin/hdfs classpath

修改mapred-site.xml 文件:

<property>
        <name>mapreduce.framework.name</name>
        <value>yarn-tez</value>
</property>

修改之后将mapred-site.xml和hadoop_env.sh,tez-site.xml文件同步到集群所有的节点上,这里将会影响到整个集群。

运行tez的实例mr程序,验证是否安装成功:

${HADOOP_HOME}/bin/yarn jar /opt/modules/tez-0.9.1/tez-examples-0.9.1.jar orderedwordcount /datas/wordcount.data /output/
在这里插入图片描述

可以看到application type为TEZ

重启hadoop

启动hive cli

set hive.execution.engine=tez; #修改hive引擎为tez

set hive.execution.engine=mr; #修改hive引擎为MapReduce

如果想将hive引擎永久设置为tez,则在hive-site.xml配置文件添加以下属性

<property>
   <name>hive.execution.engine</name>
   <value>tez</value>
</property>

保存之后再重启,再执行操作就会默认执行引擎为tez了。

设置tez-ui

先安装部署Tomcat

apache软件包仓库地址:
http://archive.apache.org/dist/

在设置tez-ui之前需要安装Tomcat,进入上面网址,找到Tomcat

tar -zxvf apache-tomcat-8.5.31.tar.gz -C /opt/modules/

在conf目录下server.xml可以修改端口号(我改成了8822)

启动Tomcat

${TOMCAT-HOME}/bin/startup.sh

访问http://localhost:8880/看到tomcat的欢迎页面。localhost替换为Linux服务器IP。
在这里插入图片描述

说明已经成功安装了Tomcat

接下来在tez目录下找到war包
因为我安装的是bin所以在安装包中就有tez-ui-0.9.1.war
自己编译的话也有生成,在这里不做过多赘述。

将tez-ui部署在tomcat

#在webapps下创建tez-ui目录
mkdir /opt/modules/tomcat-8.5.31/webapps/tez-ui/

#进入文件
cd /opt/modules/tomcat-8.5.31/webapps/tez-ui/

#解压war包
unzip /opt/modules/tez-0.9.1/tez-ui-0.9.1.war

#编辑配置文件,第26行修改localhost
vim config/configs.env

在这里插入图片描述

配置timelineserver

目录:${HADOOP-HOME}/etc/hadoop

vim yarn-site.xml添加以下内容.然后分发到各个节点。

    <!-- conf timeline server -->
    <property>
        <name>yarn.timeline-service.enabled</name>
	<value>true</value>
   </property>
   <property>
	<name>yarn.timeline-service.hostname</name>
        <value>tmaster</value>
   </property>
   <property>
        <name>yarn.timeline-service.http-cross-origin.enabled</name>
        <value>true</value>
   </property>
   <property>
        <name> yarn.resourcemanager.system-metrics-publisher.enabled</name>
        <value>true</value>
   </property>
   <property>
	<name>yarn.timeline-service.generic-application-history.enabled</name>
	<value>true</value>
   </property>
   <property>
        <description>Address for the Timeline server to start the RPC server.</description>
        <name>yarn.timeline-service.address</name>
        <value>tmaster:10201</value>
   </property>
   <property>
        <description>The http address of the Timeline service web application.</description>
        <name>yarn.timeline-service.webapp.address</name>
        <value>tmaster:8188</value>
   </property>
   <property>
        <description>The https address of the Timeline service web application.</description>
        <name>yarn.timeline-service.webapp.https.address</name>
        <value>tmaster:2191</value>
   </property>
   <property>
        <name>yarn.timeline-service.handler-thread-count</name>
        <value>24</value>
   </property>

vim tez-site.xml添加下列几行,分发到各个节点。

<!--Configuring Tez to use YARN Timeline-->
    <property>
        <name>tez.history.logging.service.class</name>
        <value>org.apache.tez.dag.history.logging.ats.ATSHistoryLoggingService</value>
    </property>
    <property>
        <name>tez.tez-ui.history-url.base</name>
        <value>http://localhost:8822/tez-ui/</value>
    </property>

启动hadoop

启动timelineserver

${HADOOP-HOME}/sbin/yarn-daemon.sh start timelineserver

启动tomcat
${TOMCAT-HOME}/bin/startup.sh

访问界面
http://localhost:8880/tez-ui/
在这里插入图片描述

访问yarn的web监控页面可以看到hive引擎已经使用了tez,但由于我电脑配置比较低,进入hive的cli运行复杂的SQL语句就会报错,我猜使用tez作为引擎对服务器配置要求较高。
在这里插入图片描述

好了,hive使用tez作为引擎安装配置大概就是这些,更详细的配置和优化可以到官网查看。由于我已经安装了两个版本的Hadoop和三个版本的hive,在此次安装配置tez时遇到了不少问题。经过两天的时间也总算是安装配置好了。由于电脑的配置。。。还是默默的将引擎改成MapReduce。。。。

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值