SlideShare una empresa de Scribd logo
1 de 19
Descargar para leer sin conexión
Peerapat	
  A.	
  ©	
  2014
THJUG
THJUG 

Meetup

BIG DATA
Peerapat	
  A.	
  ©	
  2014
THJUG
ME
Senior Software Engineer @ FICO

Blogger @ thjug.com

Failed Startuper

Twitterlian
Peerapat	
  A.	
  ©	
  2014
THJUG
Special Thank
ก่อนเริ่มงานผมก็ขอขอบคุณทางบริษัท Oracle และมหาวิทยาลัยสุรนารี ครับ 
รวมถึงน้องอาร์ม, พี่ต่อ, พี่ใหม่ (อาจารย์ชาญวิทย์) และคณาจารย์และนักศึกษาจากมทส. 
ถ้าไม่ไ่ด้คนเหล่านี้คงไม่มีงานวันนี้เหมือนกัน
!
สำหรับค่าของว่างนี่ก็มาจากเงินที่ผมไปไถเพือนๆ พี่ น้อง ที่ยอมเสียสละเวลามาเรียน Mobile Backend API with JavaEE กับผมในอีกสองอาทิตย์ข้างหน้านะครับ ขอบคุณครับ
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 นิดหน่อย
ก็ตามรูปครับ อยากให้มองรูปแบบของตาต้าในโลกเป็นสี่ส่วนตามรูป
Peerapat	
  A.	
  ©	
  2014
THJUG
Big Data?
คำถาม: บิ๊กดาต้าคืออะไร
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
Peerapat	
  A.	
  ©	
  2014
THJUG
เปรียบเทียบงานของบิ๊กดาต้ากับเรือขนของขนาดใหญ่นะครับ
จะเห็นว่าขนได้ทีเยอะมาก(มองเป็นข้อมูล) แต่ใช้เวลานาน(Overhead สูง) 
!
เหมาะกับงานที่ต้องการประมวลผลข้อมูลใหญ่ๆ โดยไม่สนใจเรื่องของ Latency ที่จะเกิดขึ้น 
!
อย่างที่อ. ชาญวิทย์จะมาโชว์ Aiyara วันนี้ก็ใช้เวลาหลักชั่วโมง … (แต่นี่ข้อมูลระดับ 34 GB) เชียวนะ
Peerapat	
  A.	
  ©	
  2014
THJUG
Big Data Challenges
Source: oracle.com
ขนาด ความเร็ว ความหลากหลายและสุดท้ายต้องเกิด Value
Peerapat	
  A.	
  ©	
  2014
THJUG
Why Hadoop?
ทำไมถึงเลือก Hadoop สำหรับ Big Data ทั้งที่จริงๆ มีหลาย Platform ที่ทำงานกับ Big Data ได้ ?
Peerapat	
  A.	
  ©	
  2014
THJUG
Infographic by GO-Globe.com
มาดูกันดีกว่าว่ามีดาต้าอะไรเกิดขึ้นรอบตัวเราใน 1 วินาทีกัน (นี่ไม่ใช่ทั้งหมดนะ)
จะเห็นว่าข้อมูลทีมีหลากหลายมาก และส่วนใหญ่มักเป็น Quasi-Structure และ Unstructure ซะด้วย
Peerapat	
  A.	
  ©	
  2014
THJUG
Hadoop
Figure by - apache.org
ลักษณะการทำงานคร่าวๆ
ภาพรวมคือเวลา client ติดต่อมาจะคุยกับตัวกลางที่จะเป็นคนกระจายการทำงานไปยังแต่ละ Distribute Node
ภาพนี้ Abstract พอสมควรนะครับ ตัว Node Manager จะเป็นทั้ง Disk และ Processing ในตัว
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 ก็ยังมีงานที่ต้องดูแลกันต่อไป
Peerapat	
  A.	
  ©	
  2014
