Tamaño del bloque Composite Hadoop XDF
MapReduce divide cada archivo de entrada de texto en una o más divisiones de entrada que son del tamaño de bloque HDFS, por ejemplo, 128 MB de forma predeterminada-
Cada división de entrada se convierte desde texto sin comprimir, sin analizar en una salida comprimida y analizada es el archivo binario xdfd en el subdirectorio "datos" del directorio de salida: información de encabezado para el conjunto de xdfd en un archivo de metadatos único de xdfm en el directorio "metadatos"
-
Para la eficiencia en los análisis posteriores, cada archivo de salida xdfd aproximadamente debe coincidir con el tamaño del bloque HDFS
-
Para compensar la compresión de XDF, por tanto, normalmente necesitará aumentar el tamaño del archivo de salida xdfd aumentando la entrada divide tamaño utilizando este parámetro para RxHadoopMR():
-
hadoopSwitches="-Dmapred.min.split.size=1000000000"
-
Para instalaciones de Hadoop con hilados más recientes, el parámetro es mapreduce.input.fileinputformat.split.minsize
-
-
Aumentar la entrada dividir aún más el tamaño puede reducir el número de archivos XDF compuestos y, por tanto, el número de mapa paralelizada tareas de análisis posteriores. Esto puede ser útil si el número de ranuras disponibles mapa o contenedores es pequeño en relación con el número de divisiones. Por el contrario, cuando muchos asignan ranuras o contenedores disponibles, divide la entrada más pequeña y más xdfd puede resultar en la finalización más rápida.
-
Ejemplo
Importar una entrada CSV de 670 MB en el recinto de Hortonworks mediante la entrada predeterminada dividir tamaño (32MB) creado 670/32 = 21 xdfd con un rendimiento de rxSummary de 185". Aumentar tamaño de división de entrada a 150MB creado xdfd 5's cada uno de aproximadamente 32MB con un rendimiento de rxSummary de 68".
rxSetComputeContext (RxHadoopMR(hadoopSwitches = "-Dmapreduce.input.fileinputformat.split.minsize=150000000")) rxImport (myCSV, myCXdf, sobrescribir = TRUE) conjunto de rxSetComputeContext(RxHadoopMR()) # nuevo cuando haya terminado