Meetup Big Data by THJUG

600 views

Published on

Meetup Big Data by Thai Java User Group

Published in: Engineering
  • Be the first to comment

Meetup Big Data by THJUG

  1. 1. Peerapat  A.  ©  2014 THJUG THJUG Meetup BIG DATA
  2. 2. Peerapat  A.  ©  2014 THJUG ME Senior Software Engineer @ FICO Blogger @ thjug.com Failed Startuper Twitterlian
  3. 3. Peerapat  A.  ©  2014 THJUG Special Thank ก่อนเริ่มงานผมก็ขอขอบคุณทางบริษัท Oracle และมหาวิทยาลัยสุรนารี ครับ รวมถึงน้องอาร์ม, พี่ต่อ, พี่ใหม่ (อาจารย์ชาญวิทย์) และคณาจารย์และนักศึกษาจากมทส. ถ้าไม่ไ่ด้คนเหล่านี้คงไม่มีงานวันนี้เหมือนกัน ! สำหรับค่าของว่างนี่ก็มาจากเงินที่ผมไปไถเพือนๆ พี่ น้อง ที่ยอมเสียสละเวลามาเรียน Mobile Backend API with JavaEE กับผมในอีกสองอาทิตย์ข้างหน้านะครับ ขอบคุณครับ
  4. 4. Peerapat  A.  ©  2014 THJUG Data Structure Level Example Structure RDBMS Semi-structure XML, JSON Quasi-structure Text Document Unstructure Image, Video ก่อนจะเริ่ม Big Data ขอทบทวน Data Structure นิดหน่อย ก็ตามรูปครับ อยากให้มองรูปแบบของตาต้าในโลกเป็นสี่ส่วนตามรูป
  5. 5. Peerapat  A.  ©  2014 THJUG Big Data? คำถาม: บิ๊กดาต้าคืออะไร
  6. 6. Peerapat  A.  ©  2014 THJUG Big data analytics is concerned with the analysis of large volumes of transaction/event data and behavioral analysis of human/human a human/system interactions. (Gartner) Big data represents the collection of technologies that handle large data volumes well beyond that inflection point and for which, at least in theory, hardware resources required to manage data by volume track to an almost straight line rather than a curve. (IDC) นิยาม BigData ของ Gartner กับ IDC
  7. 7. Peerapat  A.  ©  2014 THJUG เปรียบเทียบงานของบิ๊กดาต้ากับเรือขนของขนาดใหญ่นะครับ จะเห็นว่าขนได้ทีเยอะมาก(มองเป็นข้อมูล) แต่ใช้เวลานาน(Overhead สูง) ! เหมาะกับงานที่ต้องการประมวลผลข้อมูลใหญ่ๆ โดยไม่สนใจเรื่องของ Latency ที่จะเกิดขึ้น ! อย่างที่อ. ชาญวิทย์จะมาโชว์ Aiyara วันนี้ก็ใช้เวลาหลักชั่วโมง … (แต่นี่ข้อมูลระดับ 34 GB) เชียวนะ
  8. 8. Peerapat  A.  ©  2014 THJUG Big Data Challenges Source: oracle.com ขนาด ความเร็ว ความหลากหลายและสุดท้ายต้องเกิด Value
  9. 9. Peerapat  A.  ©  2014 THJUG Why Hadoop? ทำไมถึงเลือก Hadoop สำหรับ Big Data ทั้งที่จริงๆ มีหลาย Platform ที่ทำงานกับ Big Data ได้ ?
  10. 10. Peerapat  A.  ©  2014 THJUG Infographic by GO-Globe.com มาดูกันดีกว่าว่ามีดาต้าอะไรเกิดขึ้นรอบตัวเราใน 1 วินาทีกัน (นี่ไม่ใช่ทั้งหมดนะ) จะเห็นว่าข้อมูลทีมีหลากหลายมาก และส่วนใหญ่มักเป็น Quasi-Structure และ Unstructure ซะด้วย
  11. 11. Peerapat  A.  ©  2014 THJUG Hadoop Figure by - apache.org ลักษณะการทำงานคร่าวๆ ภาพรวมคือเวลา client ติดต่อมาจะคุยกับตัวกลางที่จะเป็นคนกระจายการทำงานไปยังแต่ละ Distribute Node ภาพนี้ Abstract พอสมควรนะครับ ตัว Node Manager จะเป็นทั้ง Disk และ Processing ในตัว
  12. 12. Peerapat  A.  ©  2014 THJUG Figure by - hortonworks.com สมัย 1.0 นี่รองรับได้สูงสุดแค่ 4000 nodes ส่วน 2.0 ที่มียานแม่ด้วยนี่หลักหมื่น การเปลี่ยนแปลงที่เห็นชัดสุดคือมี YARN เพิ่มเข้ามาทีนี้เวลาจะทำอะไรก็จะติดต่อผ่านทาง YARN ทั้งหมด ไม่ยุ่งกับ HDFS โดยตรงแล้ว ! ถามว่าในแง่การเรียนรู้ควรเริ่มจากอะไร ต้องดูก่อนว่าคุณเป็นใคร ถ้าคุณเป็น Developer ไม่ต้องไปคิดมาก เพราะว่าในแง่การพัฒนามันไมไ่ด้มีอะไรต่างกัน แต่ถ้าคุณเป็น System Engineer จงเรียนรู้มันทั้งหมดซะ เพราะอย่างไรแล้ว HADOOP 2.0 ก็คงมาแทนในไม่ช้า แต่ 1.0 ก็ยังมีงานที่ต้องดูแลกันต่อไป
  13. 13. Peerapat  A.  ©  2014 THJUG Figure by - hortonworks.com Hadoop Ecosystem. ! ตามรูปจะเห็นว่า Hadoop คือ Eco System ที่ส่วนตัวผมมองมันเป็น Distributed OS ไปแล้ว … มี File System ของตัวเอง มี Cluster Resource Management ของตัวเอง แล้วก็สามารถเอา Application ต่างๆ มา on top บนตัวมันอีกที
  14. 14. Peerapat  A.  ©  2014 THJUG HDFS Hadoop Distributed File System 1 2 5 3 4 1 2 5 1 4 3 1 5 3 2 5 4 4 2 3 Replication Factor = 3 A B C D E HDFS ตัวนี้แหละหัวใจของ Hadoop เลย ! Replication Factor นี่ถ้าใครทำพวก Cluster จะได้ยินคำนี้บ่อยๆ มันคือค่าที่บอกว่าดาต้าจะถูก duplicate เอาไว้ทั้งหมดกี่ชุด และหมายถึงจำนวนคอมพิวเตอร์ในระบบที่ห้ามตายพร้อมกันด้วย เช่น ถ้าตามรูปถ้า A,C,D ตาย อาจจะไม่สามารถ recovery data ได้ (เพราะ 1 หายไปแล้ว)
  15. 15. Peerapat  A.  ©  2014 THJUG MapReduce Function (k1, v1) -> list(k2, v2) (k2, List(v2)) -> list(k3, v3)Reduce: Map: สำคัญสุดนะ .. เพราะถ้าไม่เข้าใจคุณจะเริ่มเขียนโปรแกรมเพือทำงานกับ Hadoop ไม่ได้เลย ! ถามว่าการที่มันเรียกว่า framework แสดงว่ามันเป้นส่วนที่กำหนดให้เราทำตามเฉยๆ แล้วมีงานอีกส่วนนึงทำด้วยตัว Framework แทน … ! k1, v1 เป็นอะไรโดย default แล้วถ้าเป็น file processing มันคือ Offset, Line of Record นั่นเอง ! อีกหนึ่งทีคนเข้าใจผิด output ของ Map ไม่ใช่ input ของ Reduce ดังสมการจะเห็นว่า list(k2, v2) จะถูกแปรงเป็น k2, list(v2) (ทำโดยตัว Framework นั่นเอง) ! คำถามจะรู้ได้ไงว่า k3, v3 ที่ต้องการคืออะไร มันก็ขึ้นกับว่าคุณอยากถามอะไร :)
  16. 16. Peerapat  A.  ©  2014 THJUG Map (k1, v1) -> list(k2, v2) k1 = LongWritable key v1 = Text value !k2 = word v2 = one
  17. 17. Peerapat  A.  ©  2014 THJUG Reduce (k2, List(v2)) -> list(k3, v3) k2 = Text key List(v2) = Iterable<IntWriteable> values !k3 = key v3 = sum
  18. 18. Peerapat  A.  ©  2014 THJUG MapReduce Framework v1 k2, v2 k3, v3 k2, list(v2) รูปนี้สำหรับอธิบายการทำงานทั้งหมดของ Map Reduce และ Hadoop จะเห็นว่า Method Map และ Reduce ที่คุณสร้างขึ้นมานั้นสำหรับทำงานแค่ในกรอบสีแดง แต่งานทั้งหมดที่ Hadoop ทำให้นั้นคือตั้งแต่ Input -> Spliting -> Mapping -> Shuffing -> Reducing -> Final Result ! แต่ระบบให้เราเขียนโปรแกรมแค่สองส่วนคือ Map, Reduce พอเพือความง่าย และจัดการในเรือ่งที่เหลือให้ ทั้ง Functional และ Non Functional เช่นการที่ Map ถูกแยกกันทำสามโหนดดังรูป
  19. 19. Peerapat  A.  ©  2014 THJUG THANK YOU :) ขอบคุณครับ

×