Ինչպես տեղադրել Apache Kafka-ն Ubuntu 22.04-ում


Այս ձեռնարկը գոյություն ունի ՕՀ-ի այս տարբերակների համար

  • Ubuntu 22.04 (Jammy Jellyfish)
  • Ubuntu 18.04 (Bionic Beaver)

Այս էջում

  1. Նախադրյալներ
  2. Java OpenJDK-ի տեղադրում
  3. Apache Kafka-ի տեղադրում
  4. Apache Kafka-ի տեղադրումը որպես ծառայություն
  5. Հիմնական Apache Kafka գործողություն
  6. Ներմուծեք/արտահանեք ձեր տվյալները որպես հոսք՝ օգտագործելով Kafka Connect Plugin-ը
  7. Եզրակացություն

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: