logo

Select Sidearea

Populate the sidearea with useful widgets. It’s simple to add images, categories, latest post, social media icon links, tag clouds, and more.
hello@youremail.com
+1234567890
0
  • No products in the cart.

มารู้จักกับ Hadoop YARN กันหน่อยดีกว่า ว่ามันคืออะไร

pnxinfo > BIG DATA  > มารู้จักกับ Hadoop YARN กันหน่อยดีกว่า ว่ามันคืออะไร
image

มารู้จักกับ Hadoop YARN กันหน่อยดีกว่า ว่ามันคืออะไร

บทความที่แล้วเราพอจะได้รู้จัก MapReduce กันไปแล้วว่ามันมีแนวคิดอย่างไร ใครเลียนแบบใครมา ทวนอีกนิดว่า MapReduce คือ กระบวนการจัดการข้อมูลที่นำเข้าไปเก็บใน HDFS ส่วนวันนี้เราจะคุยกันในเรื่องของ YARN (อ่านว่า ยาน ย่อมาจาก Yet Another Resource Negotiator) ซึ่งเป็นตัวจัดการทรัพยากรต่างๆ ของ Cluster ของเรา


เริ่มมีเปิดตัวมาตั้งแต่ Hadoop version 2.0 เมื่อปี 2012 ทำให้การทำงานต่างๆ ดูเข้าร่องเข้ารอยมากขึ้น แต่ก็ดราม่ากันมากมาย เพราะก่อนหน้าที่ YARN จะลอยมานี่ ก็มี tools คล้ายๆ กันหรือแบบเดียวกันอยู่แล้วเยอะแยะเต็มไปหมด แตกสายงานการเรียนรู้กันไม่หวาดไม่ไหว


จนกระทั่งมีกลุ่มคนตั้งตัวมารวบรวม tool เหล่านี้ แล้วนำออกขายเป็น package กันเลยทีเดียว ซึ่งก็บริษัทใหญ่ๆ 2 เจ้า ไม่ใช่อื่นไกล มาจากเพื่อนที่แยกวงกันเอง แล้วมาทำธุรกิจแบบเดียวกันแถมยังเป็นเจ้าตลาดเสียอีก คือ Cloudera และ Hortonworks


จนเมื่อปี 2019 นี่เอง (เดือนเดียวปีเดียวกับที่เขียนบทความเลย ตุลาคม 2019) ทั้ง 2 บริษัทก็ประกาศกอดคอกันเป็นเพื่อนอีกครั้ง โดย Cloudera ซื้อ Hortonworks มาอยู่ภายใต้ปีกเงาของตัวเอง ทำให้กลายเป็นบริษัทยักษ์ใหญ่นำคนอื่นลิ่วเลย สำหรับ Product ที่เกี่ยวกับ การเก็บข้อมูลแบบ Big Data ที่ใช้ Hadoop นี่ (บริษัทที่ทำ Hadoop distributions มีเยอะ ทั้ง Google, AWS หรือ Azure เองก็ทำ on Cloud แต่หลักๆ ขอพูดเรื่องดราม่าแค่ 2 เจ้านี้)


การทำงานในการวางไฟล์อะไรสักไฟล์หนึ่ง จะเริ่มจากเมื่อมีการนำข้อมูลเข้ามายัง Hadoop ซึ่งจะมีตัวที่เรียกว่า Job tracker ส่งไฟล์เราไปเป็น Task โดยมี YARN เป็นตัวควบคุมจัดการงานที่เกิดขึ้นนั้น


ใน YARN เองจะมีอยู่ 4 ส่วนประกอบที่สำคัญคือ (1) Resource Manager เป็นตัวจัดการหลัก และมี (2) Applicaton Master ซึ่งอยู่กระจายไปตาม Node บางตัวใน Cluster โดย 2 ตัวนี้จะคุยกันตลอดเวลา เพื่อหาว่าจะเอาข้อมูลที่ทำการ Map และข้อมูลที่ทำการ Reduce แล้วไปวางไว้กับ (3) Container ใน Node ไหนบ้างด้วย (4) Node Manager


มาดูที่กระบวนการว่า MapReduce ทำงานยังไงกันพอหอมปากหอมคอนิดนึง เมื่อมีการเริ่มทำงานของ Task ตัว MapReduce Engine จะทำการ Map ข้อมูลของไฟล์ก่อน โดยแบ่งไฟล์แล้วมาจับคู่กันแบบ Key-Value แล้วเอาข้อมูลไปเก็บใน Container ของแต่ละ Node ที่มี จากนั้นเริ่มทำการ Reduce โดยจะมี Node หนึ่ง เป็นตัว Reducer ซึ่งจะมีอัลกอริทึ่มสลับสับเปลี่ยน หรือเรียงข้อมูลที่เก็บใน Container ของ Node เหล่านั้น ให้ได้ผลลัพธ์ออกมาเป็นข้อมูลที่ลดรูปลงแล้ว แล้วเอาไปเก็บอีกครั้งที่ Container ใหม่ของ Node ตามที่จัดสรรได้ นี่คือ task นี้สำเร็จแล้วเรียบร้อย

pnxinfo

ฝันอยากเป็น Programmer สร้างสรรค์ Software ก็ได้เป็นล่ะ ถึงจะไม่จบสายงานนี้มา ต่อไปก็อยากจะเป็น Data Engineer ดีกว่า ชีวิตจะได้มีเป้าหมาย...