Skip to content

Hive-29663: Modernize WebUI#6541

Open
aturoczy wants to merge 7 commits into
apache:masterfrom
aturoczy:HIVE-29663
Open

Hive-29663: Modernize WebUI#6541
aturoczy wants to merge 7 commits into
apache:masterfrom
aturoczy:HIVE-29663

Conversation

@aturoczy

Copy link
Copy Markdown

What changes were proposed in this pull request?

The old HiveServer2 Web UI has been replaced with a modernized Web UI. The previous UI had an outdated look and feel, and some of its functionality was no longer working as expected.
webio4

webui5 Webui6

Why are the changes needed?

To provide a modern Web UI and improve observability for Hive.

Does this PR introduce any user-facing change?

YES! Totally new UI. Broken features fixed.

How was this patch tested?

Just manually. I would recommend to test by others as well.

@sonarqubecloud

Copy link
Copy Markdown

@tanishq-chugh

Copy link
Copy Markdown
Contributor

Hi @aturoczy
Tried out this new UI, and it looks amazing, great improvement from the older static UI.
Have a minor suggestion, can we rename the metric Closed (Last 25) to maybe Closed Queries (Last 25) ?

image

@aturoczy

Copy link
Copy Markdown
Author

You are right! I am thinking whether Finished Queries or Completed Queries would be better than Closed Queries. Also, I think Open Queries should be renamed to Active Queries. As an end user it bit strange the open and the end. Seems like a TCP / UDP connection rather then a query.
What do you think?

@tanishq-chugh

Copy link
Copy Markdown
Contributor

@aturoczy I agree here, Completed Queries definitely sounds better as an end user. However, still thinking around the change of open queries to active queries, coz afaik the queries in Pending state (maybe query waiting for an HS2 background thread) will also appear under open queries section.
Active queries by name to an end user gives an initial-impression of a query in running state. What do you think?

@aturoczy

Copy link
Copy Markdown
Author

I checked the enum states, and I think we should extend the dashboard with the following numbers:

  • Pending Queries: this would be a new metric for queued queries.
  • Active Queries: the current “Open Queries” maps to the RUNNING enum state. I think “Active Queries” or “Running Queries” would be more expressive.
  • Finished Queries: the current “Closed Queries” maps to the CLOSED enum state. There is also a FINISHED enum state, but as I understand it, FINISHED means the query execution has completed, while the client has not pulled all the data yet. CLOSED means the client is fully done with it. From an end-user perspective, CLOSED is probably the best state for filtering, but for the dashboard label, I think “Finished Queries” would be clearer. We could add a tooltip explaining that this metric represents queries in CLOSED status.
  • Failed Queries: I think we should add this as well for queries in ERROR state.

What do you think?

@tanishq-chugh

Copy link
Copy Markdown
Contributor

@aturoczy This definitely sounds better, having more such counter metrics on the UI will provide more definitive information to an end user. I see we can have queries in these states: Link, I think maybe we should create groups (each representing one counter) in such a way that all the states get covered. coz i believe all the last 25 queries in all states will appear in the Open/Closed divs below on the dashboard, so all the counter metrics adding up to the number of queries appearing in open + closed queries sounds intuitive.
What is your opinion on this?

@difin

difin commented Jun 26, 2026

Copy link
Copy Markdown
Contributor

During testing of the new WebUI using docker-compose with LLAP, I noticed that the number of finished queries doesn't get updated and stays 0:

Screenshot 2026-06-26 at 12 27 06 PM

@difin

difin commented Jun 26, 2026

Copy link
Copy Markdown
Contributor

Hi @aturoczy,

Maybe the same behavior was broken in the old Web UI, logging it here as a potential issue as a result of this PR:

Query Plan tab under Query Details is always empty for Finished queries.

Screenshot 2026-06-26 at 12 43 56 PM

tested with these hive configs in hive-site.xml:

    <property>
        <name>hive.server2.logging.operation.enabled</name>
        <value>true</value>
    </property>
    <property>
        <name>hive.server2.webui.explain.output</name>
        <value>true</value>
    </property>
    <property>
        <name>hive.server2.webui.show.graph</name>
        <value>true</value>
    </property>

@difin

difin commented Jun 26, 2026

Copy link
Copy Markdown
Contributor

Stages tab under Query Details is always empty for Finished queries.

Screenshot 2026-06-26 at 2 00 59 PM

tested with these hive configs in hive-site.xml:

    <property>
        <name>hive.server2.logging.operation.enabled</name>
        <value>true</value>
    </property>
    <property>
        <name>hive.server2.webui.explain.output</name>
        <value>true</value>
    </property>
    <property>
        <name>hive.server2.webui.show.graph</name>
        <value>true</value>
    </property>
    <property>
        <name>hive.server2.historic.operation.log.enabled</name>
        <value>true</value>
    </property>
    <property>
        <name>hive.server2.webui.max.historic.queries</name>
        <value>50</value>
    </property>

@difin

difin commented Jun 26, 2026

Copy link
Copy Markdown
Contributor

The Dashboard contains 4 Filter... elements, but do me it is not clear on what it filters.
I mean, what should I type as a Filter input?

Screenshot 2026-06-26 at 12 27 06 PM

@difin

difin commented Jun 26, 2026

Copy link
Copy Markdown
Contributor

I am not sure if the same issue existed in the old Hive Web UI, but I noticed that LLAP daemons page shows State - APP_NOT_FOUND. It probably means that LLAP daemon is not found, but I think it can be confusing to users what state and what app is not found here.

I observed this after starting Hive with docker-compose in LLAP mode.

Screenshot 2026-06-26 at 4 17 37 PM

@difin

difin commented Jun 26, 2026

Copy link
Copy Markdown
Contributor

Also not sure, maybe this is behavior existed in the old Web UI too, but the Logs page does not show any log files:

Screenshot 2026-06-26 at 4 32 13 PM

Testing with Hive's docker-compose with LLAP with the following custom configs in hive-site.xml:

    <property>
        <name>hive.server2.logging.operation.enabled</name>
        <value>true</value>
    </property>
    <property>
        <name>hive.server2.webui.explain.output</name>
        <value>true</value>
    </property>
    <property>
        <name>hive.server2.webui.show.graph</name>
        <value>true</value>
    </property>
    <property>
        <name>hive.server2.historic.operation.log.enabled</name>
        <value>true</value>
    </property>
    <property>
        <name>hive.server2.webui.max.historic.queries</name>
        <value>50</value>
    </property>

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants