[ 
https://issues.apache.org/jira/browse/HIVE-30?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12649247#action_12649247
 ] 

Ashish Thusoo commented on HIVE-30:
-----------------------------------

hmm...

Ideally the HiveServer that is being done as part of JDBC driver should be able 
to handle all the session creation, processlist, authentication and be a single 
gateway for submitting the queries, and as Joy says the client side libraries 
for that server should be managing the data path. Regarding the state belonging 
to the client, there is some state that needs to be there on the server as the 
typical JDBC is session oriented and calls are within the context of a session.

The web server that is being done as part of this JIRA and the cli would then 
communicate to the HiveServer for all those services as well as for query 
compilation and submission. Having said that there would still be some web 
client specific session information that the web server would have
to maintain, things like if a websession is free to take some other queries, 
whether it has been named and initialized etc. Maybe we should call 
SessionItem, WebSessionItem. All the administrative options that this JIRA then 
provides for now are then only over WebSessions and not any other sessions 
started by other clients (cli or programs like JDBC). We can expand the 
capabilities of the Web Client to provide administration over those sesssions 
once the HiveServer is ready and able to do all those things.

I think the current implementation of the HWIServer is also a vestige of the 
fact that we do not have a server implementation for hive and our compiler 
essentially runs as a client library today. One could see the SessionState(or 
some equivalent of it) class be subsumed in the HiveServer and be provided to 
the clients through the HiveServer interfaces (essentially a client side 
handle). If we think of it in those terms then the current implementation is 
not too much off the mark. SessionItem becomes WebSession. Processlist becomes 
WebSessionLists. The authentication stuff that Edward is pointing to becomes 
authentication for manipulating websessions only (though in the long term it 
will be better to integrate the notion of authority there with the notion of 
authority in HiveServer - which does not have any right now - maybe that should 
get pulled into the Hive Server). WebSession holds the SessionState which is 
the client side representation of a HiveServer session and allows the 
websession to access the corresponding session on the HiveServer side. 
Something on those lines...

Note in this model there is a single HiveServer (similar to a mysql or Oracle 
instance), JDBC is a client side driver that just talks to this server, the Web 
Server talks to this server too for much of the stuff (it is doing this through 
the metastore server for metadata stuff and the HiveServer as proposed 
currently by Ragu and Michi just includes those thrift calls as well - it is 
super set of the MetaStore and the data operations).

Makes sense?

> Hive web interface
> ------------------
>
>                 Key: HIVE-30
>                 URL: https://issues.apache.org/jira/browse/HIVE-30
>             Project: Hadoop Hive
>          Issue Type: Bug
>            Reporter: Jeff Hammerbacher
>            Assignee: Edward Capriolo
>            Priority: Minor
>         Attachments: HIVE-30.patch
>
>
> Hive needs a web interface. The initial checkin should have:
> * simple schema browsing
> * query submission
> * query history (similar to MySQL's SHOW PROCESSLIST)
> A suggested feature: the ability to have a query notify the user when it's 
> completed.
> Edward Capriolo has expressed some interest in driving this process.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to