marco HILO

HILO marco Descripción:

HILO (Sin embargo, otro negociador de recursos, otro coordinador de recursos) es un nuevo Hadoop Explorer, que es un sistema de gestión de recursos universal, que proporciona una aplicación unificada para la gestión de recursos superior y la programación, su introducción en el clúster utilización de los recursos, gestión unificada y el intercambio de datos y grandes beneficios por lo traído.

concepto del hilo:

HILO La idea básica es JobTracker (Job Tracker) Las dos funciones principales (gestión de recursos y / planificación de tareas de vigilancia) de separación, el método principal es crear un ResourceManager mundial (RM) y varias aplicaciones para ApplicationMaster (AM) . Aplicación en el presente documento se refiere a puestos de trabajo MapReduce convencionales o trabajo de la DAG (gráfico acíclico dirigido).

naturaleza hilos de jerarquía es ResourceManager. Esta entidad controla todo el conjunto y gestionar la distribución de aplicaciones para el cálculo de la base de recursos. ResourceManager parte de los recursos individuales (cálculo, memoria , ancho de banda, etc.) para elaborar la base NodeManager (HILO cada agente de nodo). ResourceManager también asignar recursos y ApplicationMaster juntos, iniciar y supervisar su aplicación con base NodeManager. En este contexto, ApplicationMaster soportar algo de la anterior función de TaskTracker, ResourceManager tomó papel JobTracker.

ApplicationMaster gestionar cada instancia de la aplicación que se ejecuta en el hilo. ApplicationMaster recursos de ResourceManager responsables de la coordinación y seguimiento del contenedor mediante la aplicación NodeManager y el uso de recursos ( CPU , memoria y otra asignación de recursos). Tenga en cuenta que, aunque es más recursos tradicionales (núcleo de CPU, memoria), pero el futuro traerá un nuevo tipo de recursos (tales como gráficos de unidades o dispositivo de procesamiento de propósito especial de procesamiento) en base a la tarea en cuestión. Desde el punto de vista del hilo, código de usuario ApplicationMaster, por lo que existe un problema potencial de seguridad. HILO asumen que hay errores ApplicationMaster o incluso dañino, por lo que serán tratados como un código no privilegiado.

NodeManager gestionar cada nodo en un hilo de clúster. NodeManager proporciona para cada nodo en el servicio de clúster, de supervisión y gestión de la vida de un buque para realizar un seguimiento de la salud y el nodo de recursos del monitor. MRv1 mediante la realización de gestión de intervalos de Mapa y reducir las tareas, mientras que la gestión NodeManager contenedores abstractos, que representan un recurso para el uso aplicación específica para cada nodo. HILO continúan utilizando capa HDFS. Sus principales servicios NameNode metadatos, DataNode utilizan para los servicios de almacenamiento de copia dispersos en un clúster.

Para utilizar un grupo hilado, en primer lugar hay que incluya una solicitud de la aplicación cliente. ResourceManager negociar un contenedor de los recursos necesarios para iniciar un ApplicationMaster para representar las aplicaciones que se han presentado. Mediante el uso de un protocolo de petición de recursos, contenedor ApplicationMaster cada nodo negociar los recursos utilizados por la solicitud de referencia. Cuando la ejecución de la aplicación, ApplicationMaster de localización de buques hasta su finalización. Cuando la solicitud está completa, cancelación ApplicationMaster de su contenedor de ResourceManager, ciclo de ejecución es completa.

HILO esquema de planificación de tareas:

job.waitforcompletion método de ejecución (), la incorporada en el proceso: 

  1. Buscar trabajo a ResourceManager (RM) inicia una solicitud
  2. RM de retorno a los recursos relacionados con el trabajo y la ruta de envío de trabajos de la jarra (puesta en escena-dir), y de la Id
  3. Presentar frasco para la estadificación-dir (ruta HDFS)
  4. RM presentar los resultados presentados a la
  5. RM tarea se añadirá a la cola de trabajos
  6. NodeManager (NM) nodo para recibir la tarea
  7. NodeManager contenedor plazo de asignación de recursos
  8. RM llamar a un nodo que ejecuta mrappMaster (ApplicationMaster) en NodeManager
  9. NodeManager nodo de ejecución mrappMaster registrado en la RM
  10. mrappMaster asignar algún nodo NodeManager tarea de ejecutar la tarea Mapa
  11. nodo de distribución NodeManager corriendo tarea Reductor (tarea)
  12. Cuando la tarea se ha completado la tarea de dar de baja su Reductor RM