THJUG
Figure by - hortonworks.com
Hadoop Ecosystem.
!
ตามรูปจะเห็นว่า Hadoop คือ Eco System ที่ส่วนตัวผมมองมันเป็น Distributed OS ไปแล้ว … มี File System ของตัวเอง มี Cluster Resource Management ของตัวเอง แล้วก็สามารถเอา Application ต่างๆ มา on top
บนตัวมันอีกที
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 หายไปแล้ว)
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 ที่ต้องการคืออะไร มันก็ขึ้นกับว่าคุณอยากถามอะไร :)
Peerapat	
  A.	
  ©	
  2014
THJUG
Map
(k1, v1) -> list(k2, v2)
k1 = LongWritable key 
v1 = Text value
!k2 = word
v2 = one
Peerapat	
  A.	
  ©	
  2014
THJUG
Reduce
(k2, List(v2)) -> list(k3, v3)
k2 = Text key
List(v2) = Iterable<IntWriteable> values
!k3 = key
v3 = sum
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 ถูกแยกกันทำสามโหนดดังรูป
Peerapat	
  A.	
  ©	
  2014
THJUG
THANK YOU :)
ขอบคุณครับ

Más contenido relacionado

Destacado (6)

Introduction to Data Mining and Big Data Analytics
Introduction to Data Mining and Big Data AnalyticsIntroduction to Data Mining and Big Data Analytics
Introduction to Data Mining and Big Data Analytics
 
Big Data in Real-Time at Twitter
Big Data in Real-Time at TwitterBig Data in Real-Time at Twitter
Big Data in Real-Time at Twitter
 
Big Data v Data Mining
Big Data v Data MiningBig Data v Data Mining
Big Data v Data Mining
 
What is Big Data?
What is Big Data?What is Big Data?
What is Big Data?
 
Big Data Analytics with Hadoop
Big Data Analytics with HadoopBig Data Analytics with Hadoop
Big Data Analytics with Hadoop
 
Big Data - 25 Amazing Facts Everyone Should Know
Big Data - 25 Amazing Facts Everyone Should KnowBig Data - 25 Amazing Facts Everyone Should Know
Big Data - 25 Amazing Facts Everyone Should Know
 

Similar a Meetup Big Data by THJUG

Similar a Meetup Big Data by THJUG (6)

Web Developer study Guideline for Starter
Web Developer study Guideline for StarterWeb Developer study Guideline for Starter
Web Developer study Guideline for Starter
 
Startup Pitfall
Startup PitfallStartup Pitfall
Startup Pitfall
 
หน่วยที่ 1.2
หน่วยที่ 1.2หน่วยที่ 1.2
หน่วยที่ 1.2
 
นำเสนอSlideshare2
นำเสนอSlideshare2นำเสนอSlideshare2
นำเสนอSlideshare2
 
นำเสนอSlideshare2
นำเสนอSlideshare2นำเสนอSlideshare2
นำเสนอSlideshare2
 
Pbl4.1
Pbl4.1Pbl4.1
Pbl4.1
 

Más de Peerapat Asoktummarungsri (13)

ePassport eKYC for Financial
ePassport eKYC for FinancialePassport eKYC for Financial
ePassport eKYC for Financial
 
Security Deployment by CI/CD
Security Deployment by CI/CDSecurity Deployment by CI/CD
Security Deployment by CI/CD
 
Cassandra - Distributed Data Store
Cassandra - Distributed Data StoreCassandra - Distributed Data Store
Cassandra - Distributed Data Store
 
Data Pipeline with Kafka
Data Pipeline with KafkaData Pipeline with Kafka
Data Pipeline with Kafka
 
Modern Java Development
Modern Java DevelopmentModern Java Development
Modern Java Development
 
Sonarqube
SonarqubeSonarqube
Sonarqube
 
Sonar
SonarSonar
Sonar
 
Roboguice
RoboguiceRoboguice
Roboguice
 
Homeloan
HomeloanHomeloan
Homeloan
 
Lightweight javaEE with Guice
Lightweight javaEE with GuiceLightweight javaEE with Guice
Lightweight javaEE with Guice
 
Hadoop
HadoopHadoop
Hadoop
 
Meet Django
Meet DjangoMeet Django
Meet Django
 
Easy java
Easy javaEasy java
Easy java
 

