• No results found

Hadoop Applications on High Performance Computing. Devaraj Kavali

N/A
N/A
Protected

Academic year: 2021

Share "Hadoop Applications on High Performance Computing. Devaraj Kavali"

Copied!
31
0
0

Loading.... (view fulltext now)

Full text

(1)

Hadoop Applications on High Performance

Computing

Devaraj Kavali

[email protected]

(2)

About Me

• Apache Hadoop Committer

• Yarn/MapReduce Contributor

(3)

Agenda

• Objectives

• HDFS Applications with HPC File Systems

• Yarn Application

• Mapreduce Job

• HPC Schedulers

• Yarn Protocols

• Log Aggregation

• Shuffle Implementation

• Q&A

(4)

Objectives

• Use existing HPC Cluster for running Hadoop Applications

• Use any of the HPC File Systems like Lustre, PVFS, IBRIX

Fusion, etc.

• Use any of the HPC schedulers like Slurm, Moab, PBS Pro,

etc.

• Combine Hadoop workloads with HPC workloads

• No code changes to existing Hadoop(HDFS/YARN/MR)

applications

(5)

HDFS Applications Using HPC File Systems

public class <HPC>Adapter

extends AbstractFileSystem{

…………..

…………..

}

HDFS Application

HPC FS

(6)

<property>

<name>fs.AbstractFileSystem.${hpc-uri}.impl</name>

<value>HPCFileSystemAdapter</value>

<property>

<name>fs.defaultFS</name>

<value>${hpc-uri}:///</value>

</property>

(7)

YARN Application

Client Resource Manager Node Manager App Master Container Node Manager Container Container
(8)

YARN Application with HPC Scheduler

Client HPC Scheduler Master HPC Scheduler Slave App Master Container HPC Scheduler Slave Container Container
(9)

Yarn Application Submission with HPC Scheduler

Yarn Application Yarn Client HPC Application Client Protocol Impl HPC Scheduler Application Master NM Client AMRM Client HPC Container Management Protocol Impl HPC Application Master Protocol Impl Container Yarn Child 1. submitApplication()

2. submit() 3. run 7. Launch Yarn Child

5. Allocate 6. Run Child Task 4. Launch

App Master

(10)

Mapreduce Job with HPC Scheduler

Job Client Job Submitter Yarn Client ResourceMg rDelegate ApplicationC lientProtocol Proxy Resource Manager HPC Scheduler Job History Server HPCApplicat ionClientProt ocolImpl LocalClientProtocol Provider YarnClientProtocol Provider Local Job Runner YARN Runner 1. submit() 2. submitJobInternal() 3. submitJob() 4. submit() 5. submit() 6. submit() 7. run()
(11)

Yarn Protocols Configurations

<property>

<description>RPC class implementation</description>

<name>yarn.ipc.rpc.class</name>

<value>HadoopYarnHPCRPC</value>

</property>

(12)

Yarn Protocols Configurations

