Préface
Avant de commencer, il convient de noter qu'il n'y a pas de connexion nécessaire entre l'installation du cluster Storm et Kafka. J'ai écrit ces deux-là ensemble parce qu'ils sont tous deux gérés par Zookeeper et je me fie à l'environnement JDK. Afin de ne pas répéter la configuration, j'ai écrit ces deux ensemble. Si vous en avez besoin, choisissez simplement la lecture que vous choisissez. Je ne dirai pas beaucoup ci-dessous, jetons un coup d'œil à l'introduction détaillée ensemble.
Les dépendances de ces deux sont les suivantes:
Remarque: Storm1.0 et Kafka2.0 nécessitent JDK au moins 1,7 et ZooKeeper3.0 ou supérieur.
Adresse de téléchargement:
Installation JDK
Chaque machine doit être installée avec JDK! ! !
Remarque: Généralement, CentOS est livré avec OpenJDK, mais nous utilisons JDK d'Oracle. Vous devez donc écrire un désinstallation OpenJDK, puis installer le JDK téléchargé dans Oracle. Si vous avez une désinstallation, vous pouvez ignorer cette étape.
Entrez d'abord java -version
Vérifiez si JDK est installé. S'il est installé mais que la version ne convient pas, désinstallez-la.
entrer
RPM -QA | java grep
Afficher les informations
Entrez ensuite:
RPM -E --nodeps "Vous voulez désinstaller des informations JDK"
Par exemple: rpm -e --nodeps java-1.7.0-openjdk-1.7.0.99-2.6.5.1.el6.x86_64
Après avoir confirmé qu'il a disparu, décompressez le JDK téléchargé
TAR -XVF JDK-8U144-LINUX-X64.TAR.GZ
Déplacez-vous dans le dossier OPT / Java, créez de nouveaux sans eux et renommez le dossier vers JDK1.8.
MV JDK1.8.0_144 / OPT / Javamv JDK1.8.0_144 JDK1.8
Ensuite, modifiez le fichier de profil et ajoutez la configuration suivante
entrer:
vim / etc / profil
Ajouter à:
export java_home = / opt / java / jdk1.8export jre_home = / opt / java / jdk1.8 / jreexport classpath =.: $ java_home / lib / dt.jar: $ java_home / lib / outils.jar: $ jre_home / libexport Path =.: $ {Java_home} / bin: $ cheminAprès un ajout réussi, entrez
Source / etc / Profilejava -Vursion
Vérifiez si la configuration est réussie
Installation de l'environnement Zookeeper
1. Préparation du document
Dézip le fichier de configuration du Zookeeper téléchargé
Entrez sur Linux:
TAR -XVF ZOOKEEPER-3.4.10.tar.gz
Ensuite, passez à / opt / zookeeper, créez-en un nouveau sans lui, puis renommez le dossier à ZooKeeper3.4
entrer
MV ZOOKEET-3.4.10 / OPT / ZOOKEEPERMV ZOOKEETER-3.4.10 ZOOKEETER3.4
2. Configuration de l'environnement
Edit / etc / fichier de profil
entrer:
export zk_home = / opt / zookeeper / zookeeper3.4 export path =.: $ {java_home} / bin: $ {zk_home} / bin: $ pathentrer:
source / etc / profil
Rendre la configuration efficace
3. Modifier le fichier de configuration
3.3.1 Créer des fichiers et des répertoires
Créez ces répertoires sur les serveurs dans le cluster
MKDIR / OPT / ZOOKENEER / DATA MKDIR / OPT / ZOOKEEPER / DATALOG
Et créer un fichier MyID dans / Opt / ZooKeeper / Data Directory
entrer:
toucher Myid
Après une création réussie, modifiez le fichier MyID.
Pour plus de commodité, j'ai changé le contenu des fichiers MyId de Master, Slave1 et Slave2 en 1, 2, 3
3.3.2 Créer un nouveau zoo.cfg
Passez à /opt/zookeeper/zookeeper3.4/conf répertoire
S'il n'y a pas de fichier zoo.cfg, copiez le fichier zoo_sample.cfg et renommez-le à zoo.cfg.
Modifiez ce fichier zoo.cfg nouvellement créé
datadir = / opt / zookeeper / datadatalogdir = / opt / zookeeper / datalogserver.1 = maître: 2888: 3888Server.2 = esclave1: 2888: 3888Server.3 = Slave2: 2888: 3888
Description: Le port client, comme le nom l'indique, est le port où le client se connecte au service Zookeeper. Il s'agit d'un port TCP. Le DatalogDir est placé le journal des commandes (WAL). Datadir met un instantané des structures de données de mémoire, ce qui facilite la récupération rapide. Afin de maximiser les performances, il est généralement recommandé de diviser Datadir et DatalogDir sur différents disques, afin que les caractéristiques d'écriture d'ordre de disque puissent être entièrement utilisées. Datadir et DatalogDir doivent être créés par eux-mêmes, et les répertoires peuvent être formulés par eux-mêmes, et ils peuvent être correspondants. Ce 1 dans Server.1 doit correspondre à la valeur du fichier MyID dans le répertoire Datadir sur la machine principale. Ce 2 dans Server.2 doit correspondre à la valeur du fichier MyID dans le répertoire Datadir sur Slave1. Ce 3 en serveur.3 doit correspondre aux valeurs du fichier MyID dans le répertoire Datadir sur Slave2. Bien sûr, vous pouvez utiliser les valeurs comme vous le souhaitez, tout comme elles correspondent. Les numéros de port de 2888 et 3888 peuvent également être utilisés avec désinvolture, car peu importe si vous utilisez la même chose sur différentes machines.
1.Ticktime: Numéro de battement de coeur CS Communication
L'intervalle de temps entre les serveurs ZooKeeper ou entre les clients et les serveurs maintient les battements cardiaques, c'est-à-dire que chaque temps de tick enverra un battement de cœur. Ticktime est en millisecondes.
tickTime=2000
2.Initlimit: LF limite de temps de communication initiale
Le nombre maximum de battements cardiaques (nombre de ticktimes) qui peuvent tolérer lors de la connexion initiale entre le serveur suiveur (F) et le serveur de leader (L) dans le cluster.
initLimit=10
3.Synclimit: limite de temps de communication synchrone LF
Le nombre maximum de battements cardiaques (nombre de temps) qui peuvent être tolérés entre les demandes et les réponses entre les serveurs de suiveurs et les serveurs de leader dans le cluster.
syncLimit=5
Transférer toujours Zookeeper vers d'autres machines. N'oubliez pas de modifier le MyId Under / Opt / ZooKeeper / Data, cela ne peut pas être cohérent.
entrer:
scp -r / opt / zookeeper root @ esclave1: / optscp -r / opt / zookeeper root @ esclave2: / opt
4. Démarrer Zookeeper
Parce que Zookeeper est un système électoral, sa relation maître-esclave n'est pas spécifiée comme Hadoop. Pour plus de détails, vous pouvez vous référer à la documentation officielle.
Après avoir réussi à configurer Zookeeper, démarrez ZooKeeper sur chaque machine.
Passez au répertoire Zookeeper
cd /opt/zookeeper/zookeeper3.4/bin
entrer:
zkserver.sh start
Après une startup réussie
Afficher l'entrée de l'état:
statut zkserver.sh
Vous pouvez voir le leader et le suiveur de Zookeeper sur chaque machine
Installation de l'environnement de tempête
1. Préparation du document
Décompressez le fichier de configuration de tempête téléchargé
Entrez sur Linux:
TAR -XVF apache-storm-1.1.1.tar.gz
Ensuite, déplacez-le vers / opt / tempête, créez-le s'il n'existe pas, puis renommer le dossier à Storm1.1
entrer
mv apache-storm-1.1.1 / opt / storm mv apache-storm-1.1.1 Storm1.1
Edit / etc / fichier de profil
Ajouter à:
Export Storm_Home = / Opt / Storm / Storm1.1Export Path =.: $ {Java_Home} / bin: $ {zk_home} / bin: $ {Storm_Home} / bin: $ path Entrez la version Storm pour afficher les informations de version
3. Modifier le fichier de configuration
Edit Storm.Yarm of Storm / Conf.
Faites les modifications suivantes:
entrer:
vim storm.yarm
slave.zookeeper.servers: - "Master" - "Slave1" - "Slave2" Storm.local.dir: "/root/storm"nimbus.seeds: [" maître "] superviseur.slots.ports: - 6700 - 6701 - 6702 - 6703
illustrer:
1. Storm.zookeeper.servers est l'adresse de service du Zookeeper spécifié.
Étant donné que les informations de stockage de Storm sont sur Zookeeper, l'adresse de service de Zookeeper doit être configurée. Si Zookeeper est une machine autonome, il vous suffit d'en spécifier un!
2. Storm.Local.dir représente le répertoire de stockage.
Les démons de Nimbus et du superviseur doivent stocker un répertoire sur le disque local pour stocker une petite quantité d'État (comme les pots, les confs, etc.). Peut être créé sur chaque machine et les autorisations données.
3. Nimbus.seeds représente l'hôte candidat.
Le travailleur doit savoir quelle machine est le candidat hôte (le cluster ZooKeeper est électoral), de sorte que les pots et les confs de topologie peuvent être téléchargés.
4. Supervisor.slots.ports représente le port de travailleur.
Pour chaque machine de superviseur, nous pouvons l'utiliser pour configurer le nombre de travailleurs à exécuter sur cette machine. Chaque travailleur utilise un port séparé pour recevoir des messages, qui définissent également quels ports sont ouverts à utiliser. Si vous définissez 5 ports ici, cela signifie que jusqu'à 5 travailleurs peuvent être exécutés sur ce nœud de superviseur. Si 3 ports sont définis, cela signifie que jusqu'à 3 travailleurs peuvent être exécutés. Par défaut (c'est-à-dire configuré dans par défaut.yaml), il y aura quatre travailleurs exécutés sur les ports 6700, 6701, 6702 et 6703.
Le superviseur ne démarre pas ces quatre travailleurs immédiatement après le démarrage. Au lieu de cela, il ne commencera que lorsque la tâche attribuée sera acceptée. Le nombre spécifique de travailleurs à démarrer doit être déterminé en fonction du nombre de travailleurs dont nous avons besoin dans ce superviseur en topologie. Si la topologie spécifiée sera exécutée par un seul travailleur, le superviseur démarre un travailleur et ne commencera pas tout.
Remarque: il n'y a pas d'espaces devant ces configurations! ! ! Sinon, une erreur sera signalée. Le nom d'hôte (mappage) est utilisé ici et l'IP peut également être utilisé. La situation réelle est basée sur la vôtre.
Vous pouvez utiliser la commande SCP ou le logiciel FTP pour copier Storm vers d'autres machines.
Après une configuration réussie, vous pouvez démarrer Storm, mais assurez-vous que JDK et ZooKeeper ont été installés correctement et que Zookeeper a été démarré avec succès.
4. Démarrer la tempête
Passez au répertoire Storm / Bin
Démarrez l'entrée sur le nœud maître:
Storm Nimbus> / dev / null 2> & 1 &
Accédez à l'interface Web (maître) Entrée:
tempête ui
Entrez à partir du nœud (Slave1, Slave2):
Storm Supervisor> / dev / null 2> & 1 &
Entrez dans l'interface du navigateur: Port 8080
L'interface est ouverte avec succès, indiquant que la configuration de l'environnement est réussie:
Installation de l'environnement de Kafka
Kafka est un système de messages distribué en streaming à haut débit utilisé pour traiter les données de streaming actives, telles que les visites de page Web PM, les journaux, etc., qui peuvent non seulement traiter les informations de Big Data en temps réel mais également hors ligne.
1. Préparation du document
Décompressez le fichier de configuration Kafka téléchargé
Entrez sur Linux:
Tar -xvf Kafka_2.12-1.0.0.tgz
Ensuite, déplacez-le vers / opt / kafka, créez-le s'il n'existe pas, puis renommez le dossier vers Kafka2.12
entrer
MV KAFKA_2.12-1.0.0 / OPT / KAFKA MV KAFKA_2.12-1.0.0 Kafka2.12
2. Configuration de l'environnement
Edit / etc / fichier de profil
entrer:
export kafka_home = / opt / kafka / kafka2.12 export path = .: $ {java_home} / bin: $ {kafka_home} / bin: $ {zk_home} / bin: $ pathentrer:
source / etc / profil
Rendre la configuration efficace
3. Modifier le fichier de configuration
Remarque: En fait, s'il s'agit d'une machine autonome, le fichier de configuration de Kafka peut être démarré directement dans le répertoire bac sans le modifier. Mais nous sommes un cluster ici, alors changez-le légèrement.
Passez au répertoire Kafka / Config
Modifier le fichier server.properties
Ce qui doit être modifié est l'adresse de Zookeeper:
Trouvez la configuration de Zookeeper, spécifiez l'adresse du cluster Zookeeper et modifiez-la comme suit
zookeeper.connect = maître: 2181, esclave1: 2181, esclave2: 2181zookeeper.connection.timeout.ms = 6000
Les autres options de changement sont
1, num.Partitions représente la partition spécifiée, la valeur par défaut est 1
2. Log.DIRS Kafka Log Path, il suffit de changer cela en fonction des besoins personnels.
...
Remarque: Il existe d'autres configurations, vous pouvez afficher la documentation officielle. S'il n'y a pas d'exigences spéciales, utilisez simplement la par défaut.
Après la configuration, n'oubliez pas d'utiliser la commande SCP pour transmettre à d'autres clusters!
4. Démarrer Kafka
Cluster Chaque cluster doit être utilisé!
Passez au répertoire Kafka / Bin
entrer:
kafka-server-start.sh
Entrez ensuite le nom JPS pour voir si cela commence avec succès:
Après une startup réussie, vous pouvez effectuer un test simple
Créez d'abord un sujet
entrer:
Kafka-topics.sh --zookeeper Master: 2181 --Create - Topic t_test --partitions 5 - Réplication-Factor 2
Description: Voici un sujet nommé T_Test, et 5 partitions sont spécifiées, chaque partition a 2 répliques. Si la partition n'est pas spécifiée, la partition par défaut est configurée dans le fichier de configuration.
Puis données de production
entrer:
Kafka-Console-Producer.sh - Broker-list Master: 9092 - TOPIC T_TEST
Vous pouvez utiliser Ctrl + D pour quitter
Ensuite, nous ouvrons une autre fenêtre Xshell
Consommer
entrer:
Kafka-Console-Consumer.sh --zookeeper Master: 2181 - TOPIC T_TEST --From-Beginning
Vous pouvez utiliser Ctrl + C pour quitter
Vous pouvez voir que les données ont été consommées normalement.
5. Certaines commandes couramment utilisées de Kafka
1. Démarrer et fermer Kafka
bin / kafka-server-start.sh config / server.properties >> / dev / null 2> & 1 & bin / kafka-server-stop.sh
2. Vérifiez la file d'attente des messages et la file d'attente spécifique dans le cluster Kafka
Afficher tous les sujets du cluster
Kafka-topics.sh --zookeeper Master: 2181, esclave1: 2181, esclave2: 2181 - liste
Afficher les informations sur le sujet
kafka-topics.sh --zookeeper maître: 2181 --déception - topic t_test
3. Créez un sujet
Kafka-topics.sh --zookeeper Master: 2181 --Create - Topic t_test --partitions 5 - Réplication-Factor 2
4. Données de production et données de consommation
Kafka-Console-Producer.sh - Broker-list Master: 9092 - TOPIC T_TEST
Ctrl + D Exit
Kafka-Console-Consumer.sh --zookeeper Master: 2181 - TOPIC T_TEST --From-Beginning
Sortie Ctrl + C
5. Commande de suppression de Kafka
Kafka-topics.sh - Delete --zookeeper Master: 2181 - TOPIC T_TEST
6. Ajouter une partition
Kafka-topics.sh --alter --topct_test --zookeeper maître: 2181 --partitions 10
autre
Référence au document officiel pour la construction de l'environnement de tempête: http://storm.apache.org/releases/1.1.1/setting-up-a-storm-cluster.html
Kafka Environment Construction Reference Document officiel: http://kafka.apache.org/quickstart
Résumer
Ce qui précède est l'intégralité du contenu de cet article. J'espère que le contenu de cet article a une certaine valeur de référence pour l'étude ou le travail de chacun. Si vous avez des questions, vous pouvez laisser un message pour communiquer. Merci pour votre soutien à wulin.com.