มีระบบคอมพิวเตอร์แบบกระจาย Apache Storm 2.0 พร้อมใช้งาน

เห็นแสง การเปิดตัวระบบประมวลผลเหตุการณ์แบบกระจายอย่างมีนัยสำคัญ อาปาเช่ สตอร์ม 2.0โดดเด่นด้วยการเปลี่ยนไปใช้สถาปัตยกรรมใหม่ที่นำมาใช้ใน Java แทนที่จะเป็นภาษา Clojure ที่ใช้ก่อนหน้านี้

โครงการช่วยให้คุณสามารถจัดระเบียบการประมวลผลเหตุการณ์ต่าง ๆ ที่รับประกันได้แบบเรียลไทม์ ตัวอย่างเช่น Storm สามารถใช้เพื่อวิเคราะห์สตรีมข้อมูลแบบเรียลไทม์ รันงานการเรียนรู้ของเครื่อง จัดระเบียบการประมวลผลอย่างต่อเนื่อง ใช้ RPC, ETL เป็นต้น ระบบรองรับการทำคลัสเตอร์ การสร้างการกำหนดค่าที่ทนทานต่อข้อผิดพลาด โหมดการประมวลผลข้อมูลที่รับประกัน และมีประสิทธิภาพสูง เพียงพอที่จะประมวลผลคำขอมากกว่าหนึ่งล้านคำขอต่อวินาทีบนโหนดคลัสเตอร์เดียว

รองรับการทำงานร่วมกับระบบประมวลผลคิวและเทคโนโลยีฐานข้อมูลต่างๆ สถาปัตยกรรม Storm เกี่ยวข้องกับการรับและการประมวลผลสตรีมข้อมูลที่ไม่มีโครงสร้างและอัปเดตอย่างต่อเนื่องโดยใช้ตัวประมวลผลที่ซับซ้อนตามอำเภอใจ พร้อมความสามารถในการแบ่งพาร์ติชันระหว่างขั้นตอนการคำนวณต่างๆ โครงการนี้ถูกส่งมอบให้กับชุมชน Apache หลังจากที่ Twitter เข้าซื้อกิจการ BackType ซึ่งเป็นบริษัทที่พัฒนากรอบงานแต่แรกเริ่ม ในทางปฏิบัติ Storm ถูกใช้ใน BackType เพื่อวิเคราะห์การสะท้อนของเหตุการณ์ในไมโครบล็อก โดยการเปรียบเทียบทวีตใหม่และลิงก์ที่ใช้ในทวีตใหม่ทันที (เช่น มีการประเมินว่าลิงก์ภายนอกหรือประกาศที่เผยแพร่บน Twitter ได้รับการเผยแพร่ซ้ำโดยผู้เข้าร่วมรายอื่นอย่างไร ).

