You are viewing a plain text version of this content. The canonical link for it is here.
Posted to yarn-dev@hadoop.apache.org by "Gour Saha (JIRA)" <ji...@apache.org> on 2018/05/03 20:41:00 UTC

[jira] [Created] (YARN-8243) Flex down should first remove pending container requests (if any) and then kill running containers

Gour Saha created YARN-8243:
-------------------------------

             Summary: Flex down should first remove pending container requests (if any) and then kill running containers
                 Key: YARN-8243
                 URL: https://issues.apache.org/jira/browse/YARN-8243
             Project: Hadoop YARN
          Issue Type: Sub-task
          Components: yarn-native-services
    Affects Versions: 3.1.0
            Reporter: Gour Saha


This is easy to test on a service with anti-affinity component, to simulate pending container requests. It can be simulated by other means also (no resource left in cluster, etc.).

Service yarnfile used to test this -
{code:java}
{
  "name": "sleeper-service",
  "version": "1",
  "components" :
  [
    {
      "name": "ping",
      "number_of_containers": 2,
      "resource": {
        "cpus": 1,
        "memory": "256"
      },
      "launch_command": "sleep 9000",
      "placement_policy": {
        "constraints": [
          {
            "type": "ANTI_AFFINITY",
            "scope": "NODE",
            "target_tags": [
              "ping"
            ]
          }
        ]
      }
    }
  ]
}
{code}
Launch a service with the above yarnfile as below -
{code:java}
yarn app -launch simple-aa-1 simple_AA.json
{code}
Let's assume there are only 5 nodes in this cluster. Now, flex the above service to 1 extra container than the number of nodes (6 in my case).
{code:java}
yarn app -flex simple-aa-1 -component ping 6
{code}
Only 5 containers will be allocated and running for simple-aa-1. At this point, flex it down to 5 containers -
{code:java}
yarn app -flex simple-aa-1 -component ping 5
{code}
This is what is seen in the serviceam log at this point -
{code:java}
2018-05-03 20:17:38,469 [IPC Server handler 0 on 38124] INFO  service.ClientAMService - Flexing component ping to 5
2018-05-03 20:17:38,469 [Component  dispatcher] INFO  component.Component - [FLEX DOWN COMPONENT ping]: scaling down from 6 to 5
2018-05-03 20:17:38,470 [Component  dispatcher] INFO  instance.ComponentInstance - [COMPINSTANCE ping-4 : container_1525297086734_0013_01_000006]: Flexed down by user, destroying.
2018-05-03 20:17:38,473 [Component  dispatcher] INFO  component.Component - [COMPONENT ping] Transitioned from FLEXING to STABLE on FLEX event.
2018-05-03 20:17:38,474 [pool-5-thread-8] INFO  registry.YarnRegistryViewForProviders - [COMPINSTANCE ping-4 : container_1525297086734_0013_01_000006]: Deleting registry path /users/root/services/yarn-service/simple-aa-1/components/ctr-1525297086734-0013-01-000006
2018-05-03 20:17:38,476 [Component  dispatcher] ERROR component.Component - [COMPONENT ping]: Invalid event CHECK_STABLE at STABLE
org.apache.hadoop.yarn.state.InvalidStateTransitionException: Invalid event: CHECK_STABLE at STABLE
	at org.apache.hadoop.yarn.state.StateMachineFactory$MultipleInternalArc.doTransition(StateMachineFactory.java:388)
	at org.apache.hadoop.yarn.state.StateMachineFactory.doTransition(StateMachineFactory.java:302)
	at org.apache.hadoop.yarn.state.StateMachineFactory.access$500(StateMachineFactory.java:46)
	at org.apache.hadoop.yarn.state.StateMachineFactory$InternalStateMachine.doTransition(StateMachineFactory.java:487)
	at org.apache.hadoop.yarn.service.component.Component.handle(Component.java:913)
	at org.apache.hadoop.yarn.service.ServiceScheduler$ComponentEventHandler.handle(ServiceScheduler.java:574)
	at org.apache.hadoop.yarn.service.ServiceScheduler$ComponentEventHandler.handle(ServiceScheduler.java:563)
	at org.apache.hadoop.yarn.event.AsyncDispatcher.dispatch(AsyncDispatcher.java:197)
	at org.apache.hadoop.yarn.event.AsyncDispatcher$1.run(AsyncDispatcher.java:126)
	at java.lang.Thread.run(Thread.java:745)
2018-05-03 20:17:38,480 [Component  dispatcher] ERROR component.Component - [COMPONENT ping]: Invalid event CHECK_STABLE at STABLE
org.apache.hadoop.yarn.state.InvalidStateTransitionException: Invalid event: CHECK_STABLE at STABLE
	at org.apache.hadoop.yarn.state.StateMachineFactory$MultipleInternalArc.doTransition(StateMachineFactory.java:388)
	at org.apache.hadoop.yarn.state.StateMachineFactory.doTransition(StateMachineFactory.java:302)
	at org.apache.hadoop.yarn.state.StateMachineFactory.access$500(StateMachineFactory.java:46)
	at org.apache.hadoop.yarn.state.StateMachineFactory$InternalStateMachine.doTransition(StateMachineFactory.java:487)
	at org.apache.hadoop.yarn.service.component.Component.handle(Component.java:913)
	at org.apache.hadoop.yarn.service.ServiceScheduler$ComponentEventHandler.handle(ServiceScheduler.java:574)
	at org.apache.hadoop.yarn.service.ServiceScheduler$ComponentEventHandler.handle(ServiceScheduler.java:563)
	at org.apache.hadoop.yarn.event.AsyncDispatcher.dispatch(AsyncDispatcher.java:197)
	at org.apache.hadoop.yarn.event.AsyncDispatcher$1.run(AsyncDispatcher.java:126)
	at java.lang.Thread.run(Thread.java:745)
2018-05-03 20:17:38,578 [pool-5-thread-8] INFO  instance.ComponentInstance - [COMPINSTANCE ping-4 : container_1525297086734_0013_01_000006]: Deleted component instance dir: hdfs://ctr-e138-1518143905142-280820-01-000003.example.site:8020/user/root/.yarn/services/simple-aa-1/components/1/ping/ping-4
2018-05-03 20:17:39,268 [AMRM Callback Handler Thread] WARN  service.ServiceScheduler - Container container_1525297086734_0013_01_000006 Completed. No component instance exists. exitStatus=-100. diagnostics=Container released by application 
2018-05-03 20:17:40,273 [AMRM Callback Handler Thread] INFO  service.ServiceScheduler - 1 containers allocated. 
2018-05-03 20:17:40,273 [AMRM Callback Handler Thread] INFO  service.ServiceScheduler - [COMPONENT ping]: remove 0 outstanding container requests for allocateId 0
2018-05-03 20:17:40,274 [Component  dispatcher] INFO  component.Component - [COMPONENT ping]: container_1525297086734_0013_01_000007 allocated, num pending component instances reduced to 0
2018-05-03 20:17:40,274 [Component  dispatcher] INFO  component.Component - [COMPONENT ping]: Assigned container_1525297086734_0013_01_000007 to component instance ping-5 and launch on host ctr-e138-1518143905142-280820-01-000008.example.site:25454 
2018-05-03 20:17:40,277 [pool-6-thread-6] INFO  provider.ProviderUtils - [COMPINSTANCE ping-5 : container_1525297086734_0013_01_000007]: Creating dir on hdfs: hdfs://ctr-e138-1518143905142-280820-01-000003.example.site:8020/user/root/.yarn/services/simple-aa-1/components/1/ping/ping-5
2018-05-03 20:17:40,316 [pool-6-thread-6] INFO  containerlaunch.ContainerLaunchService - launching container container_1525297086734_0013_01_000007
2018-05-03 20:17:40,318 [org.apache.hadoop.yarn.client.api.async.impl.NMClientAsyncImpl #5] INFO  impl.NMClientAsyncImpl - Processing Event EventType: START_CONTAINER for Container container_1525297086734_0013_01_000007
2018-05-03 20:17:40,338 [Component  dispatcher] ERROR component.Component - [COMPONENT ping]: Invalid event CONTAINER_STARTED at STABLE
org.apache.hadoop.yarn.state.InvalidStateTransitionException: Invalid event: CONTAINER_STARTED at STABLE
	at org.apache.hadoop.yarn.state.StateMachineFactory.doTransition(StateMachineFactory.java:305)
	at org.apache.hadoop.yarn.state.StateMachineFactory.access$500(StateMachineFactory.java:46)
	at org.apache.hadoop.yarn.state.StateMachineFactory$InternalStateMachine.doTransition(StateMachineFactory.java:487)
	at org.apache.hadoop.yarn.service.component.Component.handle(Component.java:913)
	at org.apache.hadoop.yarn.service.ServiceScheduler$ComponentEventHandler.handle(ServiceScheduler.java:574)
	at org.apache.hadoop.yarn.service.ServiceScheduler$ComponentEventHandler.handle(ServiceScheduler.java:563)
	at org.apache.hadoop.yarn.event.AsyncDispatcher.dispatch(AsyncDispatcher.java:197)
	at org.apache.hadoop.yarn.event.AsyncDispatcher$1.run(AsyncDispatcher.java:126)
	at java.lang.Thread.run(Thread.java:745)
{code}
Status response shows that only 4 containers are running and the service is not in STABLE state -
{code:java}
yarn app -status simple-aa-1
{code}
output -
{code:java}
{
    "components": [
        {
            "configuration": {
                "env": {},
                "files": [],
                "properties": {}
            },
            "containers": [
                {
                    "bare_host": "ctr-e138-1518143905142-280820-01-000007.example.site",
                    "component_instance_name": "ping-1",
                    "hostname": "ctr-e138-1518143905142-280820-01-000007.example.site",
                    "id": "container_1525297086734_0013_01_000003",
                    "ip": "x.x.x.x",
                    "launch_time": 1525378141535,
                    "state": "READY"
                },
                {
                    "bare_host": "ctr-e138-1518143905142-280820-01-000006.example.site",
                    "component_instance_name": "ping-0",
                    "hostname": "ctr-e138-1518143905142-280820-01-000006.example.site",
                    "id": "container_1525297086734_0013_01_000002",
                    "ip": "x.x.x.x",
                    "launch_time": 1525378141513,
                    "state": "READY"
                },
                {
                    "bare_host": "ctr-e138-1518143905142-280820-01-000005.example.site",
                    "component_instance_name": "ping-3",
                    "hostname": "ctr-e138-1518143905142-280820-01-000005.example.site",
                    "id": "container_1525297086734_0013_01_000005",
                    "ip": "x.x.x.x",
                    "launch_time": 1525378303429,
                    "state": "READY"
                },
                {
                    "bare_host": "ctr-e138-1518143905142-280820-01-000004.example.site",
                    "component_instance_name": "ping-2",
                    "hostname": "ctr-e138-1518143905142-280820-01-000004.example.site",
                    "id": "container_1525297086734_0013_01_000004",
                    "ip": "x.x.x.x",
                    "launch_time": 1525378303425,
                    "state": "READY"
                }
            ],
            "dependencies": [],
            "launch_command": "sleep 9000",
            "name": "ping",
            "number_of_containers": 5,
            "placement_policy": {
                "constraints": [
                    {
                        "node_attributes": {},
                        "node_partitions": [],
                        "scope": "NODE",
                        "target_tags": [
                            "ping"
                        ],
                        "type": "ANTI_AFFINITY"
                    }
                ]
            },
            "quicklinks": [],
            "resource": {
                "additional": {},
                "cpus": 1,
                "memory": "256"
            },
            "run_privileged_container": false,
            "state": "FLEXING"
        }
    ],
    "configuration": {
        "env": {},
        "files": [],
        "properties": {}
    },
    "id": "application_1525297086734_0013",
    "kerberos_principal": {},
    "lifetime": -1,
    "name": "simple-aa-1",
    "quicklinks": {},
    "state": "STARTED",
    "version": "1"
}
{code}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: yarn-dev-unsubscribe@hadoop.apache.org
For additional commands, e-mail: yarn-dev-help@hadoop.apache.org