Esta página aún no se ha traducido para esta versión. Puede ver la versión más reciente de esta página en inglés.

Depurar algoritmos de MapReduce

Este ejemplo muestra cómo depurar los algoritmos en el uso de un archivo de ejemplo simple,.mapreduceMATLAB®MaxMapReduceExample.m La depuración le permite seguir el movimiento de datos entre las diferentes fases de ejecución e inspeccionar el estado de todas las variables intermedias.mapreduce

Establecer punto de interrupción

Establezca uno o varios puntos de interrupción en el mapa o reduzca los archivos de función para que pueda examinar los valores de las variables donde cree que está el problema. Para obtener más información, consulte.Establecer puntos de interrupción

Abra el archivo.maxArrivalDelayMapper.m

edit maxArrivalDelayMapper.m

Establezca un punto de interrupción en la línea 9. Este punto de interrupción hace que la ejecución de pausar justo antes de cada llamada a la función de mapa agrega un par clave-valor al objeto intermedio, denominado.mapreduceKeyValueStoreintermKVStore

Ejecute MapReduce

Ejecute el archivo de ejemplo.mapreduceMaxMapReduceExample.m Especifique para asegurarse de que el algoritmo no se ejecuta en paralelo, ya que la ejecución paralela del uso omite los puntos de interrupción.mapreducer(0)mapreduceParallel Computing Toolbox™

mapreducer(0); MaxMapReduceExample

detiene la ejecución del archivo cuando encuentra el punto de interrupción en la función de mapa.MATLAB Durante la pausa en la ejecución, puede colocar el cursor sobre los diferentes nombres de variable en la función de mapa o escribir uno de los nombres de variable en la línea de comandos para inspeccionar los valores.

En este caso, la pantalla indica que, hasta el momento, no hay pares clave-valor en.intermKVStore

Función de paso a través del mapa

  1. Continúe más allá del punto de interrupción. Puede usar para ejecutar una sola línea o para continuar la ejecución hasta que encuentre otro punto de interrupción.dbstepdbcontMATLAB Alternativamente, puede hacer clic en OStep en la pestaña.ContinueEditor Para obtener más información sobre todas las opciones disponibles, consulte.Depurar un programaMATLAB

    En este caso, utilice (o haga clic endbstep ) para ejecutar solo la línea 9, que agrega un par clave-valor a.StepintermKVStore Inspeccione la nueva pantalla para.intermKVStore

  2. Ahora, use (o haga clic endbcont ) para continuar la ejecución de.Continuemapreduce Durante la llamada a la función de mapa, se detiene de nuevo en la línea 9.nextMATLAB La nueva pantalla para indica que no contiene ningún par de clave-valor, porque la visualización está destinada a mostrar sólo los pares de clave-valor que se agregan en la llamada actual a la función de asignación (o reducir).intermKVStoremostrecent

  3. Paso más allá de la línea 9 usando (o haz clic endbstep ) para agregar el siguiente par clave-valor a e inspeccionar la nueva pantalla para la variable. muestra solo el par clave-valor añadido durante la llamada actual a la función map.StepintermKVStoreMATLAB

  4. Complete la depuración de la función de mapa quitando el punto de interrupción y cerrando el archivo.maxArrivalDelayMapper.m

Función de reducción gradual

  1. Puede usar el mismo proceso para establecer puntos de interrupción y paso a través de la ejecución de una función de reducción. La función de reducción para este ejemplo es.maxArrivalDelayReducer.m Abra este archivo para editarlo.

    edit maxArrivalDelayReducer.m
  2. Establezca dos puntos de interrupción: uno en la línea 10 y uno en la línea 13. Esto le permite inspeccionar los pares clave-valor finales agregados a la salida,.ValueIteratoroutKVStore

  3. Ejecute el archivo de ejemplo principal.

    MaxMapReduceExample
  4. La ejecución del ejemplo se detendrá cuando se encuentre el punto de interrupción en la línea 10. La pantalla de depuración para el indica la clave activa y si los valores permanecen para recuperarse.ValueIterator

  5. Ahora, quite el punto de interrupción de la línea 10 y use (o haga clic endbcont ) para continuar la ejecución del ejemplo hasta que se alcance el siguiente punto de interrupción (en la línea 13).Continue Puesto que esta función de reducción compara continuamente cada valor nuevo del máximo global, la ejecución finaliza agregando un solo par clave-valor.ValueIteratormapreduceoutKVStore

  6. Use (o haga clic endbstep ) para ejecutar únicamente la línea 13.Step La pantalla para muestra el valor máximo global que se devolverá como la respuesta final.outKVStoremapreduce

  7. Ahora use (o haga clic endbcont ) para avanzar en la ejecución, lo que permite que el ejemplo finalice la ejecución. Devuelve los resultados finales.Continuemapreduce

    Map 100% Reduce 100%  ans =              Key           Value      _________________    ______      'MaxArrivalDelay'    [1014]

Para obtener una guía completa sobre la depuración, consulte.MATLABDepuración y análisis

Consulte también

Temas relacionados