ฟังก์ชันการทำงานของ Storm ได้รับการเปรียบเทียบกับแพลตฟอร์ม Hadoop โดยมีความแตกต่างที่สำคัญคือข้อมูลไม่ได้ถูกจัดเก็บไว้ในคลังสินค้า แต่จะถูกนำเข้าจากภายนอกและประมวลผลแบบเรียลไทม์ Storm ไม่มีชั้นพื้นที่จัดเก็บข้อมูลในตัวและการสืบค้นเชิงวิเคราะห์จะเริ่มนำไปใช้กับข้อมูลขาเข้าจนกว่าจะถูกยกเลิก (ในขณะที่ Hadoop ใช้งาน MapReduce ที่มีเวลาจำกัด Storm จะใช้แนวคิดในการเรียกใช้ "โทโพโลยี" อย่างต่อเนื่อง การดำเนินการของตัวจัดการสามารถกระจายไปยังเซิร์ฟเวอร์ต่างๆ ได้ - Storm จะทำการขนานการทำงานกับเธรดบนโหนดคลัสเตอร์ที่แตกต่างกันโดยอัตโนมัติ

เดิมระบบเขียนด้วย Clojure และทำงานภายในเครื่องเสมือน JVM มูลนิธิ Apache ได้เปิดตัวความคิดริเริ่มในการโยกย้าย Storm ไปยังเคอร์เนลใหม่ที่เขียนด้วยภาษา Java ผลลัพธ์ที่ได้เสนอไว้ในการเปิดตัว Apache Storm 2.0 ส่วนประกอบพื้นฐานทั้งหมดของแพลตฟอร์มถูกเขียนใหม่ในภาษา Java การสนับสนุนตัวจัดการการเขียนใน Clojure ยังคงอยู่ แต่ขณะนี้มีให้บริการในรูปแบบของการเชื่อมโยง Storm 2.0.0 ต้องการ Java 8 โมเดลการประมวลผลแบบมัลติเธรดได้รับการออกแบบใหม่ทั้งหมด ช่วยให้ บรรลุ ประสิทธิภาพเพิ่มขึ้นอย่างเห็นได้ชัด (สำหรับโทโพโลยีบางอย่าง ความล่าช้าลดลง 50-80%)

มีระบบคอมพิวเตอร์แบบกระจาย Apache Storm 2.0 พร้อมใช้งาน

เวอร์ชันใหม่ยังมี Streams API ประเภทใหม่ที่ให้คุณกำหนดตัวจัดการโดยใช้การดำเนินการสไตล์การเขียนโปรแกรมเชิงฟังก์ชันได้ API ใหม่ถูกใช้งานบน API ฐานมาตรฐาน และรองรับการรวมการดำเนินการอัตโนมัติเพื่อเพิ่มประสิทธิภาพการประมวลผล Windowing API สำหรับการทำงานของหน้าต่างได้เพิ่มการรองรับสำหรับการบันทึกและการกู้คืนสถานะในแบ็กเอนด์

รองรับการพิจารณาแหล่งข้อมูลเพิ่มเติมในการตัดสินใจไม่ จำกัด เพียง
CPU และหน่วยความจำ เช่น การตั้งค่าเครือข่ายและ GPU มีการปรับปรุงจำนวนมากเพื่อให้แน่ใจว่าสามารถรวมเข้ากับแพลตฟอร์มได้ Kafka. ระบบควบคุมการเข้าถึงได้รับการขยายเพื่อรวมความสามารถในการสร้างกลุ่มผู้ดูแลระบบและโทเค็นการมอบหมาย เพิ่มการปรับปรุงที่เกี่ยวข้องกับการสนับสนุน SQL และตัวชี้วัด คำสั่งใหม่ปรากฏในอินเทอร์เฟซผู้ดูแลระบบสำหรับการดีบักสถานะคลัสเตอร์

พื้นที่ใช้งานสำหรับ Storm:

  • การประมวลผลกระแสข้อมูลใหม่หรือการอัพเดตฐานข้อมูลแบบเรียลไทม์
  • คอมพิวเตอร์ต่อเนื่อง: Storm สามารถเรียกใช้การสืบค้นอย่างต่อเนื่องและประมวลผลสตรีมอย่างต่อเนื่อง โดยส่งมอบผลลัพธ์การประมวลผลไปยังไคลเอนต์แบบเรียลไทม์
  • Distributed Remote Procedure Call (RPC): Storm สามารถใช้เพื่อจัดเตรียมการดำเนินการแบบขนานของการสืบค้นที่ใช้ทรัพยากรมาก งาน (“โทโพโลยี”) ใน Storm เป็นฟังก์ชันที่กระจายไปตามโหนดที่รอให้ข้อความมาถึงและจำเป็นต้องดำเนินการ หลังจากได้รับข้อความ ฟังก์ชันจะประมวลผลข้อความนั้นในบริบทท้องถิ่นและส่งกลับผลลัพธ์ ตัวอย่างของการใช้ RPC แบบกระจายคือการประมวลผลคำค้นหาแบบขนานหรือดำเนินการกับชุดชุดขนาดใหญ่

คุณสมบัติของพายุ:

  • โมเดลการเขียนโปรแกรมอย่างง่ายที่ทำให้การประมวลผลข้อมูลแบบเรียลไทม์ง่ายขึ้นอย่างมาก
  • รองรับภาษาการเขียนโปรแกรมใด ๆ โมดูลพร้อมใช้งานสำหรับ Java, Ruby และ Python การปรับตัวสำหรับภาษาอื่นทำได้ง่ายด้วยโปรโตคอลการสื่อสารที่เรียบง่ายซึ่งต้องใช้โค้ดประมาณ 100 บรรทัดเพื่อรองรับ
  • ความทนทานต่อข้อผิดพลาด: ในการรันงานประมวลผลข้อมูล คุณต้องสร้างไฟล์ jar พร้อมโค้ด Storm จะกระจายไฟล์ jar นี้อย่างอิสระไปยังโหนดคลัสเตอร์ เชื่อมต่อตัวจัดการที่เชื่อมโยงกับไฟล์นั้น และจัดระเบียบการตรวจสอบ เมื่องานเสร็จสิ้น รหัสจะถูกปิดการใช้งานโดยอัตโนมัติในทุกโหนด
  • ความสามารถในการขยายแนวนอน การคำนวณทั้งหมดดำเนินการในโหมดขนาน เมื่อโหลดเพิ่มขึ้น เพียงเชื่อมต่อโหนดใหม่เข้ากับคลัสเตอร์ก็เพียงพอแล้ว
  • ความน่าเชื่อถือ Storm ทำให้แน่ใจว่าทุกข้อความขาเข้าได้รับการประมวลผลอย่างสมบูรณ์อย่างน้อยหนึ่งครั้ง ข้อความจะถูกประมวลผลเพียงครั้งเดียวเท่านั้นหากไม่มีข้อผิดพลาดเมื่อผ่านตัวจัดการทั้งหมด หากเกิดปัญหาขึ้น ความพยายามในการประมวลผลที่ไม่สำเร็จจะถูกทำซ้ำ
  • ความเร็ว. โค้ดของ Storm เขียนขึ้นโดยคำนึงถึงประสิทธิภาพสูงและใช้ระบบสำหรับการส่งข้อความแบบอะซิงโครนัสที่รวดเร็ว ZeroMQ.

ที่มา: opennet.ru

เพิ่มความคิดเห็น