Meetup Big Data by THJUG

  • 1. Peerapat  A.  ©  2014 THJUG THJUG Meetup BIG DATA
  • 2. Peerapat  A.  ©  2014 THJUG ME Senior Software Engineer @ FICO Blogger @ thjug.com Failed Startuper Twitterlian
  • 3. Peerapat  A.  ©  2014 THJUG Special Thank ก่อนเริ่มงานผมก็ขอขอบคุณทางบริษัท Oracle และมหาวิทยาลัยสุรนารี ครับ รวมถึงน้องอาร์ม, พี่ต่อ, พี่ใหม่ (อาจารย์ชาญวิทย์) และคณาจารย์และนักศึกษาจากมทส. ถ้าไม่ไ่ด้คนเหล่านี้คงไม่มีงานวันนี้เหมือนกัน ! สำหรับค่าของว่างนี่ก็มาจากเงินที่ผมไปไถเพือนๆ พี่ น้อง ที่ยอมเสียสละเวลามาเรียน Mobile Backend API with JavaEE กับผมในอีกสองอาทิตย์ข้างหน้านะครับ ขอบคุณครับ
  • 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. Peerapat  A.  ©  2014 THJUG Big Data? คำถาม: บิ๊กดาต้าคืออะไร
  • 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. Peerapat  A.  ©  2014 THJUG เปรียบเทียบงานของบิ๊กดาต้ากับเรือขนของขนาดใหญ่นะครับ จะเห็นว่าขนได้ทีเยอะมาก(มองเป็นข้อมูล) แต่ใช้เวลานาน(Overhead สูง) ! เหมาะกับงานที่ต้องการประมวลผลข้อมูลใหญ่ๆ โดยไม่สนใจเรื่องของ Latency ที่จะเกิดขึ้น ! อย่างที่อ. ชาญวิทย์จะมาโชว์ Aiyara วันนี้ก็ใช้เวลาหลักชั่วโมง … (แต่นี่ข้อมูลระดับ 34 GB) เชียวนะ
  • 8. Peerapat  A.  ©  2014 THJUG Big Data Challenges Source: oracle.com ขนาด ความเร็ว ความหลากหลายและสุดท้ายต้องเกิด Value
  • 9. Peerapat  A.  ©  2014 THJUG Why Hadoop? ทำไมถึงเลือก Hadoop สำหรับ Big Data ทั้งที่จริงๆ มีหลาย Platform ที่ทำงานกับ Big Data ได้ ?
  • 10. Peerapat  A.  ©  2014 THJUG Infographic by GO-Globe.com มาดูกันดีกว่าว่ามีดาต้าอะไรเกิดขึ้นรอบตัวเราใน 1 วินาทีกัน (นี่ไม่ใช่ทั้งหมดนะ) จะเห็นว่าข้อมูลทีมีหลากหลายมาก และส่วนใหญ่มักเป็น Quasi-Structure และ Unstructure ซะด้วย
  • 11. Peerapat  A.  ©  2014 THJUG Hadoop Figure by - apache.org ลักษณะการทำงานคร่าวๆ ภาพรวมคือเวลา client ติดต่อมาจะคุยกับตัวกลางที่จะเป็นคนกระจายการทำงานไปยังแต่ละ Distribute Node ภาพนี้ Abstract พอสมควรนะครับ ตัว Node Manager จะเป็นทั้ง Disk และ Processing ในตัว
  • 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. Peerapat  A.  ©  2014 THJUG Figure by - hortonworks.com Hadoop Ecosystem. ! ตามรูปจะเห็นว่า Hadoop คือ Eco System ที่ส่วนตัวผมมองมันเป็น Distributed OS ไปแล้ว … มี File System ของตัวเอง มี Cluster Resource Management ของตัวเอง แล้วก็สามารถเอา Application ต่างๆ มา on top บนตัวมันอีกที
  • 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. 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. Peerapat  A.  ©  2014 THJUG Map (k1, v1) -> list(k2, v2) k1 = LongWritable key v1 = Text value !k2 = word v2 = one
  • 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. 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. Peerapat  A.  ©  2014 THJUG THANK YOU :) ขอบคุณครับ