Sammansatt Hadoop XDF blockstorlek
MapReduce delas varje indata textfil i en eller flera ingående delningar som normalt är HDFS blockstorlek, t. ex. 128 MB
-
Varje indata dela konverteras från okomprimerade, otolkad text till en komprimerad och tolkad utdata binära xdfd filen i underkatalogen "data" utdatakatalogen – huvudet info om xdfd's finns i en enda xdfm metadatafil i katalogen "metadata"
-
För effektivitet i efterföljande analyser bör varje xdfd utdatafilen ungefär matcha HDFS blockstorlek
-
Delar den här parametern till RxHadoopMR() storlek för att kompensera XDF komprimering därför vanligen måste du öka storleken på utdata xdfd genom att öka indata:
-
hadoopSwitches="-Dmapred.min.split.size=1000000000"
-
Parametern är nyare Hadoop-installationer med hjälp av garn, mapreduce.input.fileinputformat.split.minsize
-
-
Öka dela storlek ytterligare indata kan minska antalet sammansatta XDF filer och därmed antalet parallelized map uppgifter i efterföljande analyser. Detta kan vara användbart om antalet tillgängliga karta kortplatser eller behållare är liten i jämförelse med antalet delningar. Däremot när många mappa kortplatser eller behållare är tillgängliga indata i mindre delar och mer xdfd kan leda till snabbare slutförande.
-
Exempel
Importera en input CSV 670 MB i sandlådan Hortonworks använder standard-indata dela storlek (32MB) skapas 670/32 = 21 xdfd med en rxSummary prestanda 185". Öka storleken på indata dela upp till 150MB är skapade 5 xdfd varje ungefär 32MB med en rxSummary prestanda för 68".
rxSetComputeContext (RxHadoopMR(hadoopSwitches =
"-Dmapreduce.input.fileinputformat.split.minsize=150000000"))
rxImport (myCSV, myCXdf, skriva över = TRUE)
rxSetComputeContext(RxHadoopMR()) # Ange det igen när du är klar