public class HadoopYarnHPCRPC extends HadoopYarnProtoRPC {

@Override

public Object getProxy(Class protocol, InetSocketAddress address, Configuration conf) {

Object proxy;

if (protocol == ApplicationClientProtocol.class) {

proxy = new HPCApplicationClientProtocolImpl(conf);

} else if (protocol == ApplicationMasterProtocol.class) {

proxy = new HPCApplicationMasterProtocolImpl(conf);

} else if (protocol == ContainerManagementProtocol.class) {

proxy = new HPCContainerManagementProtocolImpl(conf);

} else {

(13)

Application Client Protocol

Yarn Application Client Protocol Flow

Resource

Manager

Yarn Application Client

RMClient

RMApplicati

onClientPro

tocolProxy

1. getNewApplication ()

2. submitApplication ()

3. forceKillApplication ()

4. getClusterMetrics ()

5. getClusterNodes ()

6. getQueueInfo ()

………..

(14)

Application Client Protocol

Yarn Application Client HPC Scheduler Flow

HPC

Scheduler

Yarn Application Client

RMClient

HPCApplicati

onClientProt

ocolImpl

1. Allocate Resources cmd

2. Submit Job(Batch) cmd

3. Cancel Job cmd

4. Cluster Info cmd

5. Get Jobs Report cmd

………..

(15)

Application Client Protocol

API’s for interaction

1. getNewApplication()

The interface used by clients to obtain a new ApplicationId for submitting new

applications.

2. submitApplication()

The interface used by clients to submit a new application to the ResourceManager.

3. forceKillApplication()

The interface used by clients to request the ResourceManager to abort submitted

application.

4. getClusterMetrics()

5. getClusterNodes()

6. getQueueInfo()

(16)

Application Master Protocol

Yarn Application Master Flow Diagram

Resource

Manager

Application Master

RMClient

RMApplicati

onMasterS

erviceProto

colProxy

1. registerApplicationMaster()

2. allocate()

3. finishApplicationMaster()

(17)

Application Master Protocol

HPC Scheduler Application Master Flow Diagram

HPC

Scheduler

Application Master

NMClient

HPCApplicati

onMasterProt

ocolImpl

1. Cluster Info Cmd

2. Resource Allocation Cmd

3. Finish Tasks Cmds

(18)

Application Master Protocol

API’s for interaction

1. registerApplicationMaster()

The interface used by a new ApplicationMaster to register with the ResourceManager.

2. allocate()

The main interface between an ApplicationMaster and the ResourceManager.

3. finishApplicationMaster()

(19)

Container Management Protocol

Yarn Container Management Flow

Node Manager

Application Master

NMClient

NMContain

erManagem

entProtocol

Proxy

1. startContainers()

2. stopContainers()

3. getContainerStatuses()

(20)

Container Management Protocol

HPC Scheduler Task Management Flow

HPC

Scheduler

Application Master

NMClient

HPCContai

nerManage

mentProtoc

olImpl

1. Start Containers Cmd

2. Stop Containers Cmd

(21)

Container Management Protocol

API’s for interaction

1. startContainers()

The ApplicationMaster provides a list of StartContainerRequest's to a NodeManager

to start Container's allocated to it using this interface.

2. stopContainers()

The ApplicationMaster requests a NodeManager to stop a list of Container's allocated

to it using this interface.

3. getContainerStatuses()

(22)

<property>

<name>yarn.log-aggregation-enable</name>

<value>true</value>

</property>

Yarn Log Aggregation

 Log Aggregation by Node Manager

 Log Aggregation with HPC Scheduler

• Issue an HPC scheduler command to execute in all nodes(where

application tasks executed) as part of

(23)

Shuffle Handling

– Hadoop

MRAppMaster

Reduce Task

EventFetcher

Shuffle

Consumer

Local

Dirs

6. Read Map O/P

5. Map Completed 4. Get Map

Completion Events

Node 1

2. Write Final Map O/P

Map

Task

3. Task Completed 1. Assign Task

Node

Manager

(24)

Shuffle Handling

– HPC File Systems

Map Task

MRAppMaster

Reduce Task

EventFetcher

Shuffle

Consumer

1. Assign Task 3. Task Completed

2. Write Final Map O/P

6. Read Map O/P 5. Map Completed

4. Get Map

(25)

Shuffle Handling

<property>

<name>mapreduce.job.map.output.collector.class</name>

<value>org.apache.hadoop.mapred.MapTask$MapOutputBuffer</value>

<description>

The MapOutputCollector implementation(s) to use. This may be a

comma-separated list of class names, in which case the map task will try

to initialize each of the collectors in turn. The first to successfully

initialize will be used.

</description>

</property>

(26)

<property>

<name>mapreduce.job.reduce.shuffle.consumer.plugin.class</name>

<value>org.apache.hadoop.mapreduce.task.reduce.Shuffle</value>

<description>

Name of the class whose instance will be used to send shuffle

requests by reduce tasks of this job. The class must be an instance of

org.apache.hadoop.mapred.ShuffleConsumerPlugin.

</description>

Shuffle Handling

(27)

Summary

 HDFS configuration for new File System

 HPC Schedulers

 YARN Protocols

 M/R Shuffle Implementation

 Yarn Log Aggregation

(28)
(29)

Thank You…

(30)

Notices and Disclaimers

• Copyright © 2014 Intel Corporation.

• Intel, the Intel logo are trademarks of Intel Corporation in the U.S. and/or other countries. *Other names and brands may be claimed as the property of others.

See Trademarks on intel.com for full list of Intel trademarks.

• All information provided here is subject to change without notice. Contact your Intel representative to obtain the latest Intel product specifications and roadmaps

• Software and workloads used in performance tests may have been optimized for performance only on Intel microprocessors. • Performance tests are measured using specific computer systems, components, software, operations and functions. Any

change to any of those factors may cause the results to vary. You should consult other information and performance tests to assist you in fully evaluating your contemplated purchases, including the performance of that product when combined with other products.

• For more complete information about performance and benchmark results, visit www.intel.com/benchmarks.

• Intel does not control or audit third-party benchmark data or the web sites referenced in this document. You should visit the referenced web site and confirm whether referenced data are accurate.

• Results have been estimated or simulated using internal Intel analysis or architecture simulation or modeling, and provided to you for informational purposes. Any differences in your system hardware, software or configuration may affect your actual performance.

• Intel technologies may require enabled hardware, specific software, or services activation. Check with your system manufacturer or retailer.

(31)

References

Related documents

An In-house Indirect enzyme-linked immunosorbent assay (ELISA) was developed for the detection of serum antibody titre against Newcastle disease virus (NDV) and was compared

In this work, we began by considering the criteria for a conceptual modeling technique that enables designers to model and analyze security trade-offs among

governments to implement cash transfer programmes and establish social protection systems, including: (1) building the empirical evidence base that cash transfers have

This article examines the impact of varying mandatory pensions on saving, life insurance, and annuity markets in an adverse selection economy.. Under reasonable restrictions, we

Symmetric powers preserve stable weak equivalences between positively cofi- brant motivic symmetric spectra, left derived symmetric powers exist in the motivic stable homotopy

To prevent agents from deviating from the agreement, we punish the deviant agents in the following manner: if any agent k violates the agreement to cooperate with agent , agent

On the other hand, the existence of efficient (in the sense of breaking the general lower bound) low-congestion shortcuts is known for several major graph classes, as well as

The psychologist adds that “the awakening of the senses is structural and structuring in the Initiation to the World” ( id , ibid). The benefits of the lullabies are, indeed,