Es ist sehr einfach, einen Kong-Cluster unter dem Docker-Container zu erstellen. Die Einführung auf der offiziellen Website ist ebenfalls sehr einfach. Anfänger wissen oft nicht, wie sie damit umgehen sollen. Nach sorgfältigem Nachdenken habe ich es endlich gebaut. Die Grundidee: Verschiedene Kongs verbinden sich mit derselben Datenbank (nur ein Satz) Schwierigkeit: Wie man Kong verwendet, um eine Verbindung zur gleichen Datenbank auf verschiedenen Hosts herzustellen Erfordern: 1. Zwei Hosts 172.16.100.101 172.16.100.102 Schritt: 1. Installieren Sie die Datenbank auf 101 (verwenden Sie hier Cassandra) docker run -d --name kong-datenbank \ -p 9042:9042 \ Cassandra: neueste 2. Migrieren Sie die Datenbank (Sie können die Initialisierung der Datenbank verstehen) docker run --rm \ --link kong-datenbank:kong-datenbank \ -e "KONG_DATABASE=cassandra" \ -e "KONG_PG_HOST=Kong-Datenbank" \ -e "KONG_CASSANDRA_CONTACT_POINTS=Kong-Datenbank" \ Kong: Neueste Kong-Migrationen 3. Kong installieren docker run -d --name kong \ --link kong-datenbank:kong-datenbank \ -e "KONG_DATABASE=cassandra" \ -e "KONG_PG_HOST=Kong-Datenbank" \ -e "KONG_CASSANDRA_CONTACT_POINTS=Kong-Datenbank" \ -e "KONG_PROXY_ACCESS_LOG=/dev/stdout" \ -e "KONG_ADMIN_ACCESS_LOG=/dev/stdout" \ -e "KONG_PROXY_ERROR_LOG=/dev/stderr" \ -e "KONG_ADMIN_ERROR_LOG=/dev/stderr" \ -p 8000:8000 \ -p 8443:8443 \ -p 8001:8001 \ -p 8444:8444 \ Kong: neueste Hinweis: Die oben genannten drei Schritte werden alle auf 101 abgeschlossen, und die offizielle Website hat https://getkong.org/install/docker/?_ga=2.68209937.1607475054.1519611673-2089953626.1519354770. Der nächste vierte Schritt wird auf einem anderen Host 102 abgeschlossen. Link kann auf demselben Host verwendet werden, aber Link kann nicht für Containerzuordnungen auf verschiedenen Hosts verwendet werden. Die folgende Konfiguration ist ausreichend 4. Installieren Sie einen weiteren Kong auf 102, um einen Kong-Cluster mit mehreren Knoten zu implementieren docker run -d --name kong\ -e "KONG_DATABASE=cassandra" \ -e "KONG_PG_HOST=Kong-Datenbank" \ -e "KONG_CASSANDRA_CONTACT_POINTS=172.16.100.101" \ -e "KONG_PROXY_ACCESS_LOG=/dev/stdout" \ -e "KONG_ADMIN_ACCESS_LOG=/dev/stdout" \ -e "KONG_PROXY_ERROR_LOG=/dev/stderr" \ -e "KONG_ADMIN_ERROR_LOG=/dev/stderr" \ -p 8000:8000 \ -p 8443:8443 \ -p 8001:8001 \ -p 8444:8444 \ Kong: neueste 5. Hier wird die Cassandra-Datenbank verwendet, daher müssen Sie einen Konfigurationsparameter db_update_propagation ändern. Der Standardwert ist 0, der auf 5 geändert werden kann. Geben Sie den Container ein docker exec -it kong bash //Geben Sie den Kong-Container ein cd etc/kong //Geben Sie das Verzeichnis ein cp kong.conf.default kong.conf //Kopieren Sie die Datei kong.conf.default in die Datei kong.conf vi kong.conf //Ändern Sie das Konfigurationselement db_update_propagation
Hinweis: Kong auf 101 und 102 muss dieses Konfigurationselement ändern. Eine Einführung in das Konfigurationselement db_update_propagation finden Sie auf der offiziellen Website. 6. Überprüfen Sie den Kong-Cluster So können Sie eine API auf 101 registrieren curl -i -X POST \ --url http://172.16.100.101:8001/apis/ \ --data 'name=beispiel-api' \ --data 'hosts=beispiel.com' \ --data 'upstream_url=http://mockbin.org' Überprüfen Sie anschließend, ob die API erfolgreich registriert wurde:
Die Rendite ist wie folgt: Sie können auch über den 102-Maschinen-Host abfragen:
Wenn dasselbe Ergebnis wie oben zurückgegeben wird, bedeutet dies, dass auf dieselbe API zugegriffen werden kann. Die API-Informationen werden in der Datenbank gespeichert, was bedeutet, dass auf dieselbe Datenbank zugegriffen werden kann. Auf diese Weise wird Ihr Kong-Cluster erfolgreich erstellt. Ich hoffe, es wird Ihnen hilfreich sein. Ergänzendes Wissen: Verwenden Sie Docker-Compose, um einen Hadoop-Cluster zu erstellen Laden Sie das Docker-Image herunter Laden Sie zunächst die fünf Docker-Images herunter, die Sie verwenden müssen Docker Pull BDE2020 / Hadoop-Namensknoten: 1.1.0-Hadoop2.7.1-Java8 Docker-Pull BDE2020 / Hadoop-Datanode: 1.1.0-Hadoop2.7.1-Java8 Docker-Pull BDE2020/Hadoop-Resourcemanager:1.1.0-Hadoop2.7.1-Java8 Docker-Pull BDE2020/Hadoop-Historyserver:1.1.0-Hadoop2.7.1-Java8 Docker-Pull BDE2020 / Hadoop-NodeManager: 1.1.0-Hadoop2.7.1-Java8 Festlegen der Hadoop-Konfigurationsparameter Erstellen Sie eine hadoop.env-Datei mit folgendem Inhalt: CORE_CONF_fs_defaultFS=hdfs://namenode:8020 CORE_CONF_hadoop_http_staticuser_user=root CORE_CONF_hadoop_proxyuser_hue_hosts=* CORE_CONF_hadoop_proxyuser_hue_groups=* HDFS_CONF_dfs_webhdfs_enabled=true HDFS_CONF_dfs_permissions_enabled=false YARN_CONF_yarn_log___aggregation___enable=true YARN_CONF_yarn_resourcemanager_recovery_enabled=true YARN_CONF_yarn_resourcemanager_store_class=org.apache.hadoop.yarn.server.resourcemanager.recovery.FileSystemRMStateStore YARN_CONF_yarn_resourcemanager_fs_state___store_uri=/rmstate YARN_CONF_yarn_nodemanager_remote___app___log___dir=/App-Protokolle YARN_CONF_yarn_log_server_url=http://historyserver:8188/applicationhistory/logs/ YARN_CONF_yarn_timeline___service_enabled=true YARN_CONF_yarn_timeline___service_generic___application___history_enabled=true YARN_CONF_yarn_resourcemanager_system___metrics___publisher_enabled=true YARN_CONF_yarn_resourcemanager_hostname=Ressourcenmanager YARN_CONF_yarn_timeline___service_hostname=Historyserver YARN_CONF_yarn_resourcemanager_address=Ressourcenmanager:8032 YARN_CONF_yarn_resourcemanager_scheduler_address=Ressourcenmanager:8030 YARN_CONF_yarn_resourcemanager_resource___tracker_address=Ressourcenmanager:8031 Erstellen Sie eine Docker-Compose-Datei Erstellen Sie eine Datei docker-compose.yml mit folgendem Inhalt: Version: "2" Leistungen: Namensknoten: Bild: bde2020/hadoop-namenode:1.1.0-hadoop2.7.1-java8 Containername: Namensknoten Bände: – hadoop_namenode:/hadoop/dfs/name Umfeld: - CLUSTER_NAME=Test Umgebungsdatei: - ./hadoop.env Ressourcenmanager: Bild: bde2020/hadoop-resourcemanager:1.1.0-hadoop2.7.1-java8 Containername: Ressourcenmanager hängt ab von: - Namensknoten -Datenknoten1 -Datenknoten2 -Datenknoten3 Umgebungsdatei: - ./hadoop.env Verlaufsserver: Bild: bde2020/hadoop-historyserver:1.1.0-hadoop2.7.1-java8 Containername: Verlaufsserver hängt ab von: - Namensknoten -Datenknoten1 -Datenknoten2 -Datenknoten3 Bände: - hadoop_historyserver:/hadoop/yarn/timeline Umgebungsdatei: - ./hadoop.env Knotenmanager1: Bild: bde2020/hadoop-nodemanager:1.1.0-hadoop2.7.1-java8 Containername: nodemanager1 hängt ab von: - Namensknoten -Datenknoten1 -Datenknoten2 -Datenknoten3 Umgebungsdatei: - ./hadoop.env Datenknoten1: Bild: bde2020/hadoop-datanode:1.1.0-hadoop2.7.1-java8 Containername: Datenknoten1 hängt ab von: - Namensknoten Bände: – hadoop_datanode1:/hadoop/dfs/data Umgebungsdatei: - ./hadoop.env Datenknoten2: Bild: bde2020/hadoop-datanode:1.1.0-hadoop2.7.1-java8 Containername: Datenknoten2 hängt ab von: - Namensknoten Bände: – hadoop_datanode2:/hadoop/dfs/data Umgebungsdatei: - ./hadoop.env Datenknoten3: Bild: bde2020/hadoop-datanode:1.1.0-hadoop2.7.1-java8 Containername: Datanode3 hängt ab von: - Namensknoten Bände: – hadoop_datanode3:/hadoop/dfs/data Umgebungsdatei: - ./hadoop.env Bände: hadoop_namenode: hadoop_datanode1: hadoop_datanode2: hadoop_datanode3: hadoop_historyserver: Erstellen und Starten eines Hadoop-Clusters
Nach dem Starten des Hadoop-Clusters können Sie den folgenden Befehl verwenden, um die Containerinformationen des Hadoop-Clusters anzuzeigen: # Zeigen Sie die im Cluster enthaltenen Container und die exportierte Portnummer an sudo docker-compose ps Name Befehl Status Ports ------------------------------------------------------------------------ datanode1 /entrypoint.sh /run.sh Up 50075/tcp datanode2 /entrypoint.sh /run.sh Up 50075/tcp datanode3 /entrypoint.sh /run.sh Up 50075/tcp historyserver /entrypoint.sh /run.sh Up 8188/tcp Namenode /entrypoint.sh /run.sh Up 50070/tcp nodemanager1 /entrypoint.sh /run.sh Hoch 8042/tcp Ressourcenmanager /entrypoint.sh /run.sh Up 8088/tc # Zeigen Sie die IP-Adresse des Namenodes an sudo docker inspect namenode | grep IPAddress Sie können den Clusterstatus auch über http://:50070 anzeigen. Einreichen von Aufgaben Um einen Job einzureichen, müssen wir uns zuerst bei einem Knoten im Cluster anmelden, hier melden wir uns beim Namenode-Knoten an.
Daten vorbereiten und Auftrag übermitteln cd /opt/hadoop-2.7.1 # Benutzerverzeichnis erstellen hdfs dfs -mkdir /user hdfs dfs -mkdir /Benutzer/Root # Daten vorbereiten hdfs dfs -mkdir input hdfs dfs -put etc/hadoop/*.xml Eingabe # Übermitteln Sie den Auftrag hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.1.jar grep input output 'dfs[az.]+' # Zeigen Sie die Ergebnisse der Jobausführung an hdfs dfs -cat output/* Daten löschen hdfs dfs -rm Eingabe/* hdfs dfs -rmdir Eingabe/ hdfs dfs -rm Ausgabe/* hdfs dfs -rmdir Ausgabe/ Stoppen des Clusters Sie können den Cluster durch Drücken von STRG+C oder mit „sudo docker-compose stop“ beenden. Nach dem Stoppen des Clusters wird der erstellte Container nicht gelöscht. Sie können „sudo docker-compose rm“ verwenden, um den gestoppten Container zu löschen. Sie können auch „sudo docker-compose down“ verwenden, um den Container zu stoppen und zu entfernen. Verwenden Sie nach dem Löschen des Containers „sudo docker volume ls“, um die vom obigen Cluster verwendeten Volume-Informationen anzuzeigen. Wir können „sudo docker rm“ verwenden, um es zu löschen. Der obige Artikel über die Verwendung von Docker zum Erstellen eines Kong-Cluster-Vorgangs ist der gesamte Inhalt, den der Herausgeber mit Ihnen teilt. Ich hoffe, er kann Ihnen als Referenz dienen, und ich hoffe auch, dass Sie 123WORDPRESS.COM unterstützen. Das könnte Sie auch interessieren:
|
<<: Verwenden einer Cursorschleife zum Lesen temporärer Tabellen in gespeicherten MySQL-Prozeduren
In vielen Fällen müssen Sie den Bildhintergrund b...
Inhaltsverzeichnis Was ist LocalStorage Was ist S...
Inhaltsverzeichnis 1. Bootstrap-Rasterlayout 2. V...
Einführung in vier häufig verwendete MySQL-Engine...
<br />Dieser Artikel gibt Ihnen eine kurze E...
Grundlegende Syntax der Tabelle <table>...&l...
GitHub-Adresse: https://github.com/dmhsq/dmhsq-my...
Inhaltsverzeichnis Überblick Was ist die O-Notati...
So fügen Sie ein <script>-Skript in HTML ein...
Vorwort Jeder weiß, dass das Partitionsfeld Teil ...
Inhaltsverzeichnis Vorwort 1. Welche Variablen we...
von Nehmen wir als Beispiel den im Bild gezeigten...
Inhaltsverzeichnis BOM (Browserobjektmodell) 1. F...
Dieser Artikel ist eine MySQL-Konfigurationsdatei...
mysqlbinlog-Version anzeigen mysqlbinlog -V [--ve...