Establecer Apache Hadoop core-site.xml propiedades

Tiene un escenario que requiere que Apache Hadoop propiedades se establezcan.

Normalmente, lo haría en el core-site.xml archivo .

En este artículo se explica cómo se puede establecer core-site.xml en un clúster.

Creación del core-site.xml archivo en DBFS

Debe crear un archivo core-site.xml y guardarlo en DBFS en el clúster.

Una manera fácil de crear este archivo es a través de un script de Bash en un cuaderno.

Este código de ejemplo crea una carpeta en el clúster y, hadoop-configs a continuación, escribe un único archivo core-site.xml de propiedad en esa carpeta.

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

Puede agregar varias propiedades al archivo agregando pares de nombre y valor adicionales al script.

También puede crear este archivo localmente y, a continuación, cargarlo en el clúster.

Creación de un script de init que se carga core-site.xml

Este código de ejemplo crea un script init set-core-site-configs.sh denominado que usa el archivo que acaba de core-site.xml crear.

Si ha cargado manualmente un archivo y lo ha almacenado en otro lugar, debe core-site.xml actualizar el valor en el código de config_xml ejemplo.

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)

Asociación del script init al clúster

Debe configurar el script de inicio recién creado como un script de initcon ámbito de clúster.

Si usó el código de ejemplo, el destino es y la ruta de acceso del script de DBFS inicio es dbfs:/databricks/scripts/set-core-site-configs.sh .

Si personalizó el código de ejemplo, asegúrese de escribir la ruta de acceso correcta y el nombre del script de inicio al adjuntarlo al clúster.