35
Leveraging Ambari to Build Comprehensive Management UIs For Your Hadoop Applications by Christian Tzolov @christzolov

Leveraging Ambari to Build Comprehensive Management · PDF fileFor Your Hadoop Applications by ... Technical Architect at Pivotal, BigData, Hadoop, SpringXD, Apache Committer, Crunch

Embed Size (px)

Citation preview

Page 1: Leveraging Ambari to Build Comprehensive Management · PDF fileFor Your Hadoop Applications by ... Technical Architect at Pivotal, BigData, Hadoop, SpringXD, Apache Committer, Crunch

Leveraging Ambari to Build Comprehensive Management UIs

For Your Hadoop Applicationsby Christian Tzolov

@christzolov

Page 2: Leveraging Ambari to Build Comprehensive Management · PDF fileFor Your Hadoop Applications by ... Technical Architect at Pivotal, BigData, Hadoop, SpringXD, Apache Committer, Crunch

Whoami

Christian Tzolov Technical Architect at Pivotal, BigData, Hadoop, SpringXD, Apache Committer, Crunch PMC member

[email protected] blog.tzolov.net @christzolov

Page 3: Leveraging Ambari to Build Comprehensive Management · PDF fileFor Your Hadoop Applications by ... Technical Architect at Pivotal, BigData, Hadoop, SpringXD, Apache Committer, Crunch
Page 4: Leveraging Ambari to Build Comprehensive Management · PDF fileFor Your Hadoop Applications by ... Technical Architect at Pivotal, BigData, Hadoop, SpringXD, Apache Committer, Crunch

How To Provision, Manage And Monitor Enterprise Applications At Scale?

Page 5: Leveraging Ambari to Build Comprehensive Management · PDF fileFor Your Hadoop Applications by ... Technical Architect at Pivotal, BigData, Hadoop, SpringXD, Apache Committer, Crunch

Contents• Ambari Overview

• Stacks and Services (demo)

• Blueprints (demo)

• Views (demo)

• Metrics & Monitoring

• On the Cloud

Page 6: Leveraging Ambari to Build Comprehensive Management · PDF fileFor Your Hadoop Applications by ... Technical Architect at Pivotal, BigData, Hadoop, SpringXD, Apache Committer, Crunch

Apache Ambari

A platform to provision, manage and monitor Hadoop and Enterprise Applications

Page 7: Leveraging Ambari to Build Comprehensive Management · PDF fileFor Your Hadoop Applications by ... Technical Architect at Pivotal, BigData, Hadoop, SpringXD, Apache Committer, Crunch

Deployment Topology

Ambari Web

(REST API) Ambari Server

admin node

Ambari Agent

cluster node 1

Ambari Agent

cluster node 2

Ambari Agent

cluster node N

Page 8: Leveraging Ambari to Build Comprehensive Management · PDF fileFor Your Hadoop Applications by ... Technical Architect at Pivotal, BigData, Hadoop, SpringXD, Apache Committer, Crunch

Special PowersServices & Stacks

Blueprints

Views

Monitoring

Page 9: Leveraging Ambari to Build Comprehensive Management · PDF fileFor Your Hadoop Applications by ... Technical Architect at Pivotal, BigData, Hadoop, SpringXD, Apache Committer, Crunch

Services & Stacks

Page 10: Leveraging Ambari to Build Comprehensive Management · PDF fileFor Your Hadoop Applications by ... Technical Architect at Pivotal, BigData, Hadoop, SpringXD, Apache Committer, Crunch

Service Concepts

• Stack - Set of (managed) Services and software packages for them

• Service - Set of (distributed) Components

• Component - Service building block of type Master, Slave, Client

Page 11: Leveraging Ambari to Build Comprehensive Management · PDF fileFor Your Hadoop Applications by ... Technical Architect at Pivotal, BigData, Hadoop, SpringXD, Apache Committer, Crunch

Service Architecture

Page 12: Leveraging Ambari to Build Comprehensive Management · PDF fileFor Your Hadoop Applications by ... Technical Architect at Pivotal, BigData, Hadoop, SpringXD, Apache Committer, Crunch

Service Layout|_ services |_ <service_name> metainfo.xml metrics.json |_ configuration {configuration files} |_ package |_ scripts {command scripts}

• metainfo.xml - defines service, components and the command management scripts

• configuration - service config files used in and deployed through the command scripts

• package/scripts - commandScripts and templates.

Page 13: Leveraging Ambari to Build Comprehensive Management · PDF fileFor Your Hadoop Applications by ... Technical Architect at Pivotal, BigData, Hadoop, SpringXD, Apache Committer, Crunch

