Lens server deployment

This document describes the deployment of lens server in a distributed cluster. Make sure you have finished Install and Run documentation, before proceeding.

Lens server requires Hive metastore for providing OLAP cube metastore. Its also requires a DB for storing system tables, which can be shared with Hive metastore server's underlying DB as well. Hive server is required if Hive is one of the execution engines.

Typical deployment suggested is depicted in the following diagram (the boxes and lines in blue show server level components, the ones in green show execution components)

Lens Server deployment

Its recommended HiveMetastore server, HiveServer2 and Lens Server running on different machines.

Dependencies and their versions

  • Requires java 1.7+.
  • Requires Hadoop 2.x+. Tested upto hadoop 2.4.
  • Requires Hive metastore 0.13+
  • Requires Hive server2 0.13+

Restart and recovery

Lens server should not have problems with Hive Metastore server, Hive Server2 or Hadoop restarts. Lens server can persist its state before going and recover from previous state upon restart.

  • Recoverability
  • To enable lens server with recoverability, i.e. to allow users access queries before restart, lens server should be started with lens.server.restart.enabled set to true. Admin can set this to false if no recoverability is required.
  • Restarting
  • To start the lens server a fresh lens.server.recover.onrestart should be disabled. If it is true, the server will load its persisted state before restart.

Server modes

Lens server can be started in various modes. The server mode can be specified via configuration when it is starting up. Available modes are

  • READ_ONLY : Allows all requests on sesssion resource and Only GET requests on all other resources
  • METASTORE_READONLY : Allows Only GET requests on metastore service and all other requests on other services
  • METASTORE_NODROP: DELETE requests on metastore are not accepted, all other requests are accepted
  • OPEN: This is the default mode. All requests are accepted

Serving logs over REST

Lens server comes with LogResource which can serve logs under LENS_LOG_DIR over REST. To enable serving logs, administrator can enable log resource by adding log to configuration property "lens.server.ws.resourcenames". Config changes look the following :


property namelens.server.ws.resourcenames/name valuesession,metastore,query,index,log/value descriptionThese JAX-RS resources would be started in the specified order when lens-server starts up/description /property

property namelens.server.log.ws.resource.impl/name valueorg.apache.lens.server.LogResource/value descriptionImplementation class for Log Resource/description /property


If resourcenames does not contain "log", it is not enabled.