安装Tez Ui

tomcat下载
wget https://archive.apache.org/dist/tomcat/tomcat-8/v8.5.73/bin/apache-tomcat-8.5.73.tar.gz
tez下载
wget https://repository.apache.org/content/repositories/releases/org/apache/tez/tez-ui/0.9.1/tez-ui-0.9.1.war

解压:
tar -zxvf apache-tomcat-8.5.73.tar.gz

如果更改web端口(默认8080)
在/opt/apache-tomcat-8.5.73/conf/server.xml

<Connector port="8822" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />

tez下载、解压:

mkdir /opt/apache-tomcat-8.5.73/webapps/tez-ui
cd /opt/apache-tomcat-8.5.73/webapps/tez-ui
wget https://repository.apache.org/content/repositories/releases/org/apache/tez/tez-ui/0.9.1/tez-ui-0.9.1.war
unzip tez-ui-0.9.2.war

根据实际情况,修改config/configs.env

 timelineBaseUrl: 'http://localhost:8188',
RMWebUrl: 'http://localhost:8088',

–注意要去点前面的’//'注释
配置yarn-site.xml
—我这个版本默认配置有,没有修改

yarn-site.xml
-------------
...
<property>
  <description>Indicate to clients whether Timeline service is enabled or not.
  If enabled, the TimelineClient library used by end-users will post entities
  and events to the Timeline server.</description>
  <name>yarn.timeline-service.enabled</name>
  <value>true</value>
</property>

<property>
  <description>The hostname of the Timeline service web application.</description>
  <name>yarn.timeline-service.hostname</name>
  <value>localhost</value>
</property>

<property>
  <description>Enables cross-origin support (CORS) for web services where
  cross-origin web response headers are needed. For example, javascript making
  a web services request to the timeline server.</description>
  <name>yarn.timeline-service.http-cross-origin.enabled</name>
  <value>true</value>
</property>

<property>
  <description>Publish YARN information to Timeline Server</description>
  <name> yarn.resourcemanager.system-metrics-publisher.enabled</name>
  <value>true</value>
</property>
...

修改tez-site.xml
tez.history.logging.service.class
原:org.apache.tez.dag.history.logging.proto.ProtoHistoryLoggingService
改:org.apache.tez.dag.history.logging.ats.ATSHistoryLoggingService

tez.am.tez-ui.history-url.template(不改也能用,用默认的配置也行)

原:__HISTORY_URL_BASE__?viewPath=%2F%23%2Ftez-app%2F__APPLICATION_ID__
改:http://bdtest-main05:8822/tez-ui/

改完之后,重启tomcat,和相关hive服务,会显示All DAG

若想显示Hive Queries,需要修改下面内容:

hive.exec.failure.hooks
原:org.apache.hadoop.hive.ql.hooks.HiveProtoLoggingHook
改:org.apache.hadoop.hive.ql.hooks.ATSHook

hive.exec.post.hooks
原:org.apache.hadoop.hive.ql.hooks.HiveProtoLoggingHook
改:org.apache.hadoop.hive.ql.hooks.ATSHook

hive.exec.pre.hooks
原:org.apache.hadoop.hive.ql.hooks.HiveProtoLoggingHook
改:org.apache.hadoop.hive.ql.hooks.ATSHook

在这里插入图片描述

重启tomcat,和相关hive服务
cd /opt/apache-tomcat-8.5.73/bin
./shutdown.sh
./startup.sh

最终显示如下:
在这里插入图片描述
在这里插入图片描述

