คำนำ
ก่อนเริ่มต้นควรสังเกตว่าไม่มีการเชื่อมต่อที่จำเป็นระหว่างการติดตั้งพายุและ Kafka คลัสเตอร์ ฉันเขียนสองคนนี้ด้วยกันเพราะพวกเขาทั้งคู่ได้รับการจัดการโดย Zookeeper และพึ่งพาสภาพแวดล้อม JDK เพื่อไม่ให้การกำหนดค่าซ้ำฉันเขียนสองสิ่งนี้ด้วยกัน หากคุณต้องการเพียงแค่เลือกการอ่านที่คุณเลือก ฉันจะไม่พูดด้านล่างมากนักลองมาดูการแนะนำรายละเอียดด้วยกัน
การพึ่งพาของทั้งสองนี้มีดังนี้:
หมายเหตุ: Storm1.0 และ Kafka2.0 ต้องการ JDK อย่างน้อย 1.7 และ Zookeeper3.0 หรือสูงกว่า
ดาวน์โหลดที่อยู่:
การติดตั้ง JDK
ทุกเครื่องจะต้องติดตั้งด้วย JDK! - -
หมายเหตุ: โดยทั่วไป CentOS มาพร้อมกับ OpenJDK แต่เราใช้ JDK ของ Oracle ดังนั้นคุณต้องเขียนถอนการติดตั้ง OpenJDK จากนั้นติดตั้ง JDK ที่ดาวน์โหลดใน Oracle หากคุณถอนการติดตั้งคุณสามารถข้ามขั้นตอนนี้ได้
ก่อนเข้าสู่ java -version
ตรวจสอบว่าติดตั้ง JDK หรือไม่ หากติดตั้ง แต่เวอร์ชันไม่เหมาะสมให้ถอนการติดตั้ง
เข้า
RPM -QA | Grep Java
ดูข้อมูล
จากนั้นป้อน:
RPM -E -NODEPS "คุณต้องการถอนการติดตั้งข้อมูล JDK"
ตัวอย่างเช่น: rpm -e --nodeps java-1.7.0-openjdk-1.7.0.99-2.6.5.1.el6.x86_64
หลังจากยืนยันว่ามันหายไปแล้วคลายซิป JDK ที่ดาวน์โหลดมา
tar -xvf JDK-8U144-linux-x64.tar.gz
ย้ายไปที่โฟลเดอร์ OPT/Java สร้างใหม่โดยไม่ต้องเปลี่ยนชื่อโฟลเดอร์เป็น JDK1.8
MV JDK1.8.0_144 /OPT /JAVAMV JDK1.8.0_144 JDK1.8
จากนั้นแก้ไขไฟล์โปรไฟล์และเพิ่มการกำหนดค่าต่อไปนี้
เข้า:
vim /etc /profile
เพิ่มไปที่:
ส่งออก java_home =/opt/java/jdk1.8Export jre_home =/opt/java/jdk1.8/jreexport classpath = .: $ java_home/lib/dt.jar: $ java_home/lib/tools.jar: $ jre_home/libexport
หลังจากประสบความสำเร็จแล้วให้ป้อน
แหล่งที่มา /etc /profilejava -version
ตรวจสอบว่าการกำหนดค่าสำเร็จหรือไม่
การติดตั้งสภาพแวดล้อมของ Zookeeper
1. การเตรียมเอกสาร
คลายซิปไฟล์กำหนดค่า ZooKeeper ที่ดาวน์โหลด
เข้าสู่ Linux:
tar -xvf zookeeper -3.4.10.tar.gz
จากนั้นย้ายไปที่ /opt /zookeeper สร้างใหม่โดยไม่ต้องเปลี่ยนชื่อโฟลเดอร์เป็น ZooKeeper3.4
เข้า
MV ZooKeeper-3.4.10 /opt /Zookeepermv Zookeeper-3.4.10 Zookeeper3.4
2. การกำหนดค่าสภาพแวดล้อม
ไฟล์แก้ไข /etc /โปรไฟล์
เข้า:
ส่งออก zk_home =/opt/zookeeper/zookeeper3.4 เส้นทางการส่งออก = .: $ {java_home}/bin: $ {zk_home}/bin: $ pathเข้า:
แหล่งที่มา /ฯลฯ /โปรไฟล์
ทำให้การกำหนดค่ามีประสิทธิภาพ
3. แก้ไขไฟล์การกำหนดค่า
3.3.1 สร้างไฟล์และไดเรกทอรี
สร้างไดเรกทอรีเหล่านี้บนเซิร์ฟเวอร์ในคลัสเตอร์
mkdir/opt/zookeeper/data mkdir/opt/zookeeper/datalog
และสร้างไฟล์ MyID ใน/opt/zookeeper/data directory
เข้า:
สัมผัส MyID
หลังจากการสร้างที่ประสบความสำเร็จให้เปลี่ยนไฟล์ MYID
เพื่อความสะดวกฉันเปลี่ยนเนื้อหาของไฟล์ MyID ของ Master, Slave1 และ Slave2 เป็น 1, 2, 3
3.3.2 สร้าง zoo.cfg ใหม่
เปลี่ยนเป็น/opt/zookeeper/zookeeper3.4/conf ไดเร็กทอรี
หากไม่มีไฟล์ zoo.cfg ให้คัดลอกไฟล์ zoo_sample.cfg และเปลี่ยนชื่อเป็น zoo.cfg
แก้ไขไฟล์ zoo.cfg ที่สร้างขึ้นใหม่นี้
datadir =/opt/zookeeper/dataDatalogdir =/opt/zookeeper/datalogserver.1 = มาสเตอร์: 2888: 3888Server.2 = Slave1: 2888: 3888Server.3 = Slave2: 2888: 3888
คำอธิบาย: พอร์ตไคลเอนต์ตามชื่อหมายถึงพอร์ตที่ไคลเอนต์เชื่อมต่อกับบริการ Zookeeper นี่คือพอร์ต TCP Datalogdir คือบันทึกการสั่งซื้อ (WAL) Datadir วางสแน็ปช็อตของโครงสร้างข้อมูลหน่วยความจำซึ่งอำนวยความสะดวกในการกู้คืนอย่างรวดเร็ว เพื่อเพิ่มประสิทธิภาพสูงสุดโดยทั่วไปขอแนะนำให้แบ่ง Datadir และ Datalogdir ลงบนดิสก์ที่แตกต่างกันเพื่อให้สามารถใช้คุณลักษณะการเขียนดิสก์สั่งซื้อได้อย่างสมบูรณ์ ต้องสร้าง DataDir และ Datalogdir ด้วยตัวเองและสามารถกำหนดไดเรกทอรีได้ด้วยตัวเองและพวกเขาสามารถสอดคล้องกันได้ 1 ในเซิร์ฟเวอร์ 1 นี้จำเป็นต้องสอดคล้องกับค่าในไฟล์ MYID ในไดเรกทอรี Datadir บนเครื่องต้นแบบ 2 ในเซิร์ฟเวอร์นี้ 2 จำเป็นต้องสอดคล้องกับค่าในไฟล์ MYID ในไดเรกทอรี Datadir บน Slave1 3 ในเซิร์ฟเวอร์ 3 นี้จำเป็นต้องสอดคล้องกับค่าในไฟล์ MYID ในไดเรกทอรี Datadir บน Slave2 แน่นอนคุณสามารถใช้ค่าตามที่คุณต้องการเช่นเดียวกับที่สอดคล้องกัน หมายเลขพอร์ตของ 2888 และ 3888 สามารถใช้งานได้อย่างไม่เป็นทางการเพราะไม่สำคัญว่าคุณจะใช้เครื่องเดียวกันกับเครื่องจักรที่แตกต่างกันหรือไม่
1. ช่วงเวลา: CS การสื่อสารหมายเลขการเต้นของหัวใจ
ช่วงเวลาระหว่างเซิร์ฟเวอร์ของ Zookeeper หรือระหว่างลูกค้าและเซิร์ฟเวอร์รักษาหัวใจนั่นคือแต่ละครั้งเวลาติ๊กจะส่งการเต้นของหัวใจ Ticktime อยู่ในมิลลิวินาที
tickTime=2000
2.InitLimit: LF จำกัด เวลาการสื่อสารเริ่มต้น
จำนวนสูงสุดของการเต้นของหัวใจ (จำนวน ticktimes) ที่สามารถทนได้ในระหว่างการเชื่อมต่อเริ่มต้นระหว่างเซิร์ฟเวอร์ผู้ติดตาม (F) และเซิร์ฟเวอร์ผู้นำ (L) ในคลัสเตอร์
initLimit=10
3.Synclimit: LF เวลาการสื่อสารแบบซิงโครนัส
จำนวนสูงสุดของการเต้นของหัวใจ (จำนวน ticktimes) ที่สามารถยอมรับได้ระหว่างคำขอและการตอบสนองระหว่างเซิร์ฟเวอร์ผู้ติดตามและเซิร์ฟเวอร์ผู้นำในคลัสเตอร์
syncLimit=5
ยังคงถ่ายโอน zookeeper ไปยังเครื่องอื่น ๆ อย่าลืมเปลี่ยน MYID Under/Opt/Zookeeper/Data ซึ่งไม่สามารถสอดคล้องกันได้
เข้า:
scp -r/opt/zookeeper root@slave1:/optscp -r/opt/zookeeper root@slave2:/opt
4. เริ่ม Zookeeper
เนื่องจาก Zookeeper เป็นระบบการเลือกตั้งความสัมพันธ์หลักของทาสจึงไม่ได้ระบุเช่น Hadoop สำหรับรายละเอียดคุณสามารถอ้างถึงเอกสารอย่างเป็นทางการ
หลังจากกำหนดค่า Zookeeper สำเร็จให้เริ่ม Zookeeper ในแต่ละเครื่อง
เปลี่ยนไปใช้ไดเรกทอรี Zookeeper
cd /opt/zookeeper/zookeeper3.4/bin
เข้า:
zkserver.sh เริ่มต้น
หลังจากเริ่มต้นสำเร็จ
ดูสถานะการป้อนข้อมูล:
สถานะ zkserver.sh
คุณสามารถดูผู้นำและผู้ติดตามของ Zookeeper ในแต่ละเครื่อง
การติดตั้งสภาพแวดล้อมของพายุ
1. การเตรียมเอกสาร
บีบอัดไฟล์การกำหนดค่าพายุที่ดาวน์โหลด
เข้าสู่ Linux:
tar -xvf apache-storm-1.1.1.tar.gz
จากนั้นย้ายไปที่ /opt /storm สร้างถ้าไม่มีอยู่แล้วเปลี่ยนชื่อโฟลเดอร์เป็น storm1.1
เข้า
MV Apache-Storm-1.1.1 /Opt /Storm MV Apache-Storm-1.1.1 Storm1.1
ไฟล์แก้ไข /etc /โปรไฟล์
เพิ่มไปที่:
ส่งออก storm_home =/opt/storm/storm1.1.1export = .: $ {java_home}/bin: $ {zk_home}/bin: $ {storm_home}/bin: $ path ป้อนเวอร์ชัน Storm เพื่อดูข้อมูลเวอร์ชัน
3. แก้ไขไฟล์การกำหนดค่า
แก้ไข Storm.yarm of Storm/Conf
ทำการแก้ไขต่อไปนี้:
เข้า:
vim storm.yarm
Slave.zookeeper.servers: - "Master" - "Slave1" - "Slave2" Storm.local.dir: "/root/storm"nimbus.seeds: [" Master "] Supervisor.slots.ports: - 6700 - 6701 - 6702 - 6703
ภาพประกอบ:
1. Storm.zookeeper.Servers เป็นที่อยู่บริการของ Zookeeper ที่ระบุ
เนื่องจากข้อมูลการจัดเก็บของพายุอยู่ใน Zookeeper จึงต้องกำหนดค่าที่อยู่บริการของ Zookeeper หาก Zookeeper เป็นเครื่องสแตนด์อโลนคุณจะต้องระบุเพียงเครื่องเดียว!
2. Storm.local.dir แสดงไดเรกทอรีการจัดเก็บ
Nimbus และหัวหน้างาน Daemons จำเป็นต้องจัดเก็บไดเรกทอรีบนดิสก์ท้องถิ่นเพื่อเก็บรัฐจำนวนเล็กน้อย (เช่นขวด, Confs, ฯลฯ ) สามารถสร้างขึ้นในแต่ละเครื่องและสิทธิ์ที่ได้รับ
3. Nimbus.Seeds แสดงถึงโฮสต์ผู้สมัคร
คนงานต้องรู้ว่าเครื่องใดเป็นผู้สมัครโฮสต์ (กลุ่ม Zookeeper คือการเลือกตั้ง) เพื่อให้สามารถดาวน์โหลดขวดโทโพโลยีและ Confs ได้
4. supervisor.slots.ports แสดงถึงพอร์ตคนงาน
สำหรับเครื่องแต่ละคนเราสามารถใช้สิ่งนี้เพื่อกำหนดค่าจำนวนคนงานที่ทำงานบนเครื่องนี้ คนงานแต่ละคนใช้พอร์ตแยกต่างหากเพื่อรับข้อความซึ่งจะกำหนดว่าพอร์ตใดที่เปิดใช้งาน หากคุณกำหนด 5 พอร์ตที่นี่หมายความว่าคนงานสูงสุด 5 คนสามารถทำงานบนโหนดหัวหน้างานนี้ได้ หากมีการกำหนดพอร์ต 3 พอร์ตนั่นหมายความว่าสามารถทำงานได้มากถึง 3 คน โดยค่าเริ่มต้น (เช่นกำหนดค่าใน defaults.yaml) จะมีคนงานสี่คนทำงานบนพอร์ต 6700, 6701, 6702 และ 6703
หัวหน้างานไม่ได้เริ่มต้นคนงานทั้งสี่นี้ทันทีเมื่อเริ่มต้น แต่จะเริ่มต้นเมื่อยอมรับงานที่ได้รับมอบหมายเท่านั้น จำนวนคนงานที่จะเริ่มต้นจะต้องพิจารณาตามจำนวนพนักงานที่เราต้องการในหัวหน้างานนี้ในทอพอโลยี หากโทโพโลยีที่ระบุจะถูกดำเนินการโดยคนงานเพียงคนเดียวเท่านั้นหัวหน้างานจะเริ่มต้นคนงานหนึ่งคนและจะไม่เริ่มต้นทั้งหมด
หมายเหตุ: ไม่มีช่องว่างด้านหน้าของการกำหนดค่าเหล่านี้! - - มิฉะนั้นจะมีการรายงานข้อผิดพลาด ชื่อโฮสต์ (การแมป) ใช้ที่นี่และสามารถใช้ IP ได้ สถานการณ์จริงขึ้นอยู่กับของคุณเอง
คุณสามารถใช้คำสั่ง SCP หรือซอฟต์แวร์ FTP เพื่อคัดลอกพายุไปยังเครื่องอื่น ๆ
หลังจากการกำหนดค่าที่ประสบความสำเร็จคุณสามารถเริ่มต้นพายุได้ แต่ตรวจสอบให้แน่ใจว่า JDK และ Zookeeper ได้รับการติดตั้งอย่างถูกต้องและผู้ดูแลสัตว์ได้เริ่มต้นเรียบร้อยแล้ว
4. เริ่มพายุ
เปลี่ยนไปใช้ไดเร็กทอรี Storm/Bin
เริ่มอินพุตบนโหนดหลัก:
Storm Nimbus>/dev/null 2> & 1 &
เข้าถึงการป้อนข้อมูลเว็บอินเตอร์เฟส (มาสเตอร์):
พายุ UI
ป้อนจากโหนด (Slave1, Slave2):
หัวหน้างานพายุ>/dev/null 2> & 1 &
ป้อนในส่วนต่อประสานเบราว์เซอร์: พอร์ต 8080
อินเทอร์เฟซเปิดสำเร็จโดยระบุว่าการกำหนดค่าสภาพแวดล้อมสำเร็จ:
การติดตั้งสภาพแวดล้อมของ Kafka
Kafka เป็นระบบข้อความกระจายการสตรีมมิ่งความเร็วสูงที่ใช้ในการประมวลผลข้อมูลการสตรีมที่ใช้งานอยู่เช่นการเข้าชมหน้าเว็บ PM, บันทึก ฯลฯ ซึ่งไม่เพียง แต่สามารถประมวลผลข้อมูลข้อมูลขนาดใหญ่แบบเรียลไทม์ แต่ยังออฟไลน์
1. การเตรียมเอกสาร
บีบอัดไฟล์กำหนดค่า Kafka ที่ดาวน์โหลดมา
เข้าสู่ Linux:
tar -xvf kafka_2.12-1.0.0.tgz
จากนั้นย้ายไปที่ /opt /kafka สร้างถ้าไม่มีอยู่แล้วเปลี่ยนชื่อโฟลเดอร์เป็น kafka2.12
เข้า
MV KAFKA_2.12-1.0.0 /OPT /KAFKA MV KAFKA_2.12-1.0.0 KAFKA2.12
2. การกำหนดค่าสภาพแวดล้อม
ไฟล์แก้ไข /etc /โปรไฟล์
เข้า:
ส่งออก kafka_home =/opt/kafka/kafka2.12 เส้นทางการส่งออก =.: $ {java_home}/bin: $ {kafka_home}/bin: $ {zk_home}/bin: $ path: $ pathเข้า:
แหล่งที่มา /ฯลฯ /โปรไฟล์
ทำให้การกำหนดค่ามีประสิทธิภาพ
3. แก้ไขไฟล์การกำหนดค่า
หมายเหตุ: ที่จริงแล้วถ้าเป็นเครื่องสแตนด์อโลนไฟล์การกำหนดค่า KAFKA สามารถเริ่มต้นได้โดยตรงในไดเรกทอรี BIN โดยไม่ต้องแก้ไข แต่เราเป็นคลัสเตอร์ที่นี่ดังนั้นเพียงแค่เปลี่ยนมันเล็กน้อย
เปลี่ยนไปใช้ไดเรกทอรี Kafka/Config
แก้ไขไฟล์ Server.properties
สิ่งที่ต้องเปลี่ยนแปลงคือที่อยู่ของ Zookeeper:
ค้นหาการกำหนดค่า Zookeeper ระบุที่อยู่ของคลัสเตอร์ Zookeeper และแก้ไขดังนี้
zookeeper.connect = มาสเตอร์: 2181, slave1: 2181, slave2: 2181zookeeper.connection.timeout.ms = 6000
ตัวเลือกอื่น ๆ สำหรับการเปลี่ยนแปลงคือ
1, num.partitions แสดงถึงพาร์ติชันที่ระบุค่าเริ่มต้นคือ 1
2. log.dirs เส้นทางบันทึก kafka เพียงเปลี่ยนสิ่งนี้ตามความต้องการส่วนบุคคล
-
หมายเหตุ: มีการกำหนดค่าอื่น ๆ คุณสามารถดูเอกสารอย่างเป็นทางการได้ หากไม่มีข้อกำหนดพิเศษเพียงใช้ค่าเริ่มต้น
หลังการกำหนดค่าอย่าลืมใช้คำสั่ง SCP เพื่อส่งไปยังกลุ่มอื่น!
4. เริ่ม Kafka
คลัสเตอร์ทุกกลุ่มจะต้องดำเนินการ!
เปลี่ยนไปใช้ไดเรกทอรี Kafka/bin
เข้า:
kafka-server-tart.sh
จากนั้นป้อนชื่อ JPS เพื่อดูว่าเริ่มสำเร็จหรือไม่:
หลังจากเริ่มต้นได้สำเร็จคุณสามารถทำการทดสอบได้อย่างง่าย
สร้างหัวข้อก่อน
เข้า:
Kafka-topics.sh-Zookeeper Master: 2181-Create-Topic T_Test-Partitions 5-การจำลองแบบปัจจัย 2 2
คำอธิบาย: นี่คือหัวข้อชื่อ T_Test และมีการระบุพาร์ติชัน 5 พาร์ติชันแต่ละพาร์ติชันแต่ละพาร์ติชันมี 2 แบบจำลอง หากไม่ได้ระบุพาร์ติชันพาร์ติชันเริ่มต้นจะถูกกำหนดค่าในไฟล์กำหนดค่า
จากนั้นข้อมูลการผลิต
เข้า:
kafka-console-producer.sh-นายหน้า-บัญชีรายชื่อมาสเตอร์: 9092-TOPIC T_TEST
คุณสามารถใช้ Ctrl+D เพื่อออก
จากนั้นเราเปิดหน้าต่าง Xshell อื่น
บริโภค
เข้า:
kafka-console-consumer.sh-Zookeeper Master: 2181-TOPIC T_TEST-จาก Beginning
คุณสามารถใช้ Ctrl+C เพื่อออก
คุณจะเห็นว่าข้อมูลถูกบริโภคตามปกติ
5. คำสั่งที่ใช้กันทั่วไปของ Kafka
1. เริ่มและปิด Kafka
bin/kafka-server-start.sh config/server.properties >>/dev/null 2> & 1 & bin/kafka-server-stop.sh
2. ตรวจสอบคิวข้อความและคิวเฉพาะในคลัสเตอร์ Kafka
ดูหัวข้อทั้งหมดในคลัสเตอร์
Kafka-topics.sh-Zookeeper Master: 2181, Slave1: 2181, Slave2: 2181-รายการ
ดูข้อมูลหัวข้อ
Kafka-topics.sh-Zookeeper Master: 2181-อธิบาย-Topic t_test
3. สร้างหัวข้อ
Kafka-topics.sh-Zookeeper Master: 2181-Create-Topic T_Test-Partitions 5-การจำลองแบบปัจจัย 2 2
4. ข้อมูลการผลิตและข้อมูลการบริโภค
kafka-console-producer.sh-นายหน้า-บัญชีรายชื่อมาสเตอร์: 9092-TOPIC T_TEST
ออกจาก Ctrl+D
kafka-console-consumer.sh-Zookeeper Master: 2181-TOPIC T_TEST-จาก Beginning
ทางออก Ctrl+C
5. คำสั่งลบของ Kafka
Kafka-topics.sh-Delete-Zookeeper Master: 2181-TOPIC T_TEST
6. เพิ่มพาร์ติชัน
kafka-topics.sh-alter-topict_test-zookeeper master: 2181-พาร์ติชัน 10
อื่น
อ้างอิงถึงเอกสารอย่างเป็นทางการสำหรับการก่อสร้างสิ่งแวดล้อมพายุ: http://storm.apache.org/releases/1.1.1/setting-up-a-storm-cluster.html
Kafka Environment Construction Reference เอกสารทางการ: http://kafka.apache.org/quickstart
สรุป
ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้ ฉันหวังว่าเนื้อหาของบทความนี้จะมีค่าอ้างอิงบางอย่างสำหรับการศึกษาหรือที่ทำงานของทุกคน หากคุณมีคำถามใด ๆ คุณสามารถฝากข้อความไว้เพื่อสื่อสาร ขอบคุณสำหรับการสนับสนุน Wulin.com