Metainfo.xml<metainfo> <schemaVersion/> <services> <service> <name/> <displayName/> <comment/> <version/> <components/> <osSpecifics/> <commandScript/> <requiredServices/> <configuration-dependencies/> </service> </services> </metainfo>

<components> <component> <name>CUST_MASTER</name> <displayName>Master</displayName> <category>MASTER</category> <cardinality>1</cardinality> <commandScript> <script>scripts/master.py</script> <scriptType>PYTHON</scriptType> <timeout>600</timeout> </commandScript> </component> ……… </components>

Page 14: Leveraging Ambari to Build Comprehensive Management · PDF fileFor Your Hadoop Applications by ... Technical Architect at Pivotal, BigData, Hadoop, SpringXD, Apache Committer, Crunch

Service / Command Scriptimport sys from resource_management import * class Master(Script): def install(self, env): def stop(self, env): def start(self, env): def status(self, env): def configure(self, env): if __name__ == "__main__": Master().execute()

import sys from resource_management import * class Slave(Script): def install(self, env): def stop(self, env): def start(self, env): def status(self, env): def configure(self, env): if __name__ == "__main__": Slave().execute()

Page 15: Leveraging Ambari to Build Comprehensive Management · PDF fileFor Your Hadoop Applications by ... Technical Architect at Pivotal, BigData, Hadoop, SpringXD, Apache Committer, Crunch

Service / Demo

Page 16: Leveraging Ambari to Build Comprehensive Management · PDF fileFor Your Hadoop Applications by ... Technical Architect at Pivotal, BigData, Hadoop, SpringXD, Apache Committer, Crunch

Ambari Blueprint

Page 17: Leveraging Ambari to Build Comprehensive Management · PDF fileFor Your Hadoop Applications by ... Technical Architect at Pivotal, BigData, Hadoop, SpringXD, Apache Committer, Crunch

Why?• Installation Automation

• Declarative definition of a cluster

• Specify a Stack, the Component layout and the Configurations to materialize a cluster

• REST API

Page 18: Leveraging Ambari to Build Comprehensive Management · PDF fileFor Your Hadoop Applications by ... Technical Architect at Pivotal, BigData, Hadoop, SpringXD, Apache Committer, Crunch

Blueprint Flow

Ambari Server

node 1

Cluster 1

node 2 node N

Cluster 2

. . . .

Cluster Z

. . . .

Blueprint (json)

Host Mapping (json)

REST API

Page 19: Leveraging Ambari to Build Comprehensive Management · PDF fileFor Your Hadoop Applications by ... Technical Architect at Pivotal, BigData, Hadoop, SpringXD, Apache Committer, Crunch

Blueprint Deploy{ "Blueprints" : { "stack_name" : "PHD", "stack_version" : "3.0" }, "configurations" : [ { "hawq-site" : { "properties" : { "hawq.master.port" : "5532" } } } ], "host_groups" : [ { "name" : "management_masters", "components" : [ { "name" : "NAMENODE" }, { "name" : "HAWQMASTER" } ], "cardinality" : "1" }, …… ]}

POST /api/v1/blueprints/my-blueprint

{ "blueprint" : "hdfs-hawq-blueprint", "default_password" : "secret-password", "host_groups" : [ { "name" : "management_masters", "hosts": [ { "fqdn":"ambari.localdomain" } ] }, { "name" : "masters_workers", "hosts": [ { "fqdn":"phd1.localdomain" }, { "fqdn":"phd2.localdomain" }, { "fqdn":"phd3.localdomain" } ] } ] }

POST /api/v1/clusters/my-cluster

Page 20: Leveraging Ambari to Build Comprehensive Management · PDF fileFor Your Hadoop Applications by ... Technical Architect at Pivotal, BigData, Hadoop, SpringXD, Apache Committer, Crunch

Blueprint REST API/api/v1/blueprint

Cluster Logical Structure and configuration

/api/v1/clusterPhysical cluster mapping. Materializes a blueprint with real infrastructure

/api/v1/clusters/<cluster name>?format=blueprint

Exports blueprint for an existing cluster

Page 21: Leveraging Ambari to Build Comprehensive Management · PDF fileFor Your Hadoop Applications by ... Technical Architect at Pivotal, BigData, Hadoop, SpringXD, Apache Committer, Crunch

Blueprint Demo

Page 22: Leveraging Ambari to Build Comprehensive Management · PDF fileFor Your Hadoop Applications by ... Technical Architect at Pivotal, BigData, Hadoop, SpringXD, Apache Committer, Crunch

Ambari Views

