Prefácio
Antes de iniciar, deve -se notar que não há conexão necessária entre a instalação do cluster Storm e Kafka. Eu escrevi esses dois juntos porque ambos são gerenciados pelo Zookeeper e confio no ambiente JDK. Para não repetir a configuração, escrevi esses dois juntos. Se você precisar apenas de um, basta escolher a leitura que você escolher. Não vou dizer muito abaixo, vamos dar uma olhada na introdução detalhada juntos.
As dependências desses dois são as seguintes:
Nota: Storm1.0 e Kafka2.0 requerem JDK pelo menos 1,7 e Zookeeper3.0 ou acima.
Download Endereço:
Instalação JDK
Cada máquina precisa ser instalada com o JDK! ! !
Nota: Geralmente, o CentOS vem com o OpenJDK, mas estamos usando o JDK da Oracle. Então você precisa escrever desinstalar openJDK e instalar o JDK baixado no Oracle. Se você desinstalou, pode pular esta etapa.
Primeiro digite java -version
Verifique se o JDK está instalado. Se estiver instalado, mas a versão não for adequada, desinstale -a.
digitar
rpm -qa | Java Grep
Visualizar informações
Em seguida, digite:
rpm -e - -nodeps "Você deseja desinstalar informações do JDK"
Por exemplo: rpm -e --nodeps java-1.7.0-openjdk-1.7.0.99-2.6.5.1.el6.x86_64
Depois de confirmar que se foi, descompacte o JDK baixado
TAR -XVF JDK-8U144-Linux-x64.tar.gz
Mova para a pasta Opt/Java, crie novos sem eles e renomeie a pasta para JDK1.8.
MV JDK1.8.0_144 /OPT /JAVAMV JDK1.8.0_144 JDK1.8
Em seguida, edite o arquivo de perfil e adicione a seguinte configuração
digitar:
vim /etc /perfil
Adicionar à:
Exportar java_home =/opt/java/jdk1.8export jre_home =/opt/java/jdk1.8/jrexport classPath = .: $ java_home/lib/dt.jar: $ java_home/lib/tools.jar: $ jre_home Caminho = .: $ {java_home}/bin: $ pathApós adição bem -sucedida, digite
fonte /etc /perfiljava -version
Verifique se a configuração é bem -sucedida
Instalação do ambiente do Zookeeper
1. Preparação de documentos
Descompactar o arquivo de configuração do Zookeeper baixado
Entre no Linux:
Tar -xvf Zookeeper -3.4.10.tar.gz
Em seguida, vá para /opt /zookeeper, crie um novo sem ele e renomeie a pasta para o Zookeeper3.4
digitar
MV Zookeeper-3.4.10 /opt /zookeepermv zookeeper-3.4.10 Zookeeper3.4
2. Configuração do ambiente
Editar /etc /arquivo de perfil
digitar:
exportar zk_home =/opt/zookeeper/zookeeper3.4 Caminho de exportação = .: $ {java_home}/bin: $ {zk_home}/bin: $ caminhodigitar:
fonte /etc /perfil
Torne a configuração eficaz
3. Modifique o arquivo de configuração
3.3.1 Crie arquivos e diretórios
Crie esses diretórios nos servidores no cluster
mkdir/opt/zookeeper/dados mkdir/opt/zookeeper/datalog
E crie o arquivo myid em/opt/zookeeper/diretório de dados
digitar:
Toque em Myid
Após a criação bem -sucedida, altere o arquivo myid.
Por conveniência, mudei o conteúdo de arquivos Myid de mestre, escravo1 e escravo2 para 1, 2, 3
3.3.2 Crie novo zoo.cfg
Mude para /opt/zookeeper/zookeeper3.4/conf diretório
Se não houver arquivo zoo.cfg, copie o arquivo zoo_sample.cfg e renomeie -o para zoo.cfg.
Modifique este arquivo zoo.cfg recém -criado
datadir =/opt/zookeeper/datadatalogdir =/opt/zookeeper/datalogServer.1 = Master: 2888: 3888Server.2 = escravo1: 2888: 3888Server.3 = Slave2: 2888: 3888
Descrição: a porta do cliente, como o nome indica, é a porta em que o cliente se conecta ao serviço Zookeeper. Esta é uma porta TCP. O Datalogdir é o log de pedidos (WAL) colocado. O Datadir coloca o instantâneo das estruturas de dados de memória, que facilita a recuperação rápida. Para maximizar o desempenho, geralmente é recomendável dividir Datadir e Datalogdir em diferentes discos, para que as características de gravação de pedidos em disco possam ser totalmente utilizados. Datadir e Datalogdir precisam ser criados por si mesmos, e os diretórios podem ser formulados por eles mesmos e podem ser correspondentes. Este 1 no servidor.1 precisa corresponder ao valor no arquivo myid no diretório Datadir na máquina mestre. Este 2 no servidor.2 precisa corresponder ao valor no arquivo myid no diretório Datadir no Slave1. Este 3 no servidor.3 precisa corresponder aos valores no arquivo MYID no diretório Datadir no Slave2. Obviamente, você pode usar os valores como desejar, assim como eles correspondem. Os números da porta de 2888 e 3888 também podem ser usados casualmente, porque não importa se você usar o mesmo em máquinas diferentes.
1.Ticktime: CS Communication Heartbeat Number
O intervalo de tempo entre os servidores Zookeeper ou entre clientes e servidores mantém os batimentos cardíacos, ou seja, cada horário de ticktime enviará um batimento cardíaco. Ticktime está em milissegundos.
tickTime=2000
2.InitLimit: LF Limite inicial de comunicação
O número máximo de batimentos cardíacos (número de tempos de ticktims) que podem tolerar durante a conexão inicial entre o servidor seguidor (F) e o servidor Leader (L) no cluster.
initLimit=10
3.Synclimit: LIM de tempo de comunicação síncrona LF
O número máximo de batimentos cardíacos (número de tempos de ticktims) que podem ser tolerados entre solicitações e respostas entre servidores seguidores e servidores líderes no cluster.
syncLimit=5
Ainda transfira o Zookeeper para outras máquinas. Lembre -se de alterar o myid under/opt/zookeeper/dados, isso não pode ser consistente.
digitar:
Scp -r/opt/zookeeper root@escravo1:/optscp -r/opt/zookeeper root@escravo2:/opt
4. Inicie o Zookeeper
Como o Zookeeper é um sistema eleitoral, seu relacionamento mestre-escravo não é especificado como o Hadoop. Para detalhes, você pode consultar a documentação oficial.
Depois de configurar com êxito o Zookeeper, inicie o Zookeeper em cada máquina.
Mude para o diretório Zookeeper
cd /opt/zookeeper/zookeeper3.4/bin
digitar:
zkSserver.sh Start
Após uma startup de sucesso
Exibir entrada de status:
status zkSserver.sh
Você pode ver o líder e o seguidor do Zookeeper em cada máquina
Instalação do ambiente de tempestades
1. Preparação de documentos
Descompacte o arquivo de configuração de tempestade baixado
Entre no Linux:
Tar -xvf apache-storm-1.1.1.tar.gz
Em seguida, mova -o para /opt /Storm, crie -o se não existir e renomeie a pasta para Storm1.1
digitar
MV Apache-Storm-1.1.1 /Opt /Storm MV Apache-Storm-1.1.1 Storm1.1
Editar /etc /arquivo de perfil
Adicionar à:
export storm_home =/opt/storm/storm1.1export caminho = .: $ {java_home}/bin: $ {zk_home}/bin: $ {storm_home}/bin: $ path Digite a versão Storm para visualizar as informações da versão
3. Modifique o arquivo de configuração
Editar tempestade.Yarm of Storm/conf.
Faça as seguintes edições:
digitar:
vim storm.yarm
Slave.zookeeper.ervers: - "Master" - "Slave1" - "Slave2" Storm.local.dir: "/root/storm"nimbus.seeds: [" Master "] supervisor.slots.ports: - 6700 - 6701 - 6702 - 6703
ilustrar:
1. Storm.zookeeper.ervers é o endereço de serviço do Zookeeper especificado.
Como as informações de armazenamento do Storm estão no Zookeeper, o endereço de serviço do Zookeeper deve ser configurado. Se o Zookeeper é uma máquina independente, você só precisa especificar uma!
2. Storm.local.dir representa o diretório de armazenamento.
Os nimbus e o supervisor Daemons precisam armazenar um diretório no disco local para armazenar uma pequena quantidade de estado (como frascos, confs, etc.). Pode ser criado em cada máquina e com permissões.
3. Nimbus.seeds representa o anfitrião do candidato.
O trabalhador precisa saber qual máquina é o candidato anfitrião (o cluster do Zookeeper é eleitoral), para que os frascos e os confs da topologia possam ser baixados.
4. Supervisor.slots.ports representa a porta do trabalhador.
Para cada máquina de supervisor, podemos usar isso para configurar quantos trabalhadores funcionam nesta máquina. Cada trabalhador usa uma porta separada para receber mensagens, que também define quais portas estão abertas para usar. Se você definir 5 portas aqui, isso significa que até 5 trabalhadores podem ser executados neste nó supervisor. Se 3 portas estiverem definidas, isso significa que até 3 trabalhadores podem ser executados. Por padrão (ou seja, configurado em padrão.yaml), haverá quatro trabalhadores correndo nos portos 6700, 6701, 6702 e 6703.
O supervisor não inicia esses quatro trabalhadores imediatamente após a startup. Em vez disso, ele começará apenas quando a tarefa atribuída for aceita. O número específico de trabalhadores para iniciar deve ser determinado com base em quantos trabalhadores precisamos nesse supervisor em topologia. Se a topologia especificada for executada por apenas um trabalhador, o supervisor iniciar um trabalhador e não iniciará tudo.
Nota: Não há espaços na frente dessas configurações! ! ! , caso contrário, um erro será relatado. O nome do host (mapeamento) é usado aqui e o IP também pode ser usado. A situação real é baseada por conta própria.
Você pode usar o comando SCP ou o software FTP para copiar a tempestade para outras máquinas.
Após a configuração bem -sucedida, você pode começar a tempestade, mas certifique -se de que o JDK e o Zookeeper tenham sido instalados corretamente e que o Zookeeper tenha sido iniciado com sucesso.
4. Start Storm
Mudar para o diretório de tempestade/bin
Inicie a entrada no nó principal:
Storm Nimbus>/dev/null 2> & 1 &
Acesse a entrada da interface da web (mestre):
Ui de tempestade
Digite do Node (Slave1, Slave2):
Supervisor de tempestade>/dev/null 2> & 1 &
Digite na interface do navegador: Porta 8080
A interface é aberta com sucesso, indicando que a configuração do ambiente é bem -sucedida:
Instalação do ambiente de Kafka
O KAFKA é um sistema de mensagens distribuído de streaming de alto rendimento usado para processar dados de streaming ativo, como visitas à página da web PM, logs etc., que podem não apenas processar informações de big data em tempo real, mas também offline.
1. Preparação de documentos
Descompacte o arquivo de configuração Kafka baixado
Entre no Linux:
TAR -xvf kafka_2.12-1.0.0.tgz
Em seguida, mova -o para /opt /kafka, crie -o se não existir e renomeie a pasta para Kafka2.12
digitar
mv kafka_2.12-1.0.0 /opt /kafka mv kafka_2.12-1.0.0 kafka2.12
2. Configuração do ambiente
Editar /etc /arquivo de perfil
digitar:
exportar kafka_home =/opt/kafka/kafka2.12 Caminho de exportação = .: $ {java_home}/bin: $ {kafka_home}/bin: $ {zk_home}/bin: $ caminhodigitar:
fonte /etc /perfil
Torne a configuração eficaz
3. Modifique o arquivo de configuração
NOTA: Na verdade, se for uma máquina independente, o arquivo de configuração Kafka pode ser iniciado diretamente no diretório do bin sem modificá-lo. Mas somos um cluster aqui, então mude um pouco.
Mude para o diretório Kafka/Config
Edite o arquivo server.properties
O que precisa ser alterado é o endereço do Zookeeper:
Encontre a configuração do Zookeeper, especifique o endereço do cluster do Zookeeper e modifique -o da seguinte forma
Zookeeper.Connect = Mestre: 2181, Slave1: 2181, Slave2: 2181zookeeper.Connection.Timeout.MS = 6000
Outras opções de mudança são
1, num.partições representa a partição especificada, o padrão é 1
2. LOG.DIRS KAFKA LOG CATH, basta mudar isso de acordo com as necessidades pessoais.
...
Nota: Existem outras configurações, você pode visualizar a documentação oficial. Se não houver requisitos especiais, basta usar o padrão.
Após a configuração, lembre -se de usar o comando SCP para transmitir a outros clusters!
4. Comece Kafka
Cluster Todo cluster precisa ser operado!
Mude para o diretório Kafka/Bin
digitar:
kafka-server-start.sh
Em seguida, insira o nome JPS para ver se ele começa com sucesso:
Após a startup de sucesso, você pode realizar um teste simples
Crie um tópico primeiro
digitar:
Kafka-topics.sh-Zookeeper Master: 2181 --Create-Tópico T_Test-Partições 5-Replicação-Factor 2
Descrição: Aqui está um tópico chamado T_Test e 5 partições são especificadas, cada partição possui 2 réplicas. Se a partição não for especificada, a partição padrão será configurada no arquivo de configuração.
Então dados de produção
digitar:
Kafka-Console-Producer.sh-Mestre-Lista de Broker: 9092-Tópico T_Test
Você pode usar Ctrl+D para sair
Então abrimos outra janela Xshell
Consumir
digitar:
kafka-console-consumer.sh-Zookeeper Mestre: 2181-Tópico T_Test-from-in-the-beginning
Você pode usar Ctrl+C para sair
Você pode ver que os dados foram consumidos normalmente.
5. Alguns comandos comumente usados de Kafka
1. Iniciar e fechar Kafka
bin/kafka-erver-start.sh config/server.properties >>/dev/null 2> & 1 & bin/kafka-server-stop.sh
2. Verifique a fila de mensagens e a fila específica no cluster kafka
Veja todos os tópicos no cluster
kafka-topics.sh-Zookeeper Master: 2181, Slave1: 2181, Slave2: 2181-List
Veja uma informação de tópico
kafka-topics.sh-Zookeeper Master: 2181-Descrencionar-Tópico T_Test
3. Crie um tópico
Kafka-topics.sh-Zookeeper Master: 2181 --Create-Tópico T_Test-Partições 5-Replicação-Factor 2
4. Dados de produção e dados de consumo
Kafka-Console-Producer.sh-Mestre-Lista de Broker: 9092-Tópico T_Test
Ctrl+D Saída
kafka-console-consumer.sh-Zookeeper Mestre: 2181-Tópico T_Test-from-in-the-beginning
Ctrl+C Sair
5. Comando de exclusão de Kafka
kafka-topics.sh--Delete-Zookeeper Master: 2181-Tópico T_Test
6. Adicione a partição
kafka-topics.sh --alter--topict_test --zookeeper mestre: 2181-Partições 10
outro
Referência ao documento oficial para o Storm Environment Construction: http://storm.apache.org/releases/1.1.1/Setting-Up-Torm-Cluster.html
Kafka Ambient Construction Reference Documento oficial: http://kafka.apache.org/quickstart
Resumir
O acima é o conteúdo inteiro deste artigo. Espero que o conteúdo deste artigo tenha certo valor de referência para o estudo ou trabalho de todos. Se você tiver alguma dúvida, pode deixar uma mensagem para se comunicar. Obrigado pelo seu apoio ao wulin.com.