Ինչպես տեղադրել Apache Kafka-ն Ubuntu 22.04-ում
Այս ձեռնարկը գոյություն ունի ՕՀ-ի այս տարբերակների համար
- Ubuntu 22.04 (Jammy Jellyfish)
- Ubuntu 18.04 (Bionic Beaver)
Այս էջում
- Նախադրյալներ
- Java OpenJDK-ի տեղադրում
- Apache Kafka-ի տեղադրում
- Apache Kafka-ի տեղադրումը որպես ծառայություն
- Հիմնական Apache Kafka գործողություն
- Ներմուծեք/արտահանեք ձեր տվյալները որպես հոսք՝ օգտագործելով Kafka Connect Plugin-ը
- Եզրակացություն
Apache Kafka-ն տվյալների բաշխված պահեստ է իրական ժամանակում հոսքային տվյալների մշակման համար: այն մշակվել է Apache Software Foundation-ի կողմից և գրված է Java և Scala լեզուներով: Apache Kafka-ն օգտագործվում է իրական ժամանակում հոսքային տվյալների խողովակաշարերի և հավելվածների կառուցման համար, որոնք հարմարվում են տվյալների հոսքին, հատկապես ձեռնարկությունների մակարդակի և առաքելության համար կարևոր հավելվածների համար: Դա տվյալների հոսքի ամենատարածված հարթակներից մեկն է, որն օգտագործվում է հազարավոր ընկերությունների կողմից բարձր արդյունավետությամբ տվյալների խողովակաշարերի, հոսքային վերլուծության և տվյալների ինտեգրման համար:
Apache Kafka-ն համատեղում է հաղորդագրությունների փոխանակումը, պահեստավորումը և հոսքի մշակումը մեկ վայրում: Թույլ տվեք օգտվողներին ստեղծել բարձր արդյունավետություն և հզոր տվյալների հոսք իրական ժամանակում տվյալների հավաքման, մշակման և հոսքի համար: Այն օգտագործվում է ժամանակակից բաշխված հավելվածներում, որոնք կարող են մասշտաբավորվել՝ կառավարելու միլիարդավոր հոսքային իրադարձություններ:
Այս ձեռնարկում դուք կտեղադրեք Apache Kafka-ն ubuntu 22.04 սերվերի վրա: Դուք կսովորեք, թե ինչպես տեղադրել Apache Kafka-ն ձեռքով երկուական փաթեթներից, որը ներառում է Apache-ի հիմնական կոնֆիգուրացիան՝ որպես ծառայություն գործարկելու համար և հիմնական գործողությունը՝ օգտագործելով Apache Kafka-ն:
Նախադրյալներ
Այս ձեռնարկը լրացնելու համար ձեզ հարկավոր են հետևյալ պահանջները.
- Ubuntu 22.04 սերվեր՝ առնվազն 2 ԳԲ կամ 4 ԳԲ հիշողությամբ:
- Ոչ արմատային օգտատեր, որն ունի արմատային/ադմինիստրատորի արտոնություններ:
Java OpenJDK-ի տեղադրում
Apache Kafka-ն հոսքերի մշակման և հաղորդագրությունների բրոքեր է, որը գրված է Scala-ում և Java-ում: Kafka-ն տեղադրելու համար դուք կտեղադրեք Java OpenJDK-ն ձեր Ubuntu համակարգում Այս գրելու պահին Kafka v3.2-ի վերջին տարբերակը պահանջում էր առնվազն Java OpenJDK v11, որը լռելյայն հասանելի է Ubuntu-ի պահոցում:
Սկսելու համար գործարկեք ստորև նշված apt հրամանը՝ Ubuntu-ի պահոցը թարմացնելու և փաթեթի ինդեքսը թարմացնելու համար:
sudo apt update
Տեղադրեք Java OpenJDK 11-ը, օգտագործելով ստորև նշված apt հրամանը: Տեղադրումը հաստատելու համար մուտքագրեք Y և սեղմեք ENTER, և տեղադրումը կսկսվի:
sudo apt install default-jdk
Java OpenJDK-ն այժմ տեղադրված է ձեր Ubuntu համակարգում: Օգտագործեք հետևյալ java հրամանը՝ java տարբերակը ստուգելու և հաստատելու համար: Դուք կտեսնեք տեղադրված java OpenJDK v11-ը:
java version
Apache Kafka-ի տեղադրում
Java OpenJDK-ն տեղադրելուց հետո դուք ձեռքով կսկսեք Apache Kafka-ի տեղադրումը, օգտագործելով երկուական փաթեթը: Այս գրելու պահին Apache Kafka-ի վերջին տարբերակը v3.2 է: Այն տեղադրելու համար դուք կստեղծեք համակարգի նոր օգտվող և ներբեռնեք Kafka երկուական փաթեթը:
Գործարկեք հետևյալ հրամանը՝ «kafka» անունով համակարգի նոր օգտվող ստեղծելու համար: Այս օգտատերը կունենա լռելյայն տնային գրացուցակը "/opt/kafka" և կկասեցնի կեղևի հասանելիությունը:
sudo useradd -r -d /opt/kafka -s /usr/sbin/nologin kafka
Ներբեռնեք Apache Kafka երկուական փաթեթը՝ օգտագործելով ստորև նշված curl հրամանը: Դուք պետք է ստանաք Apache Kafka փաթեթը "kafka_2.13-3.2.0.tgz":
sudo curl -fsSLo kafka.tgz https://dlcdn.apache.org/kafka/3.2.0/kafka_2.13-3.2.0.tgz
Ներբեռնումն ավարտվելուց հետո tar հրամանի միջոցով հանեք "kafka_2.13-3.2.0.tgz" ֆայլը: Այնուհետև տեղափոխեք արդյունահանված գրացուցակը "/opt/kafka":
tar -xzf kafka.tgz
sudo mv kafka_2.13-3.2.0 /opt/kafka
Այժմ փոխեք Kafka-ի տեղադրման գրացուցակի «/opt/kafka» սեփականությունը «kafka» օգտատիրոջը:
sudo chown -R kafka:kafka /opt/kafka
Այնուհետև ստեղծեք գործարկել հետևյալ հրամանը՝ Apache kafka-ի մատյան ֆայլերը պահելու համար նոր գրացուցակ ստեղծելու համար «logs»: Այնուհետև խմբագրեք Kafka-ի կազմաձևման ֆայլը «/opt/kafka/config/server.properties»՝ օգտագործելով նանո խմբագրիչը:
sudo -u kafka mkdir -p /opt/kafka/logs
sudo -u kafka nano /opt/kafka/config/server.properties
Փոխեք Apache Kafka տեղեկամատյանների լռելյայն տեղադրությունը «/opt/kafka/logs» գրացուցակում:
# logs configuration for Apache Kafka
log.dirs=/opt/kafka/logs
Պահպանեք և փակեք ֆայլը, երբ ավարտեք:
Apache Kafka-ի տեղադրումը որպես ծառայություն
Այս պահին դուք ունեք հիմնական կոնֆիգուրացիան Apache Kafka-ի համար: Հիմա ինչպե՞ս գործարկել Apache Kafka-ն ձեր համակարգում: Այստեղ առաջարկվող միջոցը Apache Kafka-ն որպես համակարգված ծառայություն գործարկելն է: Սա թույլ է տալիս սկսել, դադարեցնել և վերագործարկել Apache Kafka-ն՝ օգտագործելով մեկ հրամանի տող «systemctl»:
Apache Kafka ծառայությունը կարգավորելու համար նախ պետք է կարգավորեք Zookeeper ծառայությունը: Apache Zookeeper-ն այստեղ օգտագործվում է ծառայությունները կենտրոնացնելու և վերահսկիչի ընտրությունը պահպանելու, թեմաների կոնֆիգուրացիաները, մուտքի վերահսկման ցուցակները (ACL) և անդամակցությունը (Կաֆկա կլաստերի համար):
Zookeeper-ը լռելյայն ներառված է Apache Kafka-ում: Դուք կկարգավորեք Zookeeper-ի սպասարկման ֆայլը, այնուհետև կստեղծեք մեկ այլ սպասարկման ֆայլ Kafka-ի համար:
Գործարկեք հետևյալ հրամանը՝ Zookeeper-ի համար systemd ծառայության նոր ֆայլ "/etc/systemd/system/zookeeper.service" ստեղծելու համար:
sudo nano /etc/systemd/system/zookeeper.service
Ֆայլին ավելացրեք հետևյալ կոնֆիգուրացիան.
[Unit]
Requires=network.target remote-fs.target
After=network.target remote-fs.target
[Service]
Type=simple
User=kafka
ExecStart=/opt/kafka/bin/zookeeper-server-start.sh /opt/kafka/config/zookeeper.properties
ExecStop=/opt/kafka/bin/zookeeper-server-stop.sh
Restart=on-abnormal
[Install]
WantedBy=multi-user.target
Երբ ավարտեք, պահեք և փակեք ֆայլը:
Հաջորդը, ստեղծեք նոր սպասարկման ֆայլ Apache Kafka-ի համար "/etc/systemd/system/kafka.service"՝ օգտագործելով ստորև նշված հրամանը:
sudo nano /etc/systemd/system/kafka.service
Ֆայլին ավելացրեք հետևյալ կոնֆիգուրացիան. Այս Kafka ծառայությունը կգործարկվի միայն այն դեպքում, եթե Zookeeper ծառայությունը գործարկվի:
[Unit]
Requires=zookeeper.service
After=zookeeper.service
[Service]
Type=simple
User=kafka
ExecStart=/bin/sh -c '/opt/kafka/bin/kafka-server-start.sh /opt/kafka/config/server.properties > /opt/kafka/logs/start-kafka.log 2>&1'
ExecStop=/opt/kafka/bin/kafka-server-stop.sh
Restart=on-abnormal
[Install]
WantedBy=multi-user.target
Պահպանեք և փակեք ֆայլը, երբ ավարտեք:
Այժմ վերաբեռնեք systemd կառավարիչը՝ օգտագործելով ստորև նշված հրամանը: Այս հրամանը կկիրառի նոր systemd ծառայությունները, որոնք դուք հենց նոր եք ստեղծել:
sudo systemctl daemon-reload
Այժմ սկսեք և միացրեք Zookeeper ծառայությունը՝ օգտագործելով ստորև նշված հրամանը:
sudo systemctl enable zookeeper
sudo systemctl start zookeeper
Այնուհետև սկսեք և միացրեք Apache Kafka ծառայությունը՝ օգտագործելով հետևյալ հրամանը.
sudo systemctl enable kafka
sudo systemctl start kafka
Ի վերջո, ստուգեք և հաստատեք Zookeeper և Apache Kafka ծառայությունները՝ օգտագործելով ստորև նշված հրամանը:
sudo systemctl status zookeeper
sudo systemctl status kafka
Հետևյալ ելքում դուք կարող եք տեսնել, որ Zookeeper ծառայությունը միացված է և ավտոմատ կերպով կաշխատի համակարգի գործարկման ժամանակ: Իսկ Zookeeper ծառայության ներկայիս կարգավիճակըգործում է:
Apache Kafka ծառայությունը, այն նույնպես միացված է և ավտոմատ կերպով կաշխատի համակարգի գործարկման ժամանակ: Եվ հիմա «վազում է»:
Հիմնական Apache Kafka գործողություն
Դուք ավարտել եք Apache Kafka-ի հիմնական տեղադրումը, և այն աշխատում է: Այժմ դուք կսովորեք Apache Kafka-ի հիմնական գործողությունը հրամանի տողից:
Apache Kafka հրամանի տողի բոլոր գործիքները հասանելի են «/opt/kafka/bin» գրացուցակում:
Կաֆկայի նոր թեմա ստեղծելու համար օգտագործեք «kafka-topics.sh» սցենարը, ինչպես ստորև: Այս օրինակում մենք ստեղծում ենք նոր Կաֆկա թեմա «TestTopic» անունով՝ 1 կրկնօրինակմամբ և բաժանմամբ։ Եվ դուք պետք է ստանաք այնպիսի արդյունք, ինչպիսին է «Ստեղծված թեմա TestTopic»:
sudo -u kafka /opt/kafka/bin/kafka-topics.sh \
--create --bootstrap-server localhost:9092 --replication-factor 1 --partitions 1 --topic TestTopic
Ձեր Kafka սերվերում առկա թեմաների ցուցակները ստուգելու համար գործարկեք հետևյալ հրամանը. Եվ դուք պետք է տեսնեք, որ ձեր նոր ստեղծած «TestTopic»-ը հասանելի է Kafka սերվերում:
sudo -u kafka /opt/kafka/bin/kafka-topics.sh --list --bootstrap-server localhost:9092
Դուք ստեղծել եք Kafka թեման, այժմ կարող եք փորձել գրել և հեռարձակել տվյալներ Apache Kafka-ի վրա՝ օգտագործելով ստանդարտ հրամանի տող «kafka-console-producer.sh» և «kafka-console»: -consumer.sh»:
«kafka-console-producer.sh» սկրիպտը հրամանի տողի օգտակար ծրագիր է, որը կարող է օգտագործվել Կաֆկայի թեմայի վերաբերյալ տվյալներ գրելու համար: Իսկ «kafka-console-consumer.sh» սկրիպտն օգտագործվում է տերմինալից տվյալների հոսքի համար։
Կեղևի ընթացիկ նիստում գործարկեք հետևյալ հրամանը՝ Kafka Console Producer-ը գործարկելու համար: Բացի այդ, դրա համար պետք է նշեք Կաֆկայի թեման, այս օրինակում մենք կօգտագործենք «TestTopic»:
sudo -u kafka /opt/kafka/bin/kafka-console-producer.sh --broker-list localhost:9092 --topic TestTopic
Հաջորդը, բացեք մեկ այլ կեղև կամ տերմինալ և միացեք Apache Kafka սերվերին: Այնուհետև գործարկեք հետևյալ հրամանը՝ Apache Kafka Consumer-ը գործարկելու համար: Այստեղ անպայման նշեք Կաֆկայի թեման։
sudo -u kafka /opt/kafka/bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic TestTopic --from-beginning
Այժմ դուք կարող եք մուտքագրել ցանկացած հաղորդագրություն Kafka Console Producer-ից, և հաղորդագրություններն ավտոմատ կերպով կհայտնվեն և կհեռարձակվեն Kafka Console Console-ում:
Այժմ դուք կարող եք պարզապես սեղմել «Ctrl+c»՝ Kafka Console-ի արտադրողից և սպառողից դուրս գալու համար:
Կաֆկայի մեկ այլ հիմնական գործողություն, որը դուք պետք է իմանաք այստեղ, այն է, թե ինչպես ջնջել Կաֆկայի թեման: Եվ դա կարելի է անել նաև «kafka-topics.sh» հրամանի տողի միջոցով:
Եթե ցանկանում եք ջնջել «TestTopic» թեման, կարող եք օգտագործել հետևյալ հրամանը. Այժմ «TestTopic»-ը կհեռացվի ձեր Kafka սերվերից:
sudo -u kafka /opt/kafka/bin/kafka-topics.sh --bootstrap-server localhost:9092 --delete --topic TestTopic
Ներմուծեք/արտահանեք ձեր տվյալները որպես հոսք՝ օգտագործելով Kafka Connect Plugin-ը
Դուք պետք է սովորեք Apache Kafka-ի հիմնական աշխատանքը՝ ստեղծելով թեմաներ և հոսքային հաղորդագրություններ՝ օգտագործելով Kafka Console Producer-ը և Consumer-ը: Այժմ դուք կսովորեք, թե ինչպես հեռարձակել հաղորդագրությունները ֆայլից «Kafka Connect» հավելվածի միջոցով: Այս փլագինը հասանելի է Kafka-ի լռելյայն տեղադրման ժամանակ, Kafka-ի լռելյայն հավելումները հասանելի են «/opt/kafka/libs» գրացուցակում:
Խմբագրեք «/opt/kafka/config/connect-standalone.properties» կազմաձևման ֆայլը՝ օգտագործելով նանո խմբագրիչը:
sudo -u kafka nano /opt/kafka/config/connect-standalone.properties
Ֆայլին ավելացրեք հետևյալ կոնֆիգուրացիան. Սա հնարավորություն կտա Kafka Connect հավելվածը, որը հասանելի է "/opt/kafka/libs" գրացուցակում:
plugin.path=libs/connect-file-3.2.0.jar
Երբ ավարտեք, պահեք և փակեք ֆայլը:
Հաջորդը, ստեղծեք նոր օրինակ ֆայլ, որը կներմուծեք և կհոսեք Կաֆկա: Apache Kafka-ի կազմաձևման ֆայլերի հիման վրա դուք պետք է ստեղծեք «test.txt» ֆայլը «/opt/kafka» Կաֆկա տեղադրման գրացուցակի տակ:
Գործարկեք ստորև նշված հրամանը՝ նոր ֆայլ ստեղծելու համար «/opt/kafka/test.txt»:
sudo -u kafka echo -e "Test message from file\nTest using Kafka connect from file" > /opt/kafka/test.txt
«/opt/kafka» աշխատանքային գրացուցակից գործարկեք հետևյալ հրամանը՝ kafka միակցիչը ինքնուրույն ռեժիմով գործարկելու համար:
Բացի այդ, մենք ավելացնում ենք լրացուցիչ երեք կազմաձևման ֆայլեր որպես պարամետրեր այստեղ: Այս բոլոր ֆայլերը պարունակում են հիմնական կոնֆիգուրացիան, որի վրա տվյալները կպահվեն, թե որ թեմայով և որ ֆայլը կմշակվի: Այս կոնֆիգուրացիաների լռելյայն արժեքն այն է, որ տվյալները հասանելի կլինեն «միացում-թեստ» թեմայի վերաբերյալ ձեր նոր ստեղծված «test.txt» սկզբնաղբյուր ֆայլով:
Դուք կտեսնեք Կաֆկայից ստացված բազմաթիվ հաղորդագրություններ:
cd /opt/kafka
sudo -u kafka /opt/kafka/bin/connect-standalone.sh config/connect-standalone.properties config/connect-file-source.properties config/connect-file-sink.properties
Այժմ բացեք մեկ այլ տերմինալի կեղև/սեսիա և գործարկեք հետևյալ հրամանը՝ Kafka Console Console-ը գործարկելու համար: Այս օրինակում տվյալների հոսքերը հասանելի կլինեն «միացում-փորձարկում» թեմայով:
Այժմ դուք կտեսնեք, որ «test.txt» ֆայլի տվյալները հեռարձակվում են ձեր ընթացիկ Console Console Shell-ում:
sudo -u kafka /opt/kafka/bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic connect-test --from-beginning
Եթե փորձեք մեկ այլ հաղորդագրություն ավելացնել «test.txt» ֆայլին, կտեսնեք, որ հաղորդագրությունը ավտոմատ կերպով կհեռարձակվի Kafka Console Console-ում:
sudo -u kafka echo "Another test message from file test.txt" >> test.txt
Եզրակացություն
Այս ձեռնարկում դուք սովորել եք, թե ինչպես տեղադրել Apache Kafka-ն Ubuntu 22.04 համակարգում հոսքերի մշակման և հաղորդագրությունների բրոքերի համար: Դուք նաև սովորել եք Kafka-ի հիմնական կոնֆիգուրացիան Ubuntu համակարգում: Բացի այդ, դուք նաև սովորել եք հիմնական գործողությունը՝ օգտագործելով Apache Kafka Producer-ը և Consumer-ը: Եվ վերջում դուք նաև սովորել եք, թե ինչպես փոխանցել հաղորդագրությունները կամ իրադարձությունները ֆայլից դեպի Apache Kafka: