Configurar o Tez
Você pode personalizar o Tez definindo valores com a classificação de configuração tez-site
, que define as configurações no arquivo de configuração tez-site.xml
. Para obter mais informações, consulte Configuração do Tezhive-site
e classificações de configuração de pig-properties
, conforme apropriado. Os exemplos são mostrados abaixo.
Exemplo de configuração
exemplo Exemplo: personalizar o nível de registro raiz do Tez e configurar o Tez como mecanismo de execução para o Hive e o Pig
O comando de exemplo create-cluster
mostrado a seguir cria um cluster com o Tez, o Hive e o Pig instalados. O comando faz referência a um arquivo armazenado no Amazon S3, myConfig.json
, que especifica as propriedades da classificação tez-site
que define tez.am.log.level
como DEBUG
e define o mecanismo de execução do Tez para Hive e Pig usando as classificações de configuração hive-site
e pig-properties
.
nota
Os caracteres de continuação de linha do Linux (\) são incluídos para facilitar a leitura. Eles podem ser removidos ou usados em comandos do Linux. No Windows, remova-os ou substitua-os por um sinal de interpolação (^).
aws emr create-cluster --release-label
emr-7.3.0
\ --applications Name=Tez Name=Hive Name=Pig --ec2-attributes KeyName=myKey
\ --instance-type m5.xlarge --instance-count 3 \ --configurations https://s3.amazonaws.com/amzn-s3-demo-bucket/myfolder/myConfig.json --use-default-roles
Os conteúdos de exemplo de myConfig.json
são mostrados abaixo.
[ { "Classification": "tez-site", "Properties": { "tez.am.log.level": "DEBUG" } }, { "Classification": "hive-site", "Properties": { "hive.execution.engine": "tez" } }, { "Classification": "pig-properties", "Properties": { "exectype": "tez" } } ]
nota
Com as versões 5.21.0 e posteriores do Amazon EMR, você pode substituir as configurações de cluster e especificar classificações de configuração adicionais para cada grupo de instâncias em um cluster em execução. Você pode fazer isso usando o console do Amazon EMR, a AWS Command Line Interface (AWS CLI) ou o AWS SDK. Para obter mais informações, consulte Supplying a Configuration for an Instance Group in a Running Cluster.
Abertura de divisão assíncrona do Tez
Quando há um grande número de arquivos pequenos no caminho da tabela e uma consulta tenta ler todos eles, cada arquivo pequeno que corresponde a cada divisão individual é combinado em uma divisão agrupada do Tez. Então, um único mapper processa a única divisão agrupada do Tez. Como a execução é síncrona, cada divisão individual sob a divisão agrupada é processada uma a uma. Isso exige que os objetos de RecordReader
processem as divisões de forma síncrona.
Nome | Classificação | Descrição |
---|---|---|
|
|
Especifica o número de threads do daemon que o Tez usa para pré-iniciar o |
|
|
Especifica o número de |
Avaliação comparativa de abertura de divisão assíncrona do Tez
Usamos os ambientes e configurações a seguir para comparar a capacidade de abertura de divisão assíncrona do Tez.
-
Ambiente de avaliação comparativa: cluster do Amazon EMR com 1 nó primário que usa m5.16xlarge e 16 nós centrais que usam m5.16xlarge.
-
Configurações de avaliação comparativa: para simular o cenário de avaliação comparativa em que um grande número de divisões de entrada estão em uma única divisão agrupada do Tez,
tez.grouping.split-count
é definido como1
. -
Tabela usada para avaliação comparativa: a tabela contém 200 partições, com cada partição contendo um único arquivo. A avaliação comparativa é feita para quando essa tabela contiver arquivos CSV e quando essa tabela contiver arquivos Parquet. Consulta do Hive para avaliação comparativa:
SELECT COUNT(*)
da tabela dez vezes e calcule o runtime médio. -
Configurações para habilitar a abertura de divisão assíncrona do Tez: da seguinte forma:
-
tez.grouping.split.init.threads
=4
-
tez.grouping.split.init.recordreaders
=10
-
Conjunto de dados | Recurso desabilitado (linha de base) | Recurso habilitado | Melhoria |
---|---|---|---|
Conjunto de dados CSV |
90.26 segundos |
79.20 segundos |
12,25% |
Conjunto de dados Parquet |
54.67 segundos |
42.23 segundos |
22,75% |