Page 42 - Building Big Data Applications
P. 42

36 Building Big Data Applications




                                                                         Node
                                                                        Manager

                                                                  Container  App Mstr
                        Client
                                            Resource                     Node
                                            Manager                     Manager
                        Client
                                                                   App Mstr  Container


                         MapReduce Status                                Node
                                                                        Manager
                           Job Submission
                              Node Status
                         Resource Request                         Container  Container

                              FIGURE 2.9 YARN architecture. Image sourcedApache Foundation.

                           AMContainer ManagerdComponent responsible for starting and stop-
                            ping the container of the AM by talking to the appropriate
                            NodeManager
                           AM MonitordComponent responsible for managing the aliveness of
                            the AM and responsible for restarting the AM if necessary

                The resource manager stores snapshots of its state in the Zookeeper. In case of failure,
             a very transparent restart is feasible and ensures availability.

               Node Manager
                  Is a per-machine agent and is responsible for launching containers for applica-
                   tions once the scheduler allocates them to the application.
                  Container resource monitoring for ensuring that the allocated containers do not
                   exceed their allocated resource slices on the machine.
                  Setting up the environment of the container for the task execution including bi-
                   naries, libraries, and jars
                  Manages local storage on the node. Applications can continue to use the local
                   storage even when they do not have an active allocation on the node, thus
                   providing scalability and availability
               ApplicationMaster
                  Perapplication
                  Negotiates resources with ResourceManager
                  Manages application scheduling and task execution with Node Managers
                  Recovers the application on its own failure. Will either recover the application
                   from saved persistent state or just run the application from the very beginning,
                   depending on recovery success
   37   38   39   40   41   42   43   44   45   46   47