[ https://issues.apache.org/jira/browse/LIVY-616?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16898183#comment-16898183 ]
Oleksandr Shevchenko edited comment on LIVY-616 at 8/1/19 4:24 PM: ------------------------------------------------------------------- I have added API for getting Livy Server address to LivyClient, HttpClient, RSCClient and LivyScalaClient. I don't see a way to forward Livy address from DiscoveryManager to HttpClient or LivyScalaClient (we need to add a dependency on {{livy-server}} to {{client-http}} in this case, I'm not sure that this is acceptable). So, from client code we can use: {code:java} val address = DiscoveryManager.getServerUri() - here we can use it in REST requests val client = LivyClientBuilder.setURI(s"http://address").build - or create client val futureUri = client.getServerUri - and get address from client if needed val scalaClient = new LivyScalaClient(client) val futureUri = scalaClient.getServerUri {code} Added scaladocs, small refactoring. Could someone review my PR? Thanks! was (Author: oshevchenko): I have added API for getting Livy Server address to LivyClient, HttpClient, RSCClient and LivyScalaClient. I don't see a way to forward Livy address from DiscoveryManager to HttpClient or LivyScalaClient (we need to add a dependency on {{livy-server}} to {{client-http}} in this case, I'm not sure that this is acceptable). So, from client code we can use: {code} {{val address = DiscoveryManager.getServerUri() - here we can use it in REST requests }} {{val client = LivyClientBuilder.setURI(s"http://address").build - or create client }} {{val futureUri = client.getServerUri - and get address from client if needed}} {{val scalaClient = new LivyScalaClient(client) }} {{val futureUri = scalaClient.getServerUri}} {{{code}}} Added scaladocs, small refactoring. Could someone review my PR? Thanks! > Livy Server discovery > --------------------- > > Key: LIVY-616 > URL: https://issues.apache.org/jira/browse/LIVY-616 > Project: Livy > Issue Type: Improvement > Components: Server > Reporter: Oleksandr Shevchenko > Priority: Major > Time Spent: 10m > Remaining Estimate: 0h > > Currently, there isn't a way to get Livy Server URI by the client without > setting Livy address explicitly to livy.conf. A client should set > "livy.server.host" variable and then get it via LivyConf. The same behavior > if you want to use Livy with Zeppelin, we need to set "zeppelin.livy.url". It > very inconvenient when we install Livy packages on couple nodes and don't > know where exactly Livy Server will be started e.g. by Ambari or Cloudera > Manager. Also, in this case, we need to have Livy configuration files on a > node where we want to get Livy address. > It will be very helpful if we will add Livy Server address to Zookeeper and > expose API for clients to get Livy URL to use it in client code for REST > calls. > Livy already supports state saving in Zookeeper but I don't see that we store > Livy server address somewhere. Before starting investigating and > implementation I want to ask here about this. > Please, correct me if I missed something. > Any comments will be highly appreciated! -- This message was sent by Atlassian JIRA (v7.6.14#76016)