Paso 4: creación de un tema en el clúster de Amazon MSK
En este paso de Introducción a Amazon MSK, debe instalar las bibliotecas y herramientas del cliente de Apache Kafka en el equipo cliente y, a continuación, creer un tema.
aviso
Los números de versión de Apache Kafka utilizados en este tutorial son solo ejemplos. Se recomienda utilizar la misma versión del cliente que la versión de clúster de MSK. Es posible que una versión anterior del cliente carezca de determinadas características y correcciones críticas de errores.
Determinación de la versión del clúster de MSK
Abra la consola de Amazon MSK en https://console.aws.amazon.com/msk/
. -
En la barra de navegación, seleccione la región en la que creó el clúster de MSK.
Seleccione el clúster de MSK.
Anote la versión de Apache Kafka utilizada en el clúster.
Sustituya las instancias de los números de versión de Amazon MSK de este tutorial por la versión obtenida en el paso 3.
Creación de un tema en la máquina cliente
-
Conéctese a la máquina cliente.
Abra la consola de Amazon EC2 en https://console.aws.amazon.com/ec2/
. -
En el panel de navegación, seleccione Instances (Instancias). A continuación, seleccione la casilla de verificación situada junto al nombre de la máquina cliente que creó en Paso 3: creación de un equipo cliente.
-
Elija Actions (Acciones) y, a continuación, elija Connect (Conectar). Siga las instrucciones de la consola para conectarse al equipo cliente.
-
Instale Java y configure la variable de entorno de la versión de Kafka.
-
Instale Java en la máquina cliente mediante la ejecución del siguiente comando.
sudo yum -y install java-11 -
Guarde la versión de Kafka del clúster de MSK en la variable de entorno,
KAFKA_VERSION, tal como se muestra en el siguiente comando. Necesitará esta información durante todo el proceso de configuración.export KAFKA_VERSION={KAFKA VERSION}Por ejemplo, si utiliza la versión 3.6.0, use el siguiente comando.
export KAFKA_VERSION=3.6.0
-
-
Descargue y extraiga Apache Kafka.
-
Ejecute el siguiente comando para descargar Apache Kafka.
wget https://archive.apache.org/dist/kafka/$KAFKA_VERSION/kafka_2.13-$KAFKA_VERSION.tgznota
La siguiente lista presenta algunas alternativas para la descarga de Kafka que puede utilizar si experimenta algún problema.
-
Si experimenta problemas de conectividad o desea utilizar un sitio espejo, pruebe con el selector de espejos de Apache, tal como se muestra en el siguiente comando.
wget https://www.apache.org/dyn/closer.cgi?path=/kafka/$KAFKA_VERSION/kafka_2.13-$KAFKA_VERSION.tgz -
Descargue una versión adecuada directamente desde el sitio web de Apache Kafka
.
-
-
Ejecute el siguiente comando en el directorio donde descargó el archivo TAR del paso anterior.
tar -xzf kafka_2.13-$KAFKA_VERSION.tgz -
Guarde la ruta completa del directorio recién creado en la variable de entorno
KAFKA_ROOT.export KAFKA_ROOT=$(pwd)/kafka_2.13-$KAFKA_VERSION
-
-
Configure la autenticación para el clúster de MSK.
-
Busque la versión más reciente
de la biblioteca cliente de IAM para Amazon MSK. Esta biblioteca permite que la máquina cliente acceda al clúster de MSK mediante autenticación con IAM. -
Mediante los siguientes comandos, navegue hasta el directorio
$KAFKA_ROOT/libsy descargue el archivo JAR de IAM para Amazon MSK correspondiente que identificó en el paso anterior. Asegúrese de reemplazar{LATEST_VERSION}por el número de versión real que va a descargar.cd $KAFKA_ROOT/libswget https://github.com/aws/aws-msk-iam-auth/releases/latest/download/aws-msk-iam-auth-{LATEST VERSION}-all.jarnota
Antes de ejecutar cualquier comando de Kafka que interactúe con el clúster de Amazon MSK, es posible que deba agregar el archivo JAR de IAM de Amazon MSK a la ruta de clases de Java. Establezca la variable de entorno
CLASSPATH, tal como se muestra en el siguiente ejemplo.export CLASSPATH=$KAFKA_ROOT/libs/aws-msk-iam-auth-{LATEST VERSION}-all.jarEsto configura
CLASSPATHpara toda la sesión, lo que hace que el archivo JAR esté disponible para todos los comandos de Kafka posteriores. -
Vaya al directorio
$KAFKA_ROOT/configpara crear el archivo de configuración del cliente.cd $KAFKA_ROOT/config -
Copie las siguientes configuraciones de propiedades y péguelas en un archivo nuevo. Guarde el archivo como
client.properties.security.protocol=SASL_SSL sasl.mechanism=AWS_MSK_IAM sasl.jaas.config=software.amazon.msk.auth.iam.IAMLoginModule required; sasl.client.callback.handler.class=software.amazon.msk.auth.iam.IAMClientCallbackHandler
-
-
(Opcional) Ajuste el tamaño del montón de Java para las herramientas de Kafka.
Si experimenta problemas relacionados con la memoria o trabaja con una gran cantidad de temas o particiones, puede ajustar el tamaño del montón de Java. Para ello, configure la variable de entorno
KAFKA_HEAP_OPTSantes de ejecutar los comandos de Kafka.El siguiente ejemplo establece tanto el tamaño máximo como el tamaño inicial del montón en 512 megabytes. Ajuste estos valores según sus requisitos específicos y los recursos del sistema disponibles.
export KAFKA_HEAP_OPTS="-Xmx512M -Xms512M" -
Obtenga la información de conexión del clúster.
Abra la consola de Amazon MSK en https://console.aws.amazon.com/msk/
. -
Espere a que el estado del clúster pase a ser Activo. Esto podría tardar varios minutos. Cuando el estado pase a ser Activo, elija el nombre del clúster. Se le redirigirá a una página que contiene el resumen del clúster.
-
Seleccione Ver información del cliente.
-
Copie la cadena de conexión del punto de conexión privado.
Obtendrá tres puntos de conexión para cada uno de los agentes. Almacene una de estas cadenas de conexión en la variable de entorno
BOOTSTRAP_SERVER, como se muestra en el siguiente comando. Reemplace<bootstrap-server-string>por el valor real de la cadena de conexión.export BOOTSTRAP_SERVER=<bootstrap-server-string>
-
Ejecute el siguiente comando para crear el tema.
$KAFKA_ROOT/bin/kafka-topics.sh --create --bootstrap-server $BOOTSTRAP_SERVER --command-config $KAFKA_ROOT/config/client.properties --replication-factor 3 --partitions 1 --topic MSKTutorialTopicSi recibe un error
NoSuchFileExceptionpara el archivoclient.properties, asegúrese de que este archivo exista en el directorio de trabajo actual, dentro del directorio bin de Kafka.nota
Si prefiere no establecer la variable de entorno
CLASSPATHpara toda la sesión, puede, como alternativa, anteponer cada comando de Kafka con la variableCLASSPATH. Este enfoque aplica la ruta de clases únicamente a ese comando específico.CLASSPATH=$KAFKA_ROOT/libs/aws-msk-iam-auth-{LATEST VERSION}-all.jar \ $KAFKA_ROOT/bin/kafka-topics.sh --create \ --bootstrap-server $BOOTSTRAP_SERVER \ --command-config $KAFKA_ROOT/config/client.properties \ --replication-factor 3 \ --partitions 1 \ --topic MSKTutorialTopic -
(Opcional) Verifique que el tema se haya creado correctamente.
-
Si el comando se ejecuta correctamente, debería ver el siguiente mensaje:
Created topic MSKTutorialTopic. -
Enumere todos los temas para confirmar que el tema existe.
$KAFKA_ROOT/bin/kafka-topics.sh --list --bootstrap-server $BOOTSTRAP_SERVER --command-config $KAFKA_ROOT/config/client.properties
Si el comando no se ejecuta correctamente o experimenta un error, consulte Solución de problemas del clúster de Amazon MSK para obtener información de solución de problemas.
-
-
(Opcional) Elimine las variables de entorno que utilizó en este tutorial.
Si desea conservar las variables de entorno para los siguientes pasos de este tutorial, omita este paso. De lo contrario, puede desestablecer estas variables, como se muestra en el siguiente ejemplo.
unset KAFKA_VERSION KAFKA_ROOT BOOTSTRAP_SERVER CLASSPATH KAFKA_HEAP_OPTS
Paso siguiente
Paso 5: producción y consumo de datos