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     สถาบันสหวิทยาการดิจิทัลและหุนยนต มหาวิทยาลัยเทคโนโลยีราชมงคลพระนคร
   26   27   28   29   30   31   32   33   34   35   36