Ինչպես տեղադրել Apache Kafka-ն CMAK-ով CentOS-ում
Այս էջում
- Նախադրյալներ
- Սկսել
- Տեղադրեք Java
- Ներբեռնեք Կաֆկա
- Ստեղծեք Systemd ֆայլ Kafka-ի և Zookeeper-ի համար
- Տեղադրեք և կարգավորեք CMAK-ը
- Սկսեք CMAK ծառայությունները
- Կարգավորեք SELinux-ը և Firewall-ը
- Մուտք գործեք CMAK Web UI
- Ավելացրեք ձեր առաջին թեման Կաֆկայի մասին
- Եզրակացություն
Apache Kafka-ն անվճար և բաց կոդով հոսքային հարթակ է, որն օգտագործվում է հոսքային վերլուծության, տվյալների ինտեգրման և առաքելության համար կարևոր հավելվածների համար: Համեմատած ActiveMQ-ի և RabbitMQ-ի հետ՝ Kafka-ն ունի ավելի լավ թողունակություն, ներկառուցված բաժանում, կրկնօրինակում և սխալների հանդուրժողականություն: Կաֆկան բաշխված հաղորդագրությունների գործակալ է, որը կարող է արդյունավետորեն զբաղվել իրական ժամանակի տեղեկատվության հսկայական ծավալներով:
CMAK-ը, որը նաև հայտնի է որպես «Կլաստերի կառավարիչ», օգտագործվում է Yahoo-ի կողմից մշակված Kafka կլաստերի կառավարման համար: Օգտագործելով CMAK-ը, դուք կարող եք կառավարել բազմաթիվ կլաստերներ և ստուգել կլաստերի վիճակը, ներառյալ թեմաները, սպառողները, օֆսեթները, բրոքերները, կրկնօրինակների բաշխումը, բաժանման բաշխումը և շատ ավելին:
Այս ձեռնարկում մենք ցույց կտանք, թե ինչպես տեղադրել Apache Kafka հոսքային հարթակը CMAK-ով CentOS 8 սերվերի վրա:
Նախադրյալներ
- Սերվեր, որն աշխատում է CentOS 8-ով:
- Սերվերում կազմաձևված է արմատային գաղտնաբառը:
Սկսել
Նախ, խորհուրդ է տրվում թարմացնել ձեր համակարգի փաթեթները վերջին տարբերակին: Դուք կարող եք բոլորը թարմացնել հետևյալ հրամանով.
dnf update -y
Երբ բոլոր փաթեթները թարմացվեն, տեղադրեք այլ անհրաժեշտ կախվածություններ հետևյալ հրամանով.
dnf install git unzip -y
Ավարտելուց հետո կարող եք անցնել հաջորդ քայլին:
Տեղադրեք Java
Kafka-ն հիմնված է Java-ի վրա, ուստի Java-ն պետք է տեղադրվի ձեր սերվերում: Եթե տեղադրված չէ, կարող եք տեղադրել, եթե հետևյալ հրամանով.
dnf install java-11-openjdk-devel -y
Java-ի տեղադրումից հետո կարող եք հաստատել Java-ի տեղադրված տարբերակը՝ օգտագործելով հետևյալ հրամանը.
java --version
Դուք պետք է ստանաք հետևյալ արդյունքը.
openjdk 11.0.8 2020-07-14
OpenJDK Runtime Environment (build 11.0.8+10-post-CentOS-0centos8)
OpenJDK 64-Bit Server VM (build 11.0.8+10-post-CentOS-0centos8, mixed mode, sharing)
Ավարտելուց հետո կարող եք անցնել հաջորդ քայլին:
Ներբեռնեք Կաֆկա
Նախքան Kafka-ն ներբեռնելը, ստեղծեք տեղեկատու Կաֆկան պահելու համար: Դուք կարող եք այն ստեղծել հետևյալ հրամանով.
mkdir /usr/local/kafka-server
Հաջորդը, փոխեք գրացուցակը kafka-server-ի և ներբեռնեք Kafka-ի վերջին տարբերակը՝ օգտագործելով հետևյալ հրամանը.
cd /usr/local/kafka-server
wget https://downloads.apache.org/kafka/2.6.0/kafka_2.13-2.6.0.tgz
Ներբեռնումն ավարտվելուց հետո ներբեռնված ֆայլը հանեք հետևյալ հրամանով.
tar -xvzf kafka_2.13-2.6.0.tgz --strip 1
Ավարտելուց հետո կարող եք անցնել հաջորդ քայլին:
Ստեղծեք Systemd ֆայլ Kafka-ի և Zookeeper-ի համար
Հաջորդը, դուք պետք է ստեղծեք systemd ծառայության ֆայլ՝ Zookeeper և Kafka ծառայությունը կառավարելու համար:
Նախ, ստեղծեք Zookeeper ծառայության ֆայլ՝ օգտագործելով հետևյալ հրամանը.
nano /etc/systemd/system/zookeeper.service
Ավելացնել հետևյալ տողերը.
[Unit]
Description=Apache Zookeeper Server
Requires=network.target remote-fs.target
After=network.target remote-fs.target
[Service]
Type=simple
ExecStart=/usr/local/kafka-server/bin/zookeeper-server-start.sh /usr/local/kafka-server/config/zookeeper.properties
ExecStop=/usr/local/kafka-server/bin/zookeeper-server-stop.sh
Restart=on-abnormal
[Install]
WantedBy=multi-user.target
Պահպանեք և փակեք ֆայլը, երբ ավարտեք:
Հաջորդը, ստեղծեք Kafka ծառայության ֆայլը հետևյալ հրամանով.
nano /etc/systemd/system/kafka.service
Ավելացնել հետևյալ տողերը.
[Unit]
Description=Apache Kafka Server
Documentation=http://kafka.apache.org/documentation.html
Requires=zookeeper.service
After=zookeeper.service
[Service]
Type=simple
Environment="JAVA_HOME=/usr/lib/jvm/jre-11-openjdk"
ExecStart=/usr/local/kafka-server/bin/kafka-server-start.sh /usr/local/kafka-server/config/server.properties
ExecStop=/usr/local/kafka-server/bin/kafka-server-stop.sh
Restart=on-abnormal
[Install]
WantedBy=multi-user.target
Պահպանեք և փակեք ֆայլը, այնուհետև վերաբեռնեք systemd daemon-ը հետևյալ հրամանով.
systemctl daemon-reload
Հաջորդը, գործարկեք երկու ծառայությունները և միացրեք դրանք բեռնման պահին հետևյալ հրամանով.
systemctl enable --now zookeeper
systemctl enable --now kafka
systemctl start zookeeper
systemctl start kafka
Հաջորդը, ստուգեք երկու ծառայությունների կարգավիճակը՝ օգտագործելով հետևյալ հրամանը.
systemctl status zookeeper kafka
Դուք պետք է տեսնեք հետևյալ ելքը.
? zookeeper.service - Apache Zookeeper Server
Loaded: loaded (/etc/systemd/system/zookeeper.service; enabled; vendor preset: disabled)
Active: active (running) since Sat 2020-08-29 08:48:42 EDT; 30s ago
Main PID: 26722 (java)
Tasks: 31 (limit: 12523)
Memory: 68.8M
CGroup: /system.slice/zookeeper.service
??26722 java -Xmx512M -Xms512M -server -XX:+UseG1GC -XX:MaxGCPauseMillis=20 -XX:InitiatingHeapOccupancyPercent=35 -XX:+ExplicitGCIn>
Aug 29 08:48:44 centos8 zookeeper-server-start.sh[26722]: [2020-08-29 08:48:44,326] INFO maxSessionTimeout set to 60000 (org.apache.zookeeper.>
Aug 29 08:48:44 centos8 zookeeper-server-start.sh[26722]: [2020-08-29 08:48:44,327] INFO Created server with tickTime 3000 minSessionTimeout 6>
Aug 29 08:48:44 centos8 zookeeper-server-start.sh[26722]: [2020-08-29 08:48:44,344] INFO Using org.apache.zookeeper.server.NIOServerCnxnFactor>
Aug 29 08:48:44 centos8 zookeeper-server-start.sh[26722]: [2020-08-29 08:48:44,348] INFO Configuring NIO connection handler with 10s sessionle>
Aug 29 08:48:44 centos8 zookeeper-server-start.sh[26722]: [2020-08-29 08:48:44,355] INFO binding to port 0.0.0.0/0.0.0.0:2181 (org.apache.zook>
Aug 29 08:48:44 centos8 zookeeper-server-start.sh[26722]: [2020-08-29 08:48:44,391] INFO zookeeper.snapshotSizeFactor = 0.33 (org.apache.zooke>
Aug 29 08:48:44 centos8 zookeeper-server-start.sh[26722]: [2020-08-29 08:48:44,397] INFO Snapshotting: 0x0 to /tmp/zookeeper/version-2/snapsho>
Aug 29 08:48:44 centos8 zookeeper-server-start.sh[26722]: [2020-08-29 08:48:44,401] INFO Snapshotting: 0x0 to /tmp/zookeeper/version-2/snapsho>
Aug 29 08:48:44 centos8 zookeeper-server-start.sh[26722]: [2020-08-29 08:48:44,431] INFO Using checkIntervalMs=60000 maxPerMinute=10000 (org.a>
Aug 29 08:48:53 centos8 zookeeper-server-start.sh[26722]: [2020-08-29 08:48:53,030] INFO Creating new log file: log.1 (org.apache.zookeeper.se>
? kafka.service - Apache Kafka Server
Loaded: loaded (/etc/systemd/system/kafka.service; enabled; vendor preset: disabled)
Active: active (running) since Sat 2020-08-29 08:48:50 EDT; 22s ago
Docs: http://kafka.apache.org/documentation.html
Main PID: 27100 (java)
Tasks: 66 (limit: 12523)
Memory: 306.4M
CGroup: /system.slice/kafka.service
??27100 /usr/lib/jvm/jre-11-openjdk/bin/java -Xmx1G -Xms1G -server -XX:+UseG1GC -XX:MaxGCPauseMillis=20 -XX:InitiatingHeapOccupancy>
Aug 29 08:48:56 centos8 kafka-server-start.sh[27100]: [2020-08-29 08:48:56,733] INFO [Transaction Marker Channel Manager 0]: Starting (kafka.c>
Aug 29 08:48:56 centos8 kafka-server-start.sh[27100]: [2020-08-29 08:48:56,747] INFO [ExpirationReaper-0-AlterAcls]: Starting (kafka.server.De>
Aug 29 08:48:56 centos8 kafka-server-start.sh[27100]: [2020-08-29 08:48:56,846] INFO [/config/changes-event-process-thread]: Starting (kafka.c>
Aug 29 08:48:56 centos8 kafka-server-start.sh[27100]: [2020-08-29 08:48:56,877] INFO [SocketServer brokerId=0] Starting socket server acceptor>
Aug 29 08:48:57 centos8 kafka-server-start.sh[27100]: [2020-08-29 08:48:57,236] INFO [SocketServer brokerId=0] Started data-plane acceptor and>
Aug 29 08:48:57 centos8 kafka-server-start.sh[27100]: [2020-08-29 08:48:57,237] INFO [SocketServer brokerId=0] Started socket server acceptors>
Aug 29 08:48:57 centos8 kafka-server-start.sh[27100]: [2020-08-29 08:48:57,246] INFO Kafka version: 2.6.0 (org.apache.kafka.common.utils.AppIn>
Aug 29 08:48:57 centos8 kafka-server-start.sh[27100]: [2020-08-29 08:48:57,246] INFO Kafka commitId: 62abe01bee039651 (org.apache.kafka.common>
Տեղադրեք և կարգավորեք CMAK-ը
Հաջորդը, դուք պետք է տեղադրեք CMAK Apache Kafka կլաստերը կառավարելու համար: Դուք կարող եք ներբեռնել այն Git պահոցից հետևյալ հրամանով.
cd /root
git clone https://github.com/yahoo/CMAK.git
Ներբեռնվելուց հետո դուք պետք է խմբագրեք application.conf ֆայլը և սահմանեք կենդանաբանական այգու պահապանների հյուրընկալողները:
nano ~/CMAK/conf/application.conf
Փոխեք հետևյալ տողերը.
cmak.zkhosts="localhost:2181"
Պահպանեք և փակեք ֆայլը, երբ ավարտեք: Այնուհետև ստեղծեք zip ֆայլ՝ հավելվածը տեղակայելու համար:
cd ~/CMAK/
./sbt clean dist
Դուք պետք է տեսնեք հետևյալ արդյունքը.
model contains 640 documentable templates
[info] Main Scala API documentation successful.
[info] LESS compiling on 1 source(s)
[success] All package validations passed
[info] Your package is ready in /root/CMAK/target/universal/cmak-3.0.0.5.zip
[success] Total time: 150 s (02:30), completed 29-Aug-2020, 8:55:40 AM
Հաջորդը, unzip zip ֆայլը, որը ստեղծվել է նախորդ քայլում, հետևյալ հրամանով.
cd ~/CMAK/target/universal
unzip cmak-3.0.0.5.zip
Ավարտելուց հետո կարող եք անցնել հաջորդ քայլին:
Սկսեք CMAK ծառայությունները
Այժմ փոխեք գրացուցակը ~/CMAK/target/universal/cmak-3.0.0.5 և գործարկեք CMAK ծառայությունը՝ օգտագործելով հետևյալ հրամանը.
cd ~/CMAK/target/universal/cmak-3.0.0.5
bin/cmak
Այս պահին CMAK-ը մեկնարկում է և լսում 9000 նավահանգիստում:
Կարգավորեք SELinux-ը և Firewall-ը
Լռելյայնորեն, SELinux-ը միացված է CentOS 8-ում: Այսպիսով, դուք պետք է կարգավորեք SELinux-ը CMAK-ի համար: Դուք կարող եք կարգավորել այն հետևյալ հրամանով.
chcon -t httpd_sys_rw_content_t ~/CMAK/target/universal/cmak-3.0.0.5 -R
setsebool -P httpd_can_network_connect 1
Հաջորդը, դուք պետք է թույլատրեք 9000 նավահանգիստը firewall-ի միջոցով: Դուք կարող եք դա անել հետևյալ հրամանով.
firewall-cmd --permanent --zone public --add-port 9000/tcp
firewall-cmd --reload
Ավարտելուց հետո կարող եք անցնել հաջորդ քայլին:
Մուտք գործեք CMAK Web UI
Այժմ բացեք ձեր վեբ զննարկիչը և մուտք գործեք CMAK՝ օգտագործելով http://your-server-ip:9000 URL-ը: Դուք պետք է տեսնեք հետևյալ էջը.
Վերոնշյալ էկրանում դուք պետք է տեսնեք, որ հասանելի կլաստեր չկա: Այսպիսով, դուք պետք է նախ ստեղծեք նոր կլաստեր:
Սեղմեք Կլաստերի => Ավելացնել Կլաստերի վրա: Դուք պետք է տեսնեք հետևյալ էկրանը.
Տրամադրեք ձեր կլաստերի անունը, կենդանաբանական այգու պահապանի հյուրընկալողը, այլ անհրաժեշտ տեղեկություններ և սեղմեք Պահել կոճակը: Դուք պետք է տեսնեք հետևյալ էկրանը.
Ավարտելուց հետո կարող եք անցնել հաջորդ քայլին:
Ավելացրեք ձեր առաջին թեման Կաֆկայի մասին
Հաջորդը, դուք պետք է թեմա ստեղծեք Kafka-ի վրա՝ ֆունկցիոնալությունը ստուգելու համար: Դա անելու համար բացեք մեկ այլ տերմինալ, փոխեք դիրեկտորուն կաֆկա-սերվերի և ստեղծեք նոր թեմա՝ նշելով թեմայի անունը և կրկնօրինակման գործակիցը՝ գործարկելով հետևյալ հրամանը.
cd /usr/local/kafka-server
bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic MyNewTopic
Այժմ գնացեք CMAK վահանակ և սեղմեք Թեմա: Դուք պետք է տեսնեք թեման, որը դուք ստեղծել եք ավելի վաղ հետևյալ էկրանին.
Սեղմեք Թեման համարը: Դուք պետք է տեսնեք ձեր նոր ստեղծված թեման հետևյալ էկրանում.
Այժմ սեղմեք ձեր Թեմայի անվան վրա: Դուք պետք է տեսնեք ձեր թեմայի ամբողջ տեղեկատվությունը հետևյալ էկրանում.
Եզրակացություն
Շնորհավորում եմ: դուք հաջողությամբ տեղադրել եք Apache Kafka-ն CMAK-ով CentOS 8 սերվերի վրա: Այժմ կարող եք սկսել CMAK-ի ուսումնասիրությունը՝ ավելի շատ ֆունկցիոնալության համար: Ազատորեն հարցրեք ինձ, եթե ունեք հարցեր: