Hadoop sammensatt XDF blokkstørrelse
MapReduce deler hver innskrevet tekst-fil i en eller flere inndata delinger som som standard er HDFS blokkstørrelsen, for eksempel 128 MB
-
Hver input deling er konvertert fra ukomprimerte, ikke-analyserte tekst til en komprimert og analysert utdata binære xdfd filen i "data"-underkatalog av utdatamappen – topp info for settet av xdfd's er i en enkelt xdfm metadata-fil i mappen "metadata"
-
For effektivitet i etterfølgende analyser bør hver utdatafilen for xdfd midt blokkstørrelsen HDFS
-
Deler størrelse ved hjelp av denne parameteren til RxHadoopMR() for å kompensere for XDF komprimering derfor vanligvis må du øke filstørrelsen utdata xdfd ved å øke inndata:
-
hadoopSwitches="-Dmapred.min.split.size=1000000000"
-
Parameteren er for nyere Hadoop installasjoner bruker også mapreduce.input.fileinputformat.split.minsize
-
-
Øke input dele mer størrelse kan redusere antall sammensatte XDF filer, og dermed antall parallelized map aktiviteter i etterfølgende analyser. Dette kan være nyttig hvis antall tilgjengelige kart spor eller beholdere er liten i forhold til antall delinger. Derimot når mange tilordne spor eller beholdere er tilgjengelige, inn i mindre deler og flere xdfd kan resultere i raskere fullføring.
-
Eksempel
Importerer en CSV-fil inndata for 670 MB i Hortonworks-sandkassen ved hjelp av standard inndata dele størrelse (32MB) opprettet 670/32 = 21 xdfd's med en rxSummary ytelse av 185". Øke størrelsen på inndata del til 150MB 's opprettet 5 xdfd hver omtrent 32MB med en rxSummary ytelse av 68".
rxSetComputeContext (RxHadoopMR(hadoopSwitches =
"-Dmapreduce.input.fileinputformat.split.minsize=150000000"))
rxImport (myCSV, myCXdf, overskrive = TRUE)
rxSetComputeContext(RxHadoopMR()) # Sett den inn igjen når du er ferdig