You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ambari.apache.org by "Srimanth Gunturi (JIRA)" <ji...@apache.org> on 2014/08/15 03:09:18 UTC

[jira] [Created] (AMBARI-6870) BE: Provide configurations validation via /validations endpoint on stack-version

Srimanth Gunturi created AMBARI-6870:
----------------------------------------

             Summary: BE: Provide configurations validation via /validations endpoint on stack-version
                 Key: AMBARI-6870
                 URL: https://issues.apache.org/jira/browse/AMBARI-6870
             Project: Ambari
          Issue Type: Task
          Components: controller
    Affects Versions: 1.7.0
            Reporter: Srimanth Gunturi
            Assignee: Srimanth Gunturi
             Fix For: 1.7.0


To enable Ambari server in giving validations, we need to provide a _/validations_ endpoint inside the stack-version URL. Callers will then be able to ask a stack-version to validate host-layout and configurations.

In this JIRA, we will provide just the configurations validations where the host-layout and configurations entered by the user are given, and the API responds with validation messages.

{code}
POST 
http://server:8080/api/v1/stacks/HDP/versions/2.1/validations
{code}
Request:
{code}
{
  hosts: ['h1', 'h2', 'h3'],
  services: ['HDFS', 'YARN', 'HBASE'],
  recommendations: {
    blueprint: {
      configurations: {
        global: {
          ‘properties’: {
            ‘hbase_user’: ‘hbase’,
            ‘clientPort’: ‘2181’,
            ‘hadoop_heapsize’: ‘1024’,
            ...
          }
        },
        core-site: { … },
        hdfs-site: { … },
        yarn-site: { … },
        hbase-site: { … }
      },
      host_groups: [
        {
          name: ‘host-group-1’,
          components: [
            {
              name: ‘NAMENODE’
            },
            {
              name: ‘SNAMENODE’
            }
          ]
        },
        {
          name: ‘host-group-2’,
          components: [
            {
              name: ‘RESOURCEMANAGER’
            }
          ]
        },
        {
          name: ‘host-group-3’,
          components: [
            {
              name: ‘DATANODE’,
            },
            {
              name: ‘NODEMANAGER’,
            },
            {
              name: ‘HBASE_REGIONSERVER’,
            }
          ]
        }
      ]
    },
    blueprint_cluster_binding: {
      host_groups: [
        {
          name: ‘host-group-1’,
          hosts: [
            {
              fqdn: ‘c6401.ambari.apache.org’
            }
          ]
        },
        {
          name: ‘host-group-1’,
          hosts: [
            {
              fqdn: ‘c6402.ambari.apache.org’
            }
          ]
        },
        {
          name: ‘host-group-3’,
          hosts: [
            {
              fqdn: ‘c6403.ambari.apache.org’
            }
          ]
        }
      ]
    }
  }
}
{code}
Response:
{code}
{
  items: [
    {
      type: ‘configuration’,
      level: ‘ERROR’,
      message: ‘Value should be integer’,
      config-type:’mapred-site’,
      config-name:'mapreduce.map.memory.mb'
    },
    {
      type: ‘configuration’,
      level: ‘WARN’,
      message: ‘Maximum memory exceeds map memory size’,
      config-type:’mapred-site’,
      config-name:'mapreduce.map.java.opt'
    },
    {
      type: ‘configuration’,
      level: ‘ERROR’,
      message: ‘yarn.new-config should be defined for HDP-2.1 Yarn service’,
      config-type:’yarn-site’,
      config-name:'yarn.new-config'
    },
    {
      type: ‘configuration’,
      level: ‘WARN’,
      message: ‘yarn.old-config has been deprecated in HDP-2.1’,
      config-type:’yarn-site’,
      config-name:'yarn.old-config'
    },
    {
      type: ‘host-component’,
      level: ‘ERROR’,
      message: ‘NameNode and Secondary NameNode cannot be hosted on same machine’,
      component-name:’NAMENODE’,
      host:'c6401.ambari.apache.org'
    },
    {
      type: ‘host-component’,
      level: ‘ERROR’,
      message: ‘NameNode and Secondary NameNode cannot be hosted on same machine’,
      component-name:’SNAMENODE’,
      host:'c6401.ambari.apache.org'
    }
  ]
}
{code}

There will be 2 types of validation messages
* Configuration
** type = configuration
** level = WARN, ERROR
** message
** config-type = global, core-site, …
** config-name
** host-group (optional)
* Host-Component
** type = host-component
** level = WARN, ERROR
** message
** component-name: NAMENODE, SNAMENODE, …
** host: <host-fqdn>

There are 2 validation levels
* WARN - value is valid, but semantically there may be issues (like > or < default)
* ERROR - value is not valid and will cause service to fail.




--
This message was sent by Atlassian JIRA
(v6.2#6252)