Tamanho do bloco Composite Hadoop XDF
MapReduce divide cada arquivo de texto de entrada em uma ou mais divisões de entrada que, por padrão, são o tamanho do bloco HDFS, por exemplo, 128 MB
-
Cada divisão de entrada é convertida de texto descompactado não analisado em um arquivo binário xdfd no subdiretório do diretório de saída – informações de cabeçalho para o conjunto de xdfd "dados" está em um arquivo de metadados xdfm único no diretório "metadados" de saída compactada e analisada
-
Para obter eficiência em análises subsequentes, cada arquivo de xdfd de saída deve corresponder aproximadamente o tamanho do bloco HDFS
-
Para compensar a compactação XDF que geralmente, portanto, será necessário aumentar o tamanho do arquivo de saída xdfd aumentando a entrada divide tamanho usando esse parâmetro para RxHadoopMR():
-
hadoopSwitches="-Dmapred.min.split.size=1000000000"
-
Para instalações de Hadoop mais recentes usando o fio COLORIDO, o parâmetro é mapreduce.input.fileinputformat.split.minsize
-
-
Aumentando a entrada dividir ainda mais o tamanho poderá reduzir o número de arquivos compostos de XDF e, portanto, o número de mapa paralelizado tarefas em análises subsequentes. Isso pode ser útil se o número de slots de mapa disponível ou contêineres é pequeno em relação ao número de divisões. Por outro lado, quando muitos mapeiam slots ou recipientes disponíveis, divide de entrada menor e mais xdfd pode resultar em conclusão mais rápida.
-
Exemplo:
Importar uma entrada CSV de 670 MB na proteção de segurança Hortonworks usando a entrada padrão dividir tamanho (32MB) criado 670/32 = 21 xdfd com um desempenho rxSummary de 185". Aumentando o tamanho da entrada de divisão para 150MB criado xdfd 5's cada cerca de 32MB com um desempenho rxSummary de 68".
rxSetComputeContext (RxHadoopMR(hadoopSwitches =
"-Dmapreduce.input.fileinputformat.split.minsize=150000000"))
rxImport (myCSV, myCXdf, substituir = TRUE)
conjunto de # rxSetComputeContext(RxHadoopMR())-o novamente ao terminar