HILO varios modos de funcionamiento:

MR programa presentado varios modos de funcionamiento


la aplicación de modelos locales

 

1 / Windows se ejecuta directamente en el interior el método principal de eclipse, será sometido a la ejecución de trabajo localjobrunner actuador locales
      de datos ---- de entrada y salida puede ser colocado en la ruta de acceso local (C: / WC / srcdata /)
      ---- Input los datos de salida también pueden ser colocados en hdfs (hdfs: // weekend110: 9000 / WC / srcdata)
      
      
2 / Linux es ejecutar el método principal directamente en el interior eclipse, pero no agregue configuración de hilo relacionada, será sometido a la localjobrunner Ejecutivo
      --- - datos de entrada y de salida se pueden colocar debajo de la ruta local (/ Home / Hadoop / WC / srcdata /)
      ---- datos de entrada y de salida también pueden ser colocados en hdfs (hdfs: // weekend110: 9000 /   wc / srcdata)


el modo de clúster


1 / El paquete frasco etiquetado proyecto, cargado en el servidor, y luego presentar hadoop frasco wc.jar cn.itcast.hadoop.mr.wordcount.WCRunner con el comando hadoop
2 / ejecutar directamente en el método principal del Linux Eclipse también se pueden enviar a la clúster a plazo, sin embargo, debe tomar las siguientes medidas:
      ---- unidas en el directorio src proyecto mapred-site.xml y los hilados-site.xml (por defecto cuando se crea una instancia de un objeto se añadirán los elementos de configuración de trabajo)
      --- - la marcada proyecto paquete frasco (wc.jar), mientras que la adición de un conf.set parámetro de configuración cuando instanciar el trabajo objeto ( "mapreduce.job.jar", "wc.jar" (tarro de directorio de paquete));           

Configuration conf = new Configuration();
conf.set("mapreduce.job.jar","wc.jar");
Job job = Job.getInstance(conf);

3 / Ejecutar Eclipse directamente en las ventanas de la principal método también se pueden enviar al cluster en ejecución, sino porque no es compatible con la plataforma, que tiene que hacer un montón de ajustes para modificar
        ---- querer guardar una copia de la hadoop paquete de instalación de ventanas (descompresión buena a)
        ---- a la que el directorio bin lib y reemplazar según su versión de windows vuelva a compilar el archivo
        ----, y después configurar el sistema PATH variable de entorno HADOOP_HOME y
        fuente ---- modificar esta clase YarnRunner

descripción del trabajo y presentar clase estándar escrito (cluster modo segunda forma)

package com.sy.hadoop.mapreduce;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.conf.Configured;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Job;
import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;
import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;
import org.apache.hadoop.util.Tool;
import org.apache.hadoop.util.ToolRunner;

//这是job描述和提交类的规范写法
public class FlowSumRunner  extends Configured implements Tool {

    @Override
    public int run(String[] args) throws Exception {

        Configuration conf = new Configuration();
        conf.set("mapreduce.job.jar","wc.jar");
        Job job = Job.getInstance(conf);
        
        //配置jar运行类
        job.setJarByClass(FlowSumRunner.class);
        
        //配置map类
        job.setMapperClass(FlowSumMapper.class);
        
        //配置reduce类
        job.setReducerClass(FlowSumReducer.class);

        //配置map输出key类型
        job.setMapOutputKeyClass(Text.class);
        
        //配置map输出value类型
        job.setMapOutputValueClass(FlowBean.class);

        //通用配置如果map输出key和输出value和reduce一样那么就不用配置上面的,如果不一样就需要使用它单独配置reduce配置
        //配置reduce输出key类型
        job.setOutputKeyClass(Text.class);
        
        //配置reduce输出value类型
        job.setOutputValueClass(FlowBean.class);

        //配置log输入文件目录(map读取文件)
        FileInputFormat.setInputPaths(job, new Path(args[0]));
        //输出文件目录
        FileOutputFormat.setOutputPath(job, new Path(args[1]));

        //启动job
        return job.waitForCompletion(true)?0:1;
    }


    public static void main(String[] args) throws Exception {
        int res = ToolRunner.run(new Configuration(), new FlowSumRunner(), args);
        System.exit(res);
    }

}


      
      
      

Publicado 70 artículos originales · elogios ganado 18 · Vistas a 50000 +

Supongo que te gusta

Origin blog.csdn.net/qq_40325734/article/details/89057718
Recomendado
Clasificación