Hadoop samengestelde XDF blokgrootte
MapReduce elke ingevoerde tekstbestand gesplitst in een of meer input splitsingen die standaard de blokgrootte HDFS, bijvoorbeeld 128 MB zijn
-
Elke splitsing invoer wordt uit niet-gecomprimeerd, niet-afgeleide tekst geconverteerd naar een gecomprimeerde en verdeelde uitvoer binaire xdfd bestand in de submap 'data' van de uitvoermap – info koptekst voor de set van xdfd in een enkele xdfm bestand met metagegevens in de map 'metagegevens is'
-
Voor de efficiëntie van de latere analyses, elke xdfd uitvoerbestand moet ongeveer overeenkomen met de blokgrootte HDFS
-
Splitsen met behulp van deze parameter in op RxHadoopMR() om te compenseren voor XDF compressie die dus meestal u de grootte van het output xdfd verhogen moet doordat de invoer:
-
hadoopSwitches="-Dmapred.min.split.size=1000000000"
-
Meer recente Hadoop installaties van garens met is de parameter mapreduce.input.fileinputformat.split.minsize
-
-
Verhogen van de grootte verder splitsen invoer kan verminderen het aantal samengestelde XDF bestanden en daarmee het aantal parallelized map taken in latere analyses. Dit kan handig zijn als het aantal beschikbare kaart sleuven of containers klein in verhouding tot het aantal splitsingen is zijn. Daarentegen veel "slots" worden toegewezen of containers beschikbaar zijn, kleinere input wordt gesplitst als meer xdfd kan leiden tot sneller verlopen.
-
Voorbeeld
Importeren van een CSV invoer van 670 MB in de Sandbox met Hortonworks met behulp van de standaard invoer splitsen grootte (32MB) gemaakt 670/32 = 21 xdfd van de prestaties van een rxSummary van 185". Gesplitste invoer vergroten tot 150MB 's gemaakte 5 xdfd van elk ongeveer 32MB met de prestaties van een rxSummary van 68".
rxSetComputeContext (RxHadoopMR(hadoopSwitches =
"-Dmapreduce.input.fileinputformat.split.minsize=150000000"))
rxImport (myCSV, myCXdf, overschrijven = TRUE)
rxSetComputeContext(RxHadoopMR()) # set weer wanneer u klaar bent