Page 31 - 5.Introduction to IoT Analytics using hadoop
P. 31
หลักสูตรการวิเคราะหอินเทอรเน็ตของทุกสรรพสิ่งเบื้องตนดวย Hadoop 30
รวมไปถึงที่อยูของแตละ Block ที่ถูกกระจายออกไปตาม Data Node ตางๆ หรือพูดงายๆ Name Node
ก็คือ Master สวน Data Node ก็คือ Slave นั่นเอง
โดยคา default ของการ replicate แตละ Block นั้นจะอยูที่ 3 Node นั่นหมายความวา การจะใช Hadoop ได
อยางมีประสิทธิภาพนั้นจะมีเครื่องอยางนอย 5 เครื่อง คือ Data Node 3 เครื่อง Name Node 1 เครื่อง แลวก็ Name Node
ตัว secondary อีก 1 เครื่อง สวน spec นั้น ใหเพิ่ม Disk ให Data Node เยอะๆ แลวก็เพิ่ม RAM ให Name Node เยอะๆ
เพราะขอมูลที่ Name Node ดูแลนั้น สวนใหญจะเก็บอยูใน RAM เพื่อปองกันไมใหเกิดปญหา bottle neck นั่นเอง
3.7 ประมวลผลขอมูลดวย MapReduce
เมื่อเอาขอมูลมาเก็บลงใน HDFS เรียบรอยแลว วิธีการนำขอมูลเหลานั้นมาประมวลผลโดย สมมุติวาขอมูลในไฟล
CSV นั้น เปนขอมูลของคนไทยทุกคน แลวเราจะหาวาคนที่อายุเยอะที่สุดในไทย มีอายุเปนเทาไร เราจะออกแบบการคำนวณ
อยางไร โดยที่ Hadoop มีวิธีแนะนำใหทำเปนขั้นเปนตอนตามนี้
1. Map เนื่องจาก record มันมีขนาดหลายลาน อยูดีๆจะไปหาเลยวาคนไหนอายุเยอะสุดคงไมได วิธี
ที่ดีกวาคือใหการแบงขอมูลออกเปนโซนยอยๆ กอน แลวจึงหาคำตอบที่ตองการภายในโซนนั้นๆ ไล
ไปเรื่อยๆ ทีละโซนๆ อยางในที่นี้ โดยอาจจะหากอนวาใครอายุเยอะที่สุดในแตละเขต/อำเภอก็ได
2. Shuffle พอรูแลววาใครอายุเยอะสุดในแตละอำเภอ ก็ใหรวบรวมขอมูลเหลานั้นมา group by
จังหวัด แลวเรียงลำดับอายุจากมากไปนอย ทีนี้ก็พอจะรูคราวๆ แลววาจังหวัดไหนมีคนอายุเยอะๆ
อยูบาง
3. Combine หลังจากที่ เรียงลำดับขอมูลจากมาก ไปนอยแลวใหตัดขอมูลที่ไมเขาขายออกใหหมด
สมมติวา ขอมูลของคนอายุสูงสุดของแตละเขตในกรุงเทพฯ เรียงลำดับจากอายุมากไปหานอยเปน
100, 95, 93, 87, …, 80 ใหเหลือไวแตคนที่อายุสูงสุดซึ่งก็คือ 100 หรือพูดงายๆ ก็คือ ใหหาผูชนะ
ของแตละจังหวัดนั่นเอง
4. Reduce มาถึงตรงนี้ จะไดแชมปของแตละจังหวัดมาแลว จากนั้นขั้นตอนสุดทายก็คือการหาวาใน
บรรดาแชมปเหลานั้น ใครกันที่อายุเยอะที่สุด จะเห็นวาขั้นตอนนี้ไมคอยยากแลว เพราะได
ปรับแตงขอมูลใหอยูในรูปที่คำนวณงายเอามากๆ แลวนั่นเอง
จาก 4 ขั้นตอนที่วามานี้ จะตองไปทำที่ไหน อยางไร คำตอบคือจะตองเขียนโปรแกรมขึ้นมา ซึ่งภาษาที่ใชกันก็จะ
เปนพวก Java, C++, Python หรือ Scala โดยจะสรุปไดคือ สมมติเลือกเขียน MapReduce ดวย Java พอเขียนเสร็จ ก็แค
อัปโหลดไฟล JAR ขึ้น HDFS แลวก็รันโปรแกรมที่เขียน โดยระบุ input ใหเปนไฟล CSV แลวก็ระบุ output ที่ตองการจะให
Hadoop เก็บผลลัพธจากการรันเอาไว
INTRODUCTION TO IOT ANALYTICS USING HADOOP สถาบันสหวิทยาการดิจิทัลและหุนยนต มหาวิทยาลัยเทคโนโลยีราชมงคลพระนคร