Page 23: Leveraging Ambari to Build Comprehensive Management · PDF fileFor Your Hadoop Applications by ... Technical Architect at Pivotal, BigData, Hadoop, SpringXD, Apache Committer, Crunch

View Components

Ambari Server

Ambari Web

Server Side (java)

Client Side (js,html..)

REST API

VIEW

PAC

KAG

E (J

AR)

• Client Side - any client-side technologies

• Server Side - Java application, Servlet, a REST service or ResourceProvider.

• View Package - JAR bundles of the view definition and resources

• View Context - Instance attributes and configuration

context

Page 24: Leveraging Ambari to Build Comprehensive Management · PDF fileFor Your Hadoop Applications by ... Technical Architect at Pivotal, BigData, Hadoop, SpringXD, Apache Committer, Crunch

View Packageview.xml

<server packages + classes>

index.html <supporting UI assets>

WEB-INF (lib/*.jar)

Page 25: Leveraging Ambari to Build Comprehensive Management · PDF fileFor Your Hadoop Applications by ... Technical Architect at Pivotal, BigData, Hadoop, SpringXD, Apache Committer, Crunch

View Context• On the Server Side

• View-instance Config

• View-instance Attributes

• Execution context, authenticated user principal

ViewContext

getUsername() : String getViewName() : String getInstanceName() : String getProperties() : Map<String,String> putInstanceData(…) getInstanceData(…) : String

Page 26: Leveraging Ambari to Build Comprehensive Management · PDF fileFor Your Hadoop Applications by ... Technical Architect at Pivotal, BigData, Hadoop, SpringXD, Apache Committer, Crunch

View Dashboard

Page 27: Leveraging Ambari to Build Comprehensive Management · PDF fileFor Your Hadoop Applications by ... Technical Architect at Pivotal, BigData, Hadoop, SpringXD, Apache Committer, Crunch

View REST APIGET /api/v1/views List deployed views

GET /api/v1/views/<View Name> List all View instances

GET /api/v1/views/<View Name>/versions/<View Version>

Show specific View instance

POST /api/v1/views/<View Name>/versions/<View Version>/instances/<Instance Name> [{“ViewInstanceInfo":{ "properties" : { "dataworker.defaultFs":“webhdfs://namenode.host:50070" }}}]

Create new View Instance

Page 28: Leveraging Ambari to Build Comprehensive Management · PDF fileFor Your Hadoop Applications by ... Technical Architect at Pivotal, BigData, Hadoop, SpringXD, Apache Committer, Crunch

Google Polymerhttps://www.polymer-project.org/1.0/

Page 29: Leveraging Ambari to Build Comprehensive Management · PDF fileFor Your Hadoop Applications by ... Technical Architect at Pivotal, BigData, Hadoop, SpringXD, Apache Committer, Crunch

View Demo

https://github.com/tzolov/ambari-webpage-embedder-view

https://youtu.be/qaR_6OBeKsQ

Page 30: Leveraging Ambari to Build Comprehensive Management · PDF fileFor Your Hadoop Applications by ... Technical Architect at Pivotal, BigData, Hadoop, SpringXD, Apache Committer, Crunch

Ambari Monitoring

Page 31: Leveraging Ambari to Build Comprehensive Management · PDF fileFor Your Hadoop Applications by ... Technical Architect at Pivotal, BigData, Hadoop, SpringXD, Apache Committer, Crunch

Ambari Metrics SystemCollect, Aggregate and Serve System Metrics

• Metric Collector - Collects and Aggregates

• Metric Monitor - System-level metrics

• Metric Hadoop Sinks - Service-level metrics

Page 32: Leveraging Ambari to Build Comprehensive Management · PDF fileFor Your Hadoop Applications by ... Technical Architect at Pivotal, BigData, Hadoop, SpringXD, Apache Committer, Crunch

AMS Architecture

Page 33: Leveraging Ambari to Build Comprehensive Management · PDF fileFor Your Hadoop Applications by ... Technical Architect at Pivotal, BigData, Hadoop, SpringXD, Apache Committer, Crunch

Ambari & Cloud

Page 34: Leveraging Ambari to Build Comprehensive Management · PDF fileFor Your Hadoop Applications by ... Technical Architect at Pivotal, BigData, Hadoop, SpringXD, Apache Committer, Crunch

Virtualization & Cloud• Vagrant - PivotalHD

(https://github.com/tzolov/vagrant-pivotalhd)

• Cloudbreak (http://sequenceiq.com/cloudbreak/)

Page 35: Leveraging Ambari to Build Comprehensive Management · PDF fileFor Your Hadoop Applications by ... Technical Architect at Pivotal, BigData, Hadoop, SpringXD, Apache Committer, Crunch

Thank You!