<think>我们正在讨论的是如何在TezUI上配置和执行Hive查询来读取数据。根据引用[2]和[3],我们知道Tez是一个执行引擎,而TezUI是用于监控和调试Tez应用程序的Web界面。用户的问题是如何在TezUI中实现Hive查询以读取数据。注意:TezUI本身并不执行查询,而是用于监控和可视化已经由Tez执行的作业。 因此,我们需要明确: 1. 首先,必须将Hive配置为使用Tez作为执行引擎(如之前的回答所述)。 2. 然后,在配置好TezUI后,我们可以通过TezUI来监控Hive提交的Tez作业。 步骤: 1. 确保已经正确安装和配置了Tez,并且Hive已经设置为使用Tez引擎(如引用[1]和[2]所述)。 2. 安装和配置TezUITez Web UI)以便能够通过Web界面监控作业。 3. 在Hive中执行查询,该查询将由Tez执行,然后通过TezUI查看作业的执行情况。 具体步骤: 一、配置Hive使用Tez(如果尚未配置) 在hive-site.xml中设置: <property> <name>hive.execution.engine</name> <value>tez</value> </property> 二、安装和配置TezUI(参考引用[3]) TezUITez的一部分,通常Tez的发行版中已经包含了TezUI的war包。我们需要将这个war包部署到一个Web容器(如Tomcat)中。 步骤: 1. 找到Tez发行版中的tez-ui-*.war(例如:tez-ui-0.9.2.war)。 2. 将该war包复制到Tomcat的webapps目录下(假设已经安装Tomcat)。 3. 启动Tomcat,war包会自动解压。 4. 配置Tez使其能够将作业历史信息发送到Tez UI(需要配置Timeline Server,因为TezUI依赖于YARN Timeline Server来获取作业历史)。 配置YARN Timeline Server(在yarn-site.xml中): <property> <name>yarn.timeline-service.enabled</name> <value>true</value> </property> <property> <name>yarn.timeline-service.hostname</name> <value>timeline-server-hostname</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> 配置Tez(在tez-site.xml中)指定Timeline Server地址: <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://tez-ui-host:8080/tez-ui/</value> </property> 注意:需要启动Timeline Server(在Hadoop 3.x中,Timeline Service v2可能需要额外配置,但引用[3]提到他们使用的是timeline v1,所以这里我们按v1配置)。 三、执行Hive查询并查看TezUI 1. 启动Hive(通过hive命令行或Beeline)。 2. 执行一个查询,例如: SELECT * FROM my_table; 3. 这个查询会被Tez执行。 4. 在浏览器中访问TezUI(例如:http://tez-ui-host:8080/tez-ui/),可以看到作业列表。 5. 在TezUI中,可以查看作业的有向无环图(DAG),各个任务的执行情况,以及读取的数据量等。 注意:TezUI主要用于监控和调试,它不直接用于“执行”查询。执行查询仍然是在Hive中进行的。 四、可能遇到的问题(根据引用[2]) 安装配置过程中可能会遇到各种问题,比如版本兼容性问题(Hadoop、HiveTez的版本需要兼容)。如果遇到问题,可以查看日志,或者暂时切换回MapReduce引擎(如引用[2]所述)。 总结:在TezUI中查看Hive查询的执行情况,需要先配置Hive使用Tez引擎,然后正确配置TezUI并启动,再通过Hive执行查询,最后在TezUI的Web界面中查看作业执行情况。 因此,回答用户的问题:如何在TezUI中配置和执行Hive查询来读取数据? 实际上,执行查询是在Hive中进行的,而TezUI只是用于监控。所以步骤是: 1. 配置Hive使用Tez引擎。 2. 部署和配置TezUI(包括Timeline Server的配置)。 3. 在Hive中执行查询。 4. 通过TezUI监控该查询的执行情况,包括数据读取的细节(如每个任务读取的数据量等)。 引用说明: 引用[2]提到了安装配置tez的过程,并提到可以切换回MapReduce。 引用[3]提到了tezhive官方推荐的一个执行引擎,并提到安装过程需要参考源码中的文档。 因此,在回答中我们可以引用这些内容。</think>在Tez UI中配置和执行Hive查询读取数据,需先完成环境配置,再通过Tez UI监控查询执行过程。以下是详细步骤: ### 一、前置条件配置 1. **启用Tez执行引擎** 在`hive-site.xml`中配置: ```xml <property> <name>hive.execution.engine</name> <value>tez</value> </property> ``` 验证配置:`SET hive.execution.engine;` 应返回 `tez`[^1][^3]。 2. **部署Tez UI** - 将Tez发行版中的`tez-ui-*.war`部署到Tomcat的`webapps/tez-ui`目录 - 在`tez-site.xml`添加UI配置: ```xml <property> <name>tez.tez-ui.history-url.base</name> <value>http://<tez-ui-host>:8080/tez-ui/</value> </property> ``` 3. **启用YARN Timeline Server** 在`yarn-site.xml`中配置: ```xml <property> <name>yarn.timeline-service.enabled</name> <value>true</value> </property> <property> <name>yarn.timeline-service.hostname</name> <value><timeline-server-host></value> </property> ``` 重启YARN服务[^3]。 ### 二、执行Hive查询并监控 1. **提交Hive查询** 在Hive中执行查询(示例): ```sql -- 创建表(若未存在) CREATE TABLE user_behavior ( user_id BIGINT, item_id BIGINT, action_time TIMESTAMP ) STORED AS ORC; -- 执行分析查询 SELECT item_id, COUNT(*) AS purchase_count FROM user_behavior WHERE action_time > '2023-01-01' GROUP BY item_id ORDER BY purchase_count DESC; ``` 2. **在Tez UI中监控查询** - 访问 `http://<tez-ui-host>:8080/tez-ui` - **查看数据读取细节**: - 在DAG图中点击 `Map 1` 节点 - 查看 `Counters` 选项卡的 `File Input Format Counters`: - `BYTES_READ`:读取数据量 - `MAP_INPUT_RECORDS`:处理的行数 ![](https://tez.apache.org/assets/dag-detail.png) - **诊断性能瓶颈**: - 检查 `Vertex Time` 分析各阶段耗时 - 观察 `Data Local` 比例,低于90%需优化数据本地性 ### 三、数据读取优化技巧 1. **分区裁剪** 按日期分区表可减少I/O: ```sql CREATE TABLE user_behavior_partitioned ( user_id BIGINT, item_id BIGINT ) PARTITIONED BY (action_date STRING); ``` 查询时自动跳过无关分区[^1]。 2. **向量化读取** 在`hive-site.xml`启用: ```xml <property> <name>hive.vectorized.execution.enabled</name> <value>true</value> </property> ``` 3. **小文件合并** 使用Tez的合并优化: ```sql SET hive.merge.tezfiles=true; SET hive.merge.smallfiles.avgsize=128000000; -- 128MB ``` ### 常见问题排查 1. **Tez UI无数据显示** - 检查Timeline Server状态:`yarn timelineapplication -list` - 确认`tez.history.logging.service.class`配置为`org.apache.tez.dag.history.logging.ats.ATSHistoryLoggingService` 2. **数据读取缓慢** - 查看`Local Data`比例:低于90%时需检查数据块分布 - 调整并行度:`SET tez.grouping.split-count=500;` > **注意**:Tez UI是**监控工具**而非查询执行入口,实际查询仍需通过Hive CLI/Beeline提交。Tez UI的核心价值在于可视化作业执行细节和诊断性能瓶颈[^2][^3]。 --- ###
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值