Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

 

| Hue is a set of web applications that enable you to interact with a CDH cluster. Hue applications let you browse HDFS and work with Hive and Cloudera Impala queries, MapReduce jobs, and Oozie workflows.

The Hue server part is written in python Django framework and different systems, say Hbase or Impala, are configured as separate apps in Django. The users are able to control these components on the cluster through the web interface. And it is also possible to add customized apps to Hue server to provide support for additional system.

Logic view of the system

There are two possible designs for the system. 

Design 1:

 

Design 2:

Image Added

 

As shown in both of the above diagram, the CDAP and SENTRY support are configured as a plugin app installed in the Hue system. Hue's front system is implemented in Django, which provides good isolation and extension for multiple apps running together in a web service. A separate panel section will be created in the Hue's default UI for related operations. This app will communicate with the CDAP system through CDAP's restful api service. All the live entities will be displayed in Hue's UI.

 

Communication with Apache SENTRY is enabled by SENTRY's thrift service. When admin grants/ evokes certain privileges through the Hue UI, it will be propagated to the SENTRY system and take effects on the further request coming from CDAP.  In design one Hue will talk to the Sentry directly while design two take advantage of the Sentry Client apis built in CDAP to do so. We currently preferred the second one since it involves less code modification in Hue and it favors future change of security functionalities (as we have to change both in Hue and in CDAP for the first design in this case).

 

UI Mockup

One possible UI layout is shown below. All the entities in CDAP can be listed hierarchically in the left. When click on one specific entity, user is able to view the detailed properties of this entity and manage the acl rules associated with this entity. The actual UI may vary in colors and relative layout of elements but stick to this concept.

...