You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@helix.apache.org by kishore g <g....@gmail.com> on 2014/02/26 02:41:45 UTC

Helix-YARN integration

Hi,

I finally have a working example to demonstrate Helix and YARN integration.

This is what the user provides

   1. An application spec that defines number of services. For each
   service, the spec provides the configuration, number of containers,
   deployable package
   2. A service implementation for each service that handles service
   init/start/stop.

What Helix-YARN provides

   1. Automatically requests containers from YARN and launch the services.
   2. Monitors the state of the services and makes it discoverable.
   3. Detects container failure and re-launches it by requesting new
   containers from YARN
   4. Allows one to increase/decrease the number of containers dynamically.

Helloworld recipe code is here
https://git-wip-us.apache.org/repos/asf?p=helix.git;a=tree;f=recipes/helloworld-provisioning-yarn/src/main/java/org/apache/helix/provisioning/yarn/example;hb=helix-provisioning

Here are the setup of instructions to try a HelloWorld service example. It
will be great if we can get feedback/suggestions/questions.


//Install YARN, local single node cluster.
See the instructions here
Setup YARN using the instructions here
http://codesfusion.blogspot.com/2013/10/setup-hadoop-2x-220-on-ubuntu.html?m=1.

Take a look at the single node setup script, I haven't tried this but looks
like it should do the trick. https://github.com/ericduq/hadoop-scripts
export YARN_HOME=<path to where YARN/HADOOP is installed>
//ADD HADOOP/YARN xml files in the classpath, Don't miss this step.
export CLASSPATH_PREFIX=$YARN_HOME/etc/hadoop

git clone https://git-wip-us.apache.org/repos/asf?p=helix.git helix
cd helix
git checkout helix-provisioning


export HELIX_CORE_SCRIPTS_HOME=`pwd`/helix-core/target/helix-core-pkg/bin
export
HELIX_PROVISIONING_SCRIPTS_HOME=`pwd`/helix-provisioning/target/helix-provisioning-pkg/bin


export HELLOWORLD_APP_HOME=`pwd`/recipes/helloworld-provisioning-yarn
export
HELLOWORLD_APP_SCRIPTS_HOME=`pwd`/recipes/helloworld-provisioning-yarn/target/helloworld-provisioning-yarn/bin



mvn clean package -DskipTests

chmod +x $HELIX_PROVISIONING_SCRIPTS_HOME/*.sh
chmod +x $HELIX_CORE_SCRIPTS_HOME/*.sh
chmod +x $HELLOWORLD_APP_SCRIPTS_HOME/*.sh


$HELLOWORLD_APP_SCRIPTS_HOME/app-launcher.sh
--app_spec_provider
org.apache.helix.provisioning.yarn.example.HelloWordAppSpecFactory
--app_config_spec
$HELLOWORLD_APP_HOME/src/main/resources/hello_world_app_spec.yaml

hello_world_app_spec.yaml
================================
!!org.apache.helix.provisioning.yarn.example.HelloworldAppSpec
appConfig:
  config: {
    k1: v1
  }
appMasterPackageUri:
'file:///Users/kgopalak/Documents/projects/incubator-helix/recipes/helloworld-provisioning-yarn/target/helloworld-provisioning-yarn-0.7.1-incubating-SNAPSHOT-pkg.tar'
appName: testApp
serviceConfigMap:
  HelloWorld: {
    num_containers: 3,
    memory: 1024
  }
serviceMainClassMap: {
  HelloWorld: org.apache.helix.provisioning.yarn.example.HelloWorldService
}
servicePackageURIMap: {
  HelloWorld:
'file:///Users/kgopalak/Documents/projects/incubator-helix/recipes/helloworld-provisioning-yarn/target/helloworld-provisioning-yarn-0.7.1-incubating-SNAPSHOT-pkg.tar'
}
services: [
  HelloWorld]
taskConfigs: null
======================================



14/02/25 16:44:19 INFO yarn.AppLauncher: Submitted application with
applicationId:application_1393375114439_0003
14/02/25 16:44:19 INFO yarn.AppLauncher: Got application report from ASM
for, appId=3, clientToAMToken=null, appDiagnostics=, appMasterHost=N/A,
appQueue=default, appMasterRpcPort=0, appStartTime=1393375458993,
yarnAppState=ACCEPTED, distributedFinalState=UNDEFINED,
appTrackingUrl=kgopalak-mn2:8088/proxy/application_1393375114439_0003/,
appUser=kgopalak
14/02/25 16:44:49 INFO yarn.AppLauncher: Got application report from ASM
for, appId=3, clientToAMToken=null, appDiagnostics=,
appMasterHost=kgopalak-mn2/172.21.157.207, appQueue=default,
appMasterRpcPort=-1, appStartTime=1393375458993, yarnAppState=RUNNING,
distributedFinalState=UNDEFINED,
appTrackingUrl=kgopalak-mn2:8088/proxy/application_1393375114439_0003/A,
appUser=kgopalak

SERVICE    HelloWorld
    CONTAINER_NAME        CONTAINER_STATE    SERVICE_STATE    CONTAINER_ID
    HelloWorld_container_2    CONNECTED    ONLINE
container_1393375114439_0003_01_000004
    HelloWorld_container_1    CONNECTED    ONLINE
container_1393375114439_0003_01_000003
    HelloWorld_container_0    CONNECTED    ONLINE
container_1393375114439_0003_01_000002

//FAILURE
Stop a container HelloWorld_container_0. This will stop
container_1393375114439_0003_01_000002 container, the Application Master
detects that and restarts the container as
container_1393375114439_0003_01_000005. Any configuration/metadata set by
the old container container_1393375114439_0003_01_000002 will be made
available to container_1393375114439_0003_01_000005.

$HELIX_PROVISIONING_SCRIPTS_HOME/container-admin.sh --zookeeperAddress
localhost:2181 --stopContainer  testApp HelloWorld_container_0


SERVICE    HelloWorld
    CONTAINER_NAME        CONTAINER_STATE    SERVICE_STATE    CONTAINER_ID
    HelloWorld_container_2    CONNECTED    ONLINE
container_1393375114439_0003_01_000004
    HelloWorld_container_1    CONNECTED    ONLINE
container_1393375114439_0003_01_000003
    HelloWorld_container_0    CONNECTED    ONLINE
container_1393375114439_0003_01_000005

//Scale down
Decrease the number of containers from 3 to 2. This will decrease the
number of containers for HelloWorld service. It always stops the container
that is ranked the lowest when sorted by their names (not container id).
$HELIX_PROVISIONING_SCRIPTS_HOME/update-provisioner-config.sh
--zookeeperAddress localhost:2181 --updateContainerCount testApp HelloWorld
2

SERVICE    HelloWorld
    CONTAINER_NAME        CONTAINER_STATE    SERVICE_STATE    CONTAINER_ID
    HelloWorld_container_1    CONNECTED    ONLINE
container_1393375114439_0003_01_000003
    HelloWorld_container_0    CONNECTED    ONLINE
container_1393375114439_0003_01_000005


//SCALE UP

Increase the number of containers from 2 to 4.
SERVICE    HelloWorld
    CONTAINER_NAME        CONTAINER_STATE    SERVICE_STATE    CONTAINER_ID
    HelloWorld_container_2    CONNECTED    ONLINE
container_1393375114439_0003_01_000009
    HelloWorld_container_1    CONNECTED    ONLINE
container_1393375114439_0003_01_000003
    HelloWorld_container_3    CONNECTED    ONLINE
container_1393375114439_0003_01_000010
    HelloWorld_container_0    CONNECTED    ONLINE
container_1393375114439_0003_01_000005


At any point, additional information about the cluster can be got via
Helix-Admin apis.
http://helix.apache.org/0.6.2-incubating-docs/tutorial_admin.html

Thanks,
Kishore G

RE: Helix-YARN integration

Posted by Kanak Biscuitwala <ka...@hotmail.com>.
Hi Henry,

Kishore's writing a blog post to make this more clear. In the mean time, the Helix+Yarn integration is driven by the following motivations (among others):

1. Currently when Helix-managed nodes go down, Helix is great at distributing the work across the remaining machines. With YARN/Mesos integration, Helix can call into provisioners to replace nodes instead or in addition to this redistribution.

2. YARN submits tasks at container granularity. With Helix serving as a generic app master, Helix will request containers, and then issue a diversity of tasks to run within those requested containers (thus allowing for finer-grained assignments).

3. Because Helix can act as a generic app master, many apps can just submit work/services without having to write their own.

Kanak

----------------------------------------
> Date: Sun, 2 Mar 2014 00:06:55 -0800
> Subject: Re: Helix-YARN integration
> From: henry.saputra@gmail.com
> To: dev@helix.apache.org
>
> HI Kishore,
>
> Thanks for the attempt to make Helix-YARN integration.
>
> I have not tried out the code but I am kind of missing the integration
> piece to YARN from the description.
> Is it that Helix participants will delegate the task they need to
> execute to the YARN via it's application master?
>
>
> - Henry
>
> On Tue, Feb 25, 2014 at 5:41 PM, kishore g <g....@gmail.com> wrote:
>> Hi,
>>
>> I finally have a working example to demonstrate Helix and YARN integration.
>>
>> This is what the user provides
>>
>> 1. An application spec that defines number of services. For each
>> service, the spec provides the configuration, number of containers,
>> deployable package
>> 2. A service implementation for each service that handles service
>> init/start/stop.
>>
>> What Helix-YARN provides
>>
>> 1. Automatically requests containers from YARN and launch the services.
>> 2. Monitors the state of the services and makes it discoverable.
>> 3. Detects container failure and re-launches it by requesting new
>> containers from YARN
>> 4. Allows one to increase/decrease the number of containers dynamically.
>>
>> Helloworld recipe code is here
>> https://git-wip-us.apache.org/repos/asf?p=helix.git;a=tree;f=recipes/helloworld-provisioning-yarn/src/main/java/org/apache/helix/provisioning/yarn/example;hb=helix-provisioning
>>
>> Here are the setup of instructions to try a HelloWorld service example. It
>> will be great if we can get feedback/suggestions/questions.
>>
>>
>> //Install YARN, local single node cluster.
>> See the instructions here
>> Setup YARN using the instructions here
>> http://codesfusion.blogspot.com/2013/10/setup-hadoop-2x-220-on-ubuntu.html?m=1.
>>
>> Take a look at the single node setup script, I haven't tried this but looks
>> like it should do the trick. https://github.com/ericduq/hadoop-scripts
>> export YARN_HOME=<path to where YARN/HADOOP is installed>
>> //ADD HADOOP/YARN xml files in the classpath, Don't miss this step.
>> export CLASSPATH_PREFIX=$YARN_HOME/etc/hadoop
>>
>> git clone https://git-wip-us.apache.org/repos/asf?p=helix.git helix
>> cd helix
>> git checkout helix-provisioning
>>
>>
>> export HELIX_CORE_SCRIPTS_HOME=`pwd`/helix-core/target/helix-core-pkg/bin
>> export
>> HELIX_PROVISIONING_SCRIPTS_HOME=`pwd`/helix-provisioning/target/helix-provisioning-pkg/bin
>>
>>
>> export HELLOWORLD_APP_HOME=`pwd`/recipes/helloworld-provisioning-yarn
>> export
>> HELLOWORLD_APP_SCRIPTS_HOME=`pwd`/recipes/helloworld-provisioning-yarn/target/helloworld-provisioning-yarn/bin
>>
>>
>>
>> mvn clean package -DskipTests
>>
>> chmod +x $HELIX_PROVISIONING_SCRIPTS_HOME/*.sh
>> chmod +x $HELIX_CORE_SCRIPTS_HOME/*.sh
>> chmod +x $HELLOWORLD_APP_SCRIPTS_HOME/*.sh
>>
>>
>> $HELLOWORLD_APP_SCRIPTS_HOME/app-launcher.sh
>> --app_spec_provider
>> org.apache.helix.provisioning.yarn.example.HelloWordAppSpecFactory
>> --app_config_spec
>> $HELLOWORLD_APP_HOME/src/main/resources/hello_world_app_spec.yaml
>>
>> hello_world_app_spec.yaml
>> ================================
>> !!org.apache.helix.provisioning.yarn.example.HelloworldAppSpec
>> appConfig:
>> config: {
>> k1: v1
>> }
>> appMasterPackageUri:
>> 'file:///Users/kgopalak/Documents/projects/incubator-helix/recipes/helloworld-provisioning-yarn/target/helloworld-provisioning-yarn-0.7.1-incubating-SNAPSHOT-pkg.tar'
>> appName: testApp
>> serviceConfigMap:
>> HelloWorld: {
>> num_containers: 3,
>> memory: 1024
>> }
>> serviceMainClassMap: {
>> HelloWorld: org.apache.helix.provisioning.yarn.example.HelloWorldService
>> }
>> servicePackageURIMap: {
>> HelloWorld:
>> 'file:///Users/kgopalak/Documents/projects/incubator-helix/recipes/helloworld-provisioning-yarn/target/helloworld-provisioning-yarn-0.7.1-incubating-SNAPSHOT-pkg.tar'
>> }
>> services: [
>> HelloWorld]
>> taskConfigs: null
>> ======================================
>>
>>
>>
>> 14/02/25 16:44:19 INFO yarn.AppLauncher: Submitted application with
>> applicationId:application_1393375114439_0003
>> 14/02/25 16:44:19 INFO yarn.AppLauncher: Got application report from ASM
>> for, appId=3, clientToAMToken=null, appDiagnostics=, appMasterHost=N/A,
>> appQueue=default, appMasterRpcPort=0, appStartTime=1393375458993,
>> yarnAppState=ACCEPTED, distributedFinalState=UNDEFINED,
>> appTrackingUrl=kgopalak-mn2:8088/proxy/application_1393375114439_0003/,
>> appUser=kgopalak
>> 14/02/25 16:44:49 INFO yarn.AppLauncher: Got application report from ASM
>> for, appId=3, clientToAMToken=null, appDiagnostics=,
>> appMasterHost=kgopalak-mn2/172.21.157.207, appQueue=default,
>> appMasterRpcPort=-1, appStartTime=1393375458993, yarnAppState=RUNNING,
>> distributedFinalState=UNDEFINED,
>> appTrackingUrl=kgopalak-mn2:8088/proxy/application_1393375114439_0003/A,
>> appUser=kgopalak
>>
>> SERVICE HelloWorld
>> CONTAINER_NAME CONTAINER_STATE SERVICE_STATE CONTAINER_ID
>> HelloWorld_container_2 CONNECTED ONLINE
>> container_1393375114439_0003_01_000004
>> HelloWorld_container_1 CONNECTED ONLINE
>> container_1393375114439_0003_01_000003
>> HelloWorld_container_0 CONNECTED ONLINE
>> container_1393375114439_0003_01_000002
>>
>> //FAILURE
>> Stop a container HelloWorld_container_0. This will stop
>> container_1393375114439_0003_01_000002 container, the Application Master
>> detects that and restarts the container as
>> container_1393375114439_0003_01_000005. Any configuration/metadata set by
>> the old container container_1393375114439_0003_01_000002 will be made
>> available to container_1393375114439_0003_01_000005.
>>
>> $HELIX_PROVISIONING_SCRIPTS_HOME/container-admin.sh --zookeeperAddress
>> localhost:2181 --stopContainer testApp HelloWorld_container_0
>>
>>
>> SERVICE HelloWorld
>> CONTAINER_NAME CONTAINER_STATE SERVICE_STATE CONTAINER_ID
>> HelloWorld_container_2 CONNECTED ONLINE
>> container_1393375114439_0003_01_000004
>> HelloWorld_container_1 CONNECTED ONLINE
>> container_1393375114439_0003_01_000003
>> HelloWorld_container_0 CONNECTED ONLINE
>> container_1393375114439_0003_01_000005
>>
>> //Scale down
>> Decrease the number of containers from 3 to 2. This will decrease the
>> number of containers for HelloWorld service. It always stops the container
>> that is ranked the lowest when sorted by their names (not container id).
>> $HELIX_PROVISIONING_SCRIPTS_HOME/update-provisioner-config.sh
>> --zookeeperAddress localhost:2181 --updateContainerCount testApp HelloWorld
>> 2
>>
>> SERVICE HelloWorld
>> CONTAINER_NAME CONTAINER_STATE SERVICE_STATE CONTAINER_ID
>> HelloWorld_container_1 CONNECTED ONLINE
>> container_1393375114439_0003_01_000003
>> HelloWorld_container_0 CONNECTED ONLINE
>> container_1393375114439_0003_01_000005
>>
>>
>> //SCALE UP
>>
>> Increase the number of containers from 2 to 4.
>> SERVICE HelloWorld
>> CONTAINER_NAME CONTAINER_STATE SERVICE_STATE CONTAINER_ID
>> HelloWorld_container_2 CONNECTED ONLINE
>> container_1393375114439_0003_01_000009
>> HelloWorld_container_1 CONNECTED ONLINE
>> container_1393375114439_0003_01_000003
>> HelloWorld_container_3 CONNECTED ONLINE
>> container_1393375114439_0003_01_000010
>> HelloWorld_container_0 CONNECTED ONLINE
>> container_1393375114439_0003_01_000005
>>
>>
>> At any point, additional information about the cluster can be got via
>> Helix-Admin apis.
>> http://helix.apache.org/0.6.2-incubating-docs/tutorial_admin.html
>>
>> Thanks,
>> Kishore G
 		 	   		  

Re: Helix-YARN integration

Posted by Henry Saputra <he...@gmail.com>.
HI Kishore,

Thanks for the attempt to make Helix-YARN integration.

I have not tried out the code but I am kind of missing the integration
piece to YARN from the description.
Is it that Helix participants will delegate the task they need to
execute to the YARN via it's application master?


- Henry

On Tue, Feb 25, 2014 at 5:41 PM, kishore g <g....@gmail.com> wrote:
> Hi,
>
> I finally have a working example to demonstrate Helix and YARN integration.
>
> This is what the user provides
>
>    1. An application spec that defines number of services. For each
>    service, the spec provides the configuration, number of containers,
>    deployable package
>    2. A service implementation for each service that handles service
>    init/start/stop.
>
> What Helix-YARN provides
>
>    1. Automatically requests containers from YARN and launch the services.
>    2. Monitors the state of the services and makes it discoverable.
>    3. Detects container failure and re-launches it by requesting new
>    containers from YARN
>    4. Allows one to increase/decrease the number of containers dynamically.
>
> Helloworld recipe code is here
> https://git-wip-us.apache.org/repos/asf?p=helix.git;a=tree;f=recipes/helloworld-provisioning-yarn/src/main/java/org/apache/helix/provisioning/yarn/example;hb=helix-provisioning
>
> Here are the setup of instructions to try a HelloWorld service example. It
> will be great if we can get feedback/suggestions/questions.
>
>
> //Install YARN, local single node cluster.
> See the instructions here
> Setup YARN using the instructions here
> http://codesfusion.blogspot.com/2013/10/setup-hadoop-2x-220-on-ubuntu.html?m=1.
>
> Take a look at the single node setup script, I haven't tried this but looks
> like it should do the trick. https://github.com/ericduq/hadoop-scripts
> export YARN_HOME=<path to where YARN/HADOOP is installed>
> //ADD HADOOP/YARN xml files in the classpath, Don't miss this step.
> export CLASSPATH_PREFIX=$YARN_HOME/etc/hadoop
>
> git clone https://git-wip-us.apache.org/repos/asf?p=helix.git helix
> cd helix
> git checkout helix-provisioning
>
>
> export HELIX_CORE_SCRIPTS_HOME=`pwd`/helix-core/target/helix-core-pkg/bin
> export
> HELIX_PROVISIONING_SCRIPTS_HOME=`pwd`/helix-provisioning/target/helix-provisioning-pkg/bin
>
>
> export HELLOWORLD_APP_HOME=`pwd`/recipes/helloworld-provisioning-yarn
> export
> HELLOWORLD_APP_SCRIPTS_HOME=`pwd`/recipes/helloworld-provisioning-yarn/target/helloworld-provisioning-yarn/bin
>
>
>
> mvn clean package -DskipTests
>
> chmod +x $HELIX_PROVISIONING_SCRIPTS_HOME/*.sh
> chmod +x $HELIX_CORE_SCRIPTS_HOME/*.sh
> chmod +x $HELLOWORLD_APP_SCRIPTS_HOME/*.sh
>
>
> $HELLOWORLD_APP_SCRIPTS_HOME/app-launcher.sh
> --app_spec_provider
> org.apache.helix.provisioning.yarn.example.HelloWordAppSpecFactory
> --app_config_spec
> $HELLOWORLD_APP_HOME/src/main/resources/hello_world_app_spec.yaml
>
> hello_world_app_spec.yaml
> ================================
> !!org.apache.helix.provisioning.yarn.example.HelloworldAppSpec
> appConfig:
>   config: {
>     k1: v1
>   }
> appMasterPackageUri:
> 'file:///Users/kgopalak/Documents/projects/incubator-helix/recipes/helloworld-provisioning-yarn/target/helloworld-provisioning-yarn-0.7.1-incubating-SNAPSHOT-pkg.tar'
> appName: testApp
> serviceConfigMap:
>   HelloWorld: {
>     num_containers: 3,
>     memory: 1024
>   }
> serviceMainClassMap: {
>   HelloWorld: org.apache.helix.provisioning.yarn.example.HelloWorldService
> }
> servicePackageURIMap: {
>   HelloWorld:
> 'file:///Users/kgopalak/Documents/projects/incubator-helix/recipes/helloworld-provisioning-yarn/target/helloworld-provisioning-yarn-0.7.1-incubating-SNAPSHOT-pkg.tar'
> }
> services: [
>   HelloWorld]
> taskConfigs: null
> ======================================
>
>
>
> 14/02/25 16:44:19 INFO yarn.AppLauncher: Submitted application with
> applicationId:application_1393375114439_0003
> 14/02/25 16:44:19 INFO yarn.AppLauncher: Got application report from ASM
> for, appId=3, clientToAMToken=null, appDiagnostics=, appMasterHost=N/A,
> appQueue=default, appMasterRpcPort=0, appStartTime=1393375458993,
> yarnAppState=ACCEPTED, distributedFinalState=UNDEFINED,
> appTrackingUrl=kgopalak-mn2:8088/proxy/application_1393375114439_0003/,
> appUser=kgopalak
> 14/02/25 16:44:49 INFO yarn.AppLauncher: Got application report from ASM
> for, appId=3, clientToAMToken=null, appDiagnostics=,
> appMasterHost=kgopalak-mn2/172.21.157.207, appQueue=default,
> appMasterRpcPort=-1, appStartTime=1393375458993, yarnAppState=RUNNING,
> distributedFinalState=UNDEFINED,
> appTrackingUrl=kgopalak-mn2:8088/proxy/application_1393375114439_0003/A,
> appUser=kgopalak
>
> SERVICE    HelloWorld
>     CONTAINER_NAME        CONTAINER_STATE    SERVICE_STATE    CONTAINER_ID
>     HelloWorld_container_2    CONNECTED    ONLINE
> container_1393375114439_0003_01_000004
>     HelloWorld_container_1    CONNECTED    ONLINE
> container_1393375114439_0003_01_000003
>     HelloWorld_container_0    CONNECTED    ONLINE
> container_1393375114439_0003_01_000002
>
> //FAILURE
> Stop a container HelloWorld_container_0. This will stop
> container_1393375114439_0003_01_000002 container, the Application Master
> detects that and restarts the container as
> container_1393375114439_0003_01_000005. Any configuration/metadata set by
> the old container container_1393375114439_0003_01_000002 will be made
> available to container_1393375114439_0003_01_000005.
>
> $HELIX_PROVISIONING_SCRIPTS_HOME/container-admin.sh --zookeeperAddress
> localhost:2181 --stopContainer  testApp HelloWorld_container_0
>
>
> SERVICE    HelloWorld
>     CONTAINER_NAME        CONTAINER_STATE    SERVICE_STATE    CONTAINER_ID
>     HelloWorld_container_2    CONNECTED    ONLINE
> container_1393375114439_0003_01_000004
>     HelloWorld_container_1    CONNECTED    ONLINE
> container_1393375114439_0003_01_000003
>     HelloWorld_container_0    CONNECTED    ONLINE
> container_1393375114439_0003_01_000005
>
> //Scale down
> Decrease the number of containers from 3 to 2. This will decrease the
> number of containers for HelloWorld service. It always stops the container
> that is ranked the lowest when sorted by their names (not container id).
> $HELIX_PROVISIONING_SCRIPTS_HOME/update-provisioner-config.sh
> --zookeeperAddress localhost:2181 --updateContainerCount testApp HelloWorld
> 2
>
> SERVICE    HelloWorld
>     CONTAINER_NAME        CONTAINER_STATE    SERVICE_STATE    CONTAINER_ID
>     HelloWorld_container_1    CONNECTED    ONLINE
> container_1393375114439_0003_01_000003
>     HelloWorld_container_0    CONNECTED    ONLINE
> container_1393375114439_0003_01_000005
>
>
> //SCALE UP
>
> Increase the number of containers from 2 to 4.
> SERVICE    HelloWorld
>     CONTAINER_NAME        CONTAINER_STATE    SERVICE_STATE    CONTAINER_ID
>     HelloWorld_container_2    CONNECTED    ONLINE
> container_1393375114439_0003_01_000009
>     HelloWorld_container_1    CONNECTED    ONLINE
> container_1393375114439_0003_01_000003
>     HelloWorld_container_3    CONNECTED    ONLINE
> container_1393375114439_0003_01_000010
>     HelloWorld_container_0    CONNECTED    ONLINE
> container_1393375114439_0003_01_000005
>
>
> At any point, additional information about the cluster can be got via
> Helix-Admin apis.
> http://helix.apache.org/0.6.2-incubating-docs/tutorial_admin.html
>
> Thanks,
> Kishore G