Definir propriedades apache hadoop core-site.xml

Você tem um cenário que requer propriedades Apache Hadoop para ser definido.

Normalmente farias isto no core-site.xml ficheiro.

Neste artigo, explicamos como se pode instalar core-site.xml num aglomerado.

Criar o core-site.xml ficheiro em DBFS

Tens de criar um core-site.xml ficheiro e guardá-lo para o DBFS no teu cluster.

Uma maneira fácil de criar este ficheiro é através de um roteiro de bash em um caderno.

Este código de exemplo cria uma hadoop-configs pasta no seu cluster e, em seguida, escreve um único ficheiro de propriedade para essa core-site.xml pasta.

mkdir -p /dbfs/hadoop-configs/
cat << 'EOF' > /dbfs/hadoop-configs/core-site.xml
 <property>
    <name><property-name-here></name>
    <value><property-value-here></value>
 </property>
EOF

Pode adicionar várias propriedades ao ficheiro adicionando pares de nome/valor adicionais ao script.

Também pode criar este ficheiro localmente e, em seguida, carregá-lo para o seu cluster.

Criar um script init que carrega core-site.xml

Este código de exemplo cria um script init chamado set-core-site-configs.sh que usa o ficheiro que core-site.xml acabou de criar.

Se fez o upload manual de um core-site.xml ficheiro e o guardou noutro local, deverá atualizar o config_xml valor no código de exemplo.

dbutils.fs.put("/databricks/scripts/set-core-site-configs.sh", """
#!/bin/bash

echo "Setting core-site.xml configs at `date`"

START_DRIVER_SCRIPT=/databricks/spark/scripts/start_driver.sh
START_WORKER_SCRIPT=/databricks/spark/scripts/start_spark_slave.sh

TMP_DRIVER_SCRIPT=/tmp/start_driver_temp.sh
TMP_WORKER_SCRIPT=/tmp/start_spark_slave_temp.sh

TMP_SCRIPT=/tmp/set_core-site_configs.sh

config_xml="/dbfs/hadoop-configs/core-site.xml"

cat >"$TMP_SCRIPT" <<EOL
#!/bin/bash
## Setting core-site.xml configs

sed -i '/<\/configuration>/{
    r $config_xml
    a \</configuration>
    d
}' /databricks/spark/dbconf/hadoop/core-site.xml

EOL
cat "$TMP_SCRIPT" > "$TMP_DRIVER_SCRIPT"
cat "$TMP_SCRIPT" > "$TMP_WORKER_SCRIPT"

cat "$START_DRIVER_SCRIPT" >> "$TMP_DRIVER_SCRIPT"
mv "$TMP_DRIVER_SCRIPT" "$START_DRIVER_SCRIPT"

cat "$START_WORKER_SCRIPT" >> "$TMP_WORKER_SCRIPT"
mv "$TMP_WORKER_SCRIPT" "$START_WORKER_SCRIPT"

echo "Completed core-site.xml config changes `date`"

""", True)

Anexe o script init ao seu cluster

Você precisa configurar o script init recém-criadocomo um script init com âmbito de cluster .

Se usou o código de exemplo, o seu Destino é DBFS e o Caminho do Roteiro Init é dbfs:/databricks/scripts/set-core-site-configs.sh .

Se personalizou o código de exemplo, certifique-se de que introduz o caminho e o nome corretos do script init quando o anexar ao cluster.