Prefacio
Antes de comenzar, debe tenerse en cuenta que no hay una conexión necesaria entre la instalación de Storm y Kafka Cluster. Escribí estos dos juntos porque ambos son administrados por Zookeeper y confían en el entorno JDK. Para no repetir la configuración, escribí estos dos juntos. Si solo necesita uno, simplemente elija la lectura que elija. No diré mucho a continuación, echemos un vistazo a la introducción detallada juntos.
Las dependencias de estos dos son las siguientes:
Nota: Storm1.0 y Kafka2.0 requieren JDK al menos 1.7 y Zookeeper3.0 o superior.
Dirección de descarga:
Instalación JDK
¡Cada máquina debe instalarse con JDK! ! !
Nota: En general, CentOS viene con OpenJDK, pero estamos utilizando el JDK de Oracle. Por lo tanto, debe escribir desinstalar OpenJDK y luego instalar el JDK descargado en Oracle. Si te has desinstalado, puedes omitir este paso.
Primero ingrese java -version
Compruebe si JDK está instalado. Si está instalado pero la versión no es adecuada, desinstale.
ingresar
rpm -qa | grep java
Ver información
Luego ingrese:
rpm -e --nodeps "Desea desinstalar información JDK"
Por ejemplo: rpm -e --nodeps java-1.7.0-openjdk-1.7.0.99-2.6.5.1.el6.x86_64
Después de confirmar que se ha ido, descomprima el JDK descargado
tar -xvf jdk-8u144-linux-x64.tar.gz
Muévase a la carpeta OPT/Java, cree otros nuevos sin ellos y cambie el nombre de la carpeta a JDK1.8.
MV JDK1.8.0_144 /OPT /JAVAMV JDK1.8.0_144 JDK1.8
Luego edite el archivo de perfil y agregue la siguiente configuración
ingresar:
vim /etc /perfil
Añadir:
Exportar java_home =/opt/java/jdk1.8export jre_home =/opt/java/jdk1.8/jreexport classpath =.: $ java_home/lib/dt.jar: $ java_home/lib/tools.jar: $ jre_home/libexport Ruta =.: $ {Java_home}/bin: $ rutaDespués de la adición exitosa, ingrese
fuente /etc /perfilJava -version
Compruebe si la configuración es exitosa
Instalación del entorno de Zookeeper
1. Preparación de documentos
Descompensar el archivo de configuración de Zookeeper descargado
Ingrese en Linux:
tar -xvf ZOOKEEPER -3.4.10.tar.gz
Luego muévase a /opt /Zookeeper, cree uno nuevo sin él y luego cambie el nombre de la carpeta a ZOOKEEPER3.4
ingresar
MV ZOOKEEPER-3.4.10 /OPT /ZOOKEEPERMV ZOOKEEPER-3.4.10 ZOOKEEPER3.4
2. Configuración del entorno
Editar /etc /archivo de perfil
ingresar:
Exportar zk_home =/opt/ZOOKEEPER/ZOOKEEPER3.4 PATH DE EXPORT =.: $ {java_home}/bin: $ {zk_home}/bin: $ rutaingresar:
fuente /etc /perfil
Hacer que la configuración sea efectiva
3. Modificar el archivo de configuración
3.3.1 Crear archivos y directorios
Cree estos directorios en los servidores en el clúster
mkdir/opt/zookeeper/data mkdir/opt/zookeeper/dataLog
Y cree el archivo myID en/opt/ZOOKEEPER/DIRECTORIO DE DATOS
ingresar:
toca myid
Después de la creación exitosa, cambie el archivo myID.
Por conveniencia, cambié el contenido de los archivos MyID de Master, Slave1 y Slave2 a 1, 2, 3
3.3.2 Crear nuevo zoológico.cfg
Cambiar a /opt/zookeeper/zookeeper3.4/conf directorio
Si no hay archivo Zoo.cfg, copie el archivo zoo_sample.cfg y cambie el nombre de zoo.cfg.
Modificar este archivo Zoo.cfg recién creado
Datadir =/opt/Zookeeper/DataDatalogDir =/Opt/Zookeeper/DataLogServer.1 = Master: 2888: 3888server.2 = Slave1: 2888: 3888Server.3 = Slave2: 2888: 3888:
Descripción: El puerto del cliente, como su nombre lo indica, es el puerto donde el cliente se conecta al servicio Zookeeper. Este es un puerto TCP. El DataLogDir es el registro de pedidos (WAL) colocado. DataDir coloca una instantánea de las estructuras de datos de memoria, lo que facilita la recuperación rápida. Para maximizar el rendimiento, generalmente se recomienda dividir Datadir y DataLogDir en diferentes discos, de modo que las características de escritura de orden de disco se puedan utilizar completamente. DataDir y DataLogdir deben ser creados por sí mismos, y los directorios pueden formularse por sí mismos, y pueden ser correspondientes. Este 1 en el servidor.1 debe corresponder al valor en el archivo MYID en el directorio DataDir en la máquina maestra. Este 2 en el servidor.2 debe corresponder al valor en el archivo myID en el directorio de datos en slave1. Este 3 en el servidor.3 debe corresponder a los valores en el archivo MYID en el directorio DataDir en Slave2. Por supuesto, puede usar los valores como desee, tal como se corresponden. Los números de puerto de 2888 y 3888 también se pueden usar casualmente, porque no importa si usa lo mismo en diferentes máquinas.
1.Ticktime: CS Communication Heartbeat Número
El intervalo de tiempo entre los servidores de Zookeeper o entre clientes y servidores mantiene los latidos del corazón, es decir, cada hora de tick tiempo enviará un latido. Ticktime está en milisegundos.
tickTime=2000
2.Enitlimit: LF Límite de tiempo de comunicación inicial
El número máximo de latidos (número de tiempos de tick) que pueden tolerar durante la conexión inicial entre el servidor de seguidores (F) y el servidor líder (L) en el clúster.
initLimit=10
3. Synclimit: LF Límite de tiempo de comunicación sincrónica
El número máximo de latidos (número de tiempos de tick) que se puede tolerar entre las solicitudes y las respuestas entre los servidores de seguidores y los servidores líderes en el clúster.
syncLimit=5
Todavía transfiere Zookeeper a otras máquinas. Recuerde cambiar el MYID en/Opt/Zookeeper/Data, esto no puede ser consistente.
ingresar:
SCP -R/OPT/ZOOKEEPER ROOT@slave1:/optscp -r/opt/Zookeeper root@slave2:/opt
4. Comience Zookeeper
Debido a que Zookeeper es un sistema electoral, su relación maestra-esclavo no se especifica como Hadoop. Para más detalles, puede consultar la documentación oficial.
Después de configurar con éxito Zookeeper, inicie Zookeeper en cada máquina.
Cambiar al directorio de Zookeeper
CD /opt/zookeeper/zookeeper3.4/bin
ingresar:
zkserver.sh inicio
Después de una startup exitosa
Vista de entrada de estado:
estado zkserver.sh
Puede ver al líder y seguidor de Zookeeper en cada máquina
Instalación del entorno de tormenta
1. Preparación de documentos
Descomprimir el archivo de configuración de tormenta descargado
Ingrese en Linux:
tar -xvf apache-storm-1.1.1.tar.gz
Luego muévalo a /opt /tormenta, cree si no existe y luego cambie el nombre de la carpeta a Storm1.1
ingresar
MV Apache-Storm-1.1.1 /Opt /Storm MV Apache-Storm-1.1.1 Storm1.1
Editar /etc /archivo de perfil
Añadir:
Exportar tormenta_home =/opt/tormenta/tormenta1.1Export Path =.: $ {java_home}/bin: $ {zk_home}/bin: $ {storm_home}/bin: $ ruta Ingrese la versión de tormenta para ver la información de la versión
3. Modificar el archivo de configuración
Editar Storm.yarm of Storm/Conf.
Haga las siguientes ediciones:
ingresar:
vim storm.yarm
slave.zookeepers.servers: - "maestro" - "esclavo1" - "slave2" tormenta.local.dir: "/root/storm"nimbus.seeds: [" maestro "] supervisor.slots.ports: - 6700 - 6701 - 6702 - 6703
ilustrar:
1. Storm.zookeepers.Servers es la dirección de servicio del Zookeeper especificado.
Debido a que la información de almacenamiento de Tormenta está en ZOOKEEPER, se debe configurar la dirección de servicio de Zookeeper. Si Zookeeper es una máquina independiente, ¡solo necesita especificar una!
2. Storm.local.dir representa el directorio de almacenamiento.
Los Nimbus y los Supervisores Demons deben almacenar un directorio en el disco local para almacenar una pequeña cantidad de estado (como frascos, confs, etc.). Se puede crear en cada máquina y dados permisos.
3. Nimbus.Seeds representa al anfitrión candidato.
El trabajador necesita saber qué máquina es el candidato anfitrión (el clúster Zookeeper es electoral), de modo que se pueden descargar frascos y confs de topología.
4. Supervisor.slots.ports representa el puerto de trabajadores.
Para cada máquina de supervisor, podemos usar esto para configurar cuántos trabajadores ejecutar en esta máquina. Cada trabajador usa un puerto separado para recibir mensajes, que también define qué puertos están abiertos para usar. Si define 5 puertos aquí, significa que hasta 5 trabajadores se pueden ejecutar en este nodo supervisor. Si se definen 3 puertos, significa que se pueden ejecutar hasta 3 trabajadores. Por defecto (es decir, configurado en defaults.yaml), habrá cuatro trabajadores que se ejecutarán en los puertos 6700, 6701, 6702 y 6703.
El supervisor no comienza a estos cuatro trabajadores inmediatamente al inicio. En cambio, solo comenzará cuando se acepte la tarea asignada. El número específico de trabajadores para comenzar debe determinarse en función de cuántos trabajadores necesitamos en este supervisor en topología. Si la topología especificada será ejecutada por un solo trabajador, entonces el supervisor inicia un trabajador y no comenzará todo.
Nota: ¡No hay espacios frente a estas configuraciones! ! ! , de lo contrario, se informará un error. El nombre del host (mapeo) se usa aquí, y la IP también se puede usar. La situación real se basa en la tuya.
Puede usar el comando SCP o el software FTP para copiar tormenta a otras máquinas.
Después de una configuración exitosa, puede iniciar Storm, pero asegúrese de que JDK y Zookeeper se hayan instalado correctamente y que Zookeeper se haya iniciado con éxito.
4. Comienza la tormenta
Cambiar al directorio de tormenta/bin
Inicie la entrada en el nodo maestro:
tormenta nimbus>/dev/null 2> & 1 &
Acceda a la entrada de la interfaz web (maestro):
tormenta de usuario
Ingrese desde el nodo (Slave1, Slave2):
Supervisor de tormenta>/dev/null 2> & 1 &
Ingrese en la interfaz del navegador: puerto 8080
La interfaz se abre correctamente, lo que indica que la configuración del entorno es exitosa:
Instalación del entorno de Kafka
Kafka es un sistema de mensajes distribuido de transmisión de alto rendimiento utilizado para procesar datos de transmisión activos, como visitas de página web, PM, registros, etc., que no solo puede procesar la información de Big Data en tiempo real sino también fuera de línea.
1. Preparación de documentos
Descomprimir el archivo de configuración de Kafka descargado
Ingrese en Linux:
tar -xvf kafka_2.12-1.0.0.tgz
Luego muévalo a /opt /kafka, cree si no existe y luego cambie el nombre de la carpeta a kafka2.12
ingresar
MV Kafka_2.12-1.0.0 /opt /kafka MV Kafka_2.12-1.0.0 Kafka2.12
2. Configuración del entorno
Editar /etc /archivo de perfil
ingresar:
Exportar kafka_home =/opt/kafka/kafka2.12 exportar ruta =.: $ {java_home}/bin: $ {kafka_home}/bin: $ {zk_home}/bin: $ rutaingresar:
fuente /etc /perfil
Hacer que la configuración sea efectiva
3. Modificar el archivo de configuración
Nota: En realidad, si se trata de una máquina independiente, el archivo de configuración de Kafka se puede iniciar directamente en el directorio bin sin modificarla. Pero somos un clúster aquí, así que simplemente cámbielo ligeramente.
Cambiar al directorio de Kafka/config
Editar el archivo Server.Properties
Lo que debe cambiar es la dirección de Zookeeper:
Encuentre la configuración de Zookeeper, especifique la dirección del clúster Zookeeper y modifíquela de la siguiente manera
Zookeeper.Connect = Master: 2181, Slave1: 2181, Slave2: 2181zookeeper.connection.timeout.ms = 6000
Otras opciones de cambio son
1, num.Partitions representa la partición especificada, el valor predeterminado es 1
2. Log.Dirs Kafka Rath, simplemente cambie esto de acuerdo con las necesidades personales.
...
Nota: Hay otras configuraciones, puede ver la documentación oficial. Si no hay requisitos especiales, solo use el predeterminado.
Después de la configuración, ¡recuerde usar el comando SCP para transmitir a otros grupos!
4. Comienza Kafka
¡Clúster, cada clúster debe ser operado!
Cambiar al directorio kafka/bin
ingresar:
kafka-server-start.sh
Luego ingrese el nombre de JPS para ver si comienza con éxito:
Después de un inicio exitoso, puede realizar una prueba simple
Crea un tema primero
ingresar:
kafka-topics.sh --zookeeper maestro: 2181 --create--topic t_test --Partitions 5--factor de replicación 2
Descripción: Aquí hay un tema llamado T_Test, y se especifican 5 particiones, cada partición tiene 2 réplicas. Si no se especifica la partición, la partición predeterminada se configura en el archivo de configuración.
Luego datos de producción
ingresar:
Kafka-Console-Producer.Sh-Broker-List Master: 9092-Topic T_Test
Puedes usar Ctrl+D para salir
Luego abrimos otra ventana xshell
Consumir
ingresar:
Kafka-Console-Consumer.Sh-Zookeeper Master: 2181--Topic T_Test --Drom-Beginning
Puedes usar Ctrl+C para salir
Puede ver que los datos se han consumido normalmente.
5. Algunos comandos de kafka comúnmente utilizados
1. Comience y cierre Kafka
bin/kafka-server-start.sh config/server.properties >>/dev/null 2> & 1 & bin/kafka-server-stop.sh
2. Verifique la cola de mensajes y la cola específica en el clúster Kafka
Ver todos los temas en el clúster
Kafka-Topics.Sh-Zookeeper Master: 2181, Slave1: 2181, Slave2: 2181 --list
Ver una información sobre el tema
kafka-topics.sh --zookeeper maestro: 2181 --Describe--topic t_test
3. Crea un tema
kafka-topics.sh --zookeeper maestro: 2181 --create--topic t_test --Partitions 5--factor de replicación 2
4. Datos de producción y datos de consumo
Kafka-Console-Producer.Sh-Broker-List Master: 9092-Topic T_Test
Ctrl+D Salir
Kafka-Console-Consumer.Sh-Zookeeper Master: 2181--Topic T_Test --Drom-Beginning
Salida Ctrl+C
5. Comando de eliminación de Kafka
kafka-topics.sh --delete --zookeeper maestro: 2181--topic t_test
6. Agregar partición
kafka-topics.sh --alter--topict_test --zookeeper maestro: 2181 --Partitions 10
otro
Referencia al documento oficial para la construcción del entorno de tormenta: http://storm.apache.org/releases/1.1.1/settingup-a-storm-cluster.html
Documento oficial de referencia de construcción de entorno de Kafka: http://kafka.apache.org/quickstart
Resumir
Lo anterior es todo el contenido de este artículo. Espero que el contenido de este artículo tenga cierto valor de referencia para el estudio o el trabajo de todos. Si tiene alguna pregunta, puede dejar un mensaje para comunicarse. Gracias por su apoyo a Wulin.com.