SlideShare a Scribd company logo
MANAGING BIG DATA WITH APACHE HADOOP
Thinnaphat Borirak
50177004-Big Data Analytics
HTTPS://EN.WIKIPEDIA.ORG/WIKI/APACHE_HADOOP
ปัจจุบันนี การจัดการข้อมูลขนาดใหญ่หรือทีเรียกกันว่า Big Data นัน
บางส่วนอาจไม่สามารถทําได้โดย SQL Database เนืองจาก SQL
Database ในปัจจุบันนีถูกออกแบบมาในรูปแบบของ Centralization
Database เป็นเวลานานแล้ว ในขณะทีความต้องการการใช้ข้อมูลกลับ
มีเพิมขึนเรือย ๆ จน SQL Database แบบเดิมไม่อาจรับได้ไหว ดังนัน
แนวคิดในการทํา Distributed Computing จึงเกิดขึนมา และ Apache
Hadoop เองก็มีบทบาทในด้านนีอย่างมาก
Thinnaphat Borirak
APACHE HADOOP คือโครงการ OPENSOURCE SOFTWARE สําหรับการสร้างระบบ
DISTRIBUTED COMPUTING ทีมีความเสถียรสูง และสามารถเพิมขยายได้อย่างมหาศาล
โดยตัวอย่างของผู้ทีใช้งาน Apache Hadoop นันมีดังนี
Facebook จะมี Apache Hadoop Cluster อยู่ด้วยกัน 2 ชุด ชุดแรกประกอบจาก Server จํานวน 1,100 เครือง, CPU 8,800 Cores และพืนที 12PB (12,000TB)
และชุดทีสองประกอบจาก Server จํานวน 300 เครือง, CPU 2,400 Cores และพืนที 3PB (3,000TB)
Yahoo! นันใช้ Server มากกว่า 40,000 เครือง, CPU มากกว่า 100,000 ชุดสําหรับรองรับระบบ Ads และ Web Search
Thinnaphat Borirak
APACHE HADOOP คือโครงการ OPENSOURCE SOFTWARE สําหรับการสร้างระบบ
DISTRIBUTED COMPUTING ทีมีความเสถียรสูง และสามารถเพิมขยายได้อย่างมหาศาล
โดยตัวอย่างของผู้ทีใช้งาน Apache Hadoop นันมีดังนี
Facebook จะมี Apache Hadoop Cluster อยู่ด้วยกัน 2 ชุด ชุดแรกประกอบจาก Server จํานวน 1,100 เครือง, CPU 8,800 Cores และพืนที 12PB (12,000TB)
และชุดทีสองประกอบจาก Server จํานวน 300 เครือง, CPU 2,400 Cores และพืนที 3PB (3,000TB)
Yahoo! นันใช้ Server มากกว่า 40,000 เครือง, CPU มากกว่า 100,000 ชุดสําหรับรองรับระบบ Ads และ Web Search
นอกจากนียังมีผู้ให้บริการรายใหญ่ๆ มากมายอย่าง Twitter, ImageShack, Adobe, AOL และอืนๆ อีกมากมายทีใช้ Apache Hadoop ในการจัดเก็บข้อมูลแทนฐานข้อมูลแบบ
SQL รวมถึง Microsoft เองก็มีแผนทีจะให้ MS SQL สามารถทํางานเชือมต่อกับ Apache Hadoop ได้เช่นกัน อีกทังผู้ผลิตรายใหญ่ๆ อย่าง IBM และ Supermicro เองก็ให้การ
สนับสนุน Apache Hadoop กันเป็นอย่างมากอีกด้วย
ส่วนในวงการการศึกษาและทางภาคธุรกิจเอง Apache Hadoop ถือเป็นทางเลือกทีดีในงานหลายๆ ประเภท ไม่ว่าจะเป็นงานประมวลผลประสิทธิภาพสูง (High Performance
Computing), Scientific Computing, Image Processing, Information Retrieval, Machine Learning, Social Network Analysis, Data Mining, Business Intelligence
(BI), Network Security, Sensor Data Storage, Biomedical, Statistic, Machine Translation, Language Modeling, Bioinformatic, Email Analysis และอืนๆ อีกมากมาย
และแนวโน้มการเติบโตของ Apache Hadoop ก็จะยังคงมีต่อไปเรือย ๆ
Thinnaphat Borirak
อุปกรณ์สําหรับใช้งาน Apache Hadoop
เนืองจาก Apache Hadoop นันเป็น Opensource ทีสามารถทํางานร่วมกันได้กับทัง Linux และ Microsoft Windows โดยเรียกใช้งานผ่านภาษา Java เป็น
หลัก ดังนัน Apache Hadoop จึงสามารถทํางานบนเครืองคอมพิวเตอร์ได้หลากหลาย โดยต้องทําการเลือกสเปค (Specification) สําหรับอุปกรณ์ที
เหมาะสมสําหรับแต่ละหน้าทีใน Cluster ของ Apache Hadoop เพือใช้ในการติดตังให้ดี ทังนีสามารถทําการติดตังเพือทดสอบการใช้งาน ผ่าน
Visualization ได้ตามความเหมาะสมของอุปกรณ์นัน
ทีอเมริกา Supermicro เป็น Server ทีได้รับความนิยมอย่างสูงสําหรับทํา Apache Hadoop มาก เนืองจากมีความหลากหลายของ Hardware ทีสามารถ
ปรับแต่งและเลือกใช้ให้เหมาะสมกับแต่ละหน้าทีใน Hadoop และแต่ละ Project ทีแตกต่างกันได้ ทาง Supermicro จึงได้จัดชุดของ Hardware ทีเหมาะ
สําหรับการทํา Apache Hadoop มาดังนี
Apache Hadoop Name Node –สําหรับทําหน้าทีเป็น Apache Hadoop Name Node ติดตัง CPU Intel E5600 1 ชุด, หน่วยความจํา 48GB และ Hard
Drive แบบ 147GB SAS 15k 2 ชุด
Apache Hadoop Data Node 1U – เป็น Server ขนาด 1U สําหรับทําหน้าทีเป็น Apache Hadoop Data Node ติดตัง CPU Intel E5600 1 ชุด,
หน่วยความจํา 24GB และ Hard Drive แบบ 2TB SATA จํานวน 4 ชุด รวมพืนที 8TB ต่อ 1U เหมาะสําหรับระบบทีต้องการลงทุนเริมต้นทีละเล็กน้อย
Apache Hadoop Data Node 2U – เป็น Server ขนาด 2U สําหรับทําหน้าทีเป็น Apache Hadoop Data Node ติดตัง CPU Intel E5600 1 ชุด,
หน่วยความจํา 24GB และ Hard Drive แบบ 2TB SATA จํานวน 12 ชุด รวมพืนที 24TB ต่อ 2U เหมาะสําหรับระบบทีต้องการใช้พืนทีขนาดใหญ่
Apache Hadoop Twin Data Node 2U – เป็น Twin Server ขนาด 2U สําหรับทําหน้าทีเป็น Apache Hadoop Data Node มี Server 2 ชุดแบบ Hot Swap
โดยแต่ละชุดติดตัง CPU Intel E5600 1 ชุด, หน่วยความจํา 24GB และ Hard Drive แบบ 2TB SATA จํานวน 12 ชุด รวมพืนที 24TB ต่อ 2U เหมาะ
สําหรับระบบทีต้องการใช้พืนทีขนาดใหญ่ และต้องการหน่วยประมวลผลจํานวนมาก
Thinnaphat Borirak
อุปกรณ์สําหรับใช้งาน Apache Hadoop
เนืองจาก Apache Hadoop นันเป็น Opensource ทีสามารถทํางานร่วมกันได้กับทัง Linux และ Microsoft Windows โดยเรียกใช้งานผ่านภาษา Java เป็น
หลัก ดังนัน Apache Hadoop จึงสามารถทํางานบนเครืองคอมพิวเตอร์ได้หลากหลาย โดยต้องทําการเลือกสเปค (Specification) สําหรับอุปกรณ์ที
เหมาะสมสําหรับแต่ละหน้าทีใน Cluster ของ Apache Hadoop เพือใช้ในการติดตังให้ดี ทังนีสามารถทําการติดตังเพือทดสอบการใช้งาน ผ่าน
Visualization ได้ตามความเหมาะสมของอุปกรณ์นัน
ทีอเมริกา Supermicro เป็น Server ทีได้รับความนิยมอย่างสูงสําหรับทํา Apache Hadoop มาก เนืองจากมีความหลากหลายของ Hardware ทีสามารถ
ปรับแต่งและเลือกใช้ให้เหมาะสมกับแต่ละหน้าทีใน Hadoop และแต่ละ Project ทีแตกต่างกันได้ ทาง Supermicro จึงได้จัดชุดของ Hardware ทีเหมาะ
สําหรับการทํา Apache Hadoop มาดังนี
Apache Hadoop Name Node –สําหรับทําหน้าทีเป็น Apache Hadoop Name Node ติดตัง CPU Intel E5600 1 ชุด, หน่วยความจํา 48GB และ Hard
Drive แบบ 147GB SAS 15k 2 ชุด
Apache Hadoop Data Node 1U – เป็น Server ขนาด 1U สําหรับทําหน้าทีเป็น Apache Hadoop Data Node ติดตัง CPU Intel E5600 1 ชุด,
หน่วยความจํา 24GB และ Hard Drive แบบ 2TB SATA จํานวน 4 ชุด รวมพืนที 8TB ต่อ 1U เหมาะสําหรับระบบทีต้องการลงทุนเริมต้นทีละเล็กน้อย
Apache Hadoop Data Node 2U – เป็น Server ขนาด 2U สําหรับทําหน้าทีเป็น Apache Hadoop Data Node ติดตัง CPU Intel E5600 1 ชุด,
หน่วยความจํา 24GB และ Hard Drive แบบ 2TB SATA จํานวน 12 ชุด รวมพืนที 24TB ต่อ 2U เหมาะสําหรับระบบทีต้องการใช้พืนทีขนาดใหญ่
Apache Hadoop Twin Data Node 2U – เป็น Twin Server ขนาด 2U สําหรับทําหน้าทีเป็น Apache Hadoop Data Node มี Server 2 ชุดแบบ Hot Swap
โดยแต่ละชุดติดตัง CPU Intel E5600 1 ชุด, หน่วยความจํา 24GB และ Hard Drive แบบ 2TB SATA จํานวน 12 ชุด รวมพืนที 24TB ต่อ 2U เหมาะ
สําหรับระบบทีต้องการใช้พืนทีขนาดใหญ่ และต้องการหน่วยประมวลผลจํานวนมาก
IPMI Server Management – เป็นระบบสําหรับบริหารจัดการ Server จากระยะไกล โดยสามารถทํา Remote KVM-over-
LAN และ Virtual Media-over-LAN เพือให้สามารถบริหารจัดการได้เสมือนทํางานอยู่ทีหน้าเครือง Server แต่ละเครืองได้
ผ่านทาง LAN โดยไม่ต้องมี Hardware ต่อพ่วงเพิมเติม
Thinnaphat Borirak
Hadoop:
An Industry Perspective
ในอนาคต APACHE HADOOP และ BIG DATA SOLUTION จะกลายเป็ นสิงทีเข้ามามีบทบาทในระดับ ENTERPRISE มากขึน
เรือย ๆ โดยค่าใช้จ่ายของอุปกรณ์คอมพิวเตอร์ทีใช้ในองค์กร โดยรวมจะประหยัดกว่าระบบจัดเก็บข้อมูลแบบในปั จจุบัน
เนื องจากการนํา SERVER มาใช้งานในลักษณะ CLOUD ทําให้สามารถตัดค่าใช้จ่ายหรือลดต้นทุนของระบบจัดเก็บข้อมูล
แบบ SAN STORAGE หรือ NAS STORAGE ได้ โดยมีความสามารถในการเก็บรักษาข้อมูลในระดับทีสูงขึนอีกด้วย
ดังนันการเลือกใช้อุปกรณ์คอมพิวเตอร์ให้เหมาะสมในระบบคลาวด์ (CLOUD) จึงกลายเป็ นสิงสําคัญตามมา ในขณะทีผู้ดูแล
ระบบเองก็ควรจะต้องเริมศึกษาเทคโนโลยีใหม่ ๆ เพิมเติมนอกเหนื อจาก SQL DATABASE แบบเดิม ๆ ด้วยเช่นกัน
https://www.slideshare.net/cloudera/hadoop-an-industry-perspective
Thinnaphat Borirak
Assignment 1
นอกจากบริษัท Facebook กับ Yahoo ทีผมเสนอมาแล้วนันว่าเป็นบริษัทฯ ทีใช้ระบบจัดการฐานข้อมูล
ของ Apache Hadoop ในการวิเคราะห์ข้อมูลแบบ Un-Structure ดังนันจึงอยากทราบว่ามีบริษัทฯ ใดอีก
บ้างทีใช้รูปแบบการประมวลผลเบืองหลังเป็น Apache Hadoop มาทํา Commercial Distribution ลอง
เสนอมาสัก 3 ตัวอย่าง ว่า บริษัทเหล่านัน ใช้ประโยชน์อะไรจาก Hadoop
Answer:
eBay, Amazon (Elastic Map Reduce), Cloudera , MapR, IBM Infoshphere BigInsight, Hortonwork
ทีนํามา Hadoop มาทํา Commercial Distribution
Thinnaphat Borirak
What is Hadoop ?
หลังจากทีพวกเราทราบแล้วว่า Big Data คืออะไร ใช้ทําอะไรได้บ้าง แล้วมีรูปแบบการจัดเก็บและใช้งานฐานข้อมูลแบบ
RDBMS, MongoDB มาแล้ว ทีนีเรามาดูกันต่อว่าและ Hadoop คืออะไร เกียวข้องอย่างไรกับ Big Data โดยตามหลักการ
ของ Hadoop นันคือ Java programming framework ทีรองรับการทํางานทีต้องประมวลผลและเก็บข้อมูลขนาดใหญ่ ซึง
เป็นส่วนหนึงของ Apache Project โดย Hadoop ถูกออกแบบมาให้เป็น Application ทีสามารถทํางานได้บนระบบต่างๆ
แบบ Node หรือมีเครืองคอมพิวเตอร์จํานวนหลายๆ เครืองมาประมวลผลพร้อมกันในรูปแบบของไฟล์ เพือรองรับชุด
ข้อมูลขนาดใหญ่ ซึงจะใช้รูปแบบของการจัดการไฟล์ โดยระบบจะทําการแตกไฟล์ออกกระจายไปตาม Node ต่าง ๆ
เพือให้สามารถทํางานได้รวดเร็ว พร้อมทังส่งข้อมูลหากันระหว่าง Node ทังหมด รวมถึงมีความสามารถในการจัดการ
Node ทีเสียหายได้โดยไม่ทําให้เกิดข้อมูลสูญหายระหว่างการจัดเก็บเพือประมวลผลข้อมูลนัน
NOTE: ปัจจุบัน Hadoop ถูกนํามาใช้ในงาน Big Data จําพวกการคํานวณข้อมูลทางวิทยาศาสตร์เฉพาะทาง หรือใช้ใน
เชิงธุรกิจ รวมถึงการวางแผนการขาย หรือใช้ในการประมวลผลข้อมูลจากเซ็นเซอร์ (Sensor) ต่าง ๆ ทีเป็นจํานวนมาก
โดยจะเรียกว่าไอโอที (IOT-internet of things)
Thinnaphat Borirak
History of Hadoop
Hadoop ถูกสร้างขึนโดยนาย Doug Cutting และ Mike Cafarella ในปี
2006 ซึงทํางานที Nutch search engine โดยเค้าได้ idea มาจาก
Google’s Mapreduce ซึงเป็น software framework ทีทําการแตก
application ออกเป็นส่วนเล็ก ๆ จํานวนมาก เรียกว่า fragment หรือ
block ทีสามารถทํางานบน node แต่ละตัว โดยรวมกันเป็น cluster และ
ทําให้เกิด Hadoop Version 1.0 ขึนมาช่วง พฤศจิกายน 2012 โดยเป็น
ส่วนหนึงใน Apache project (พนักงานของ Yahoo) และตังชือตามช้าง
ของเล่นของลูกชาย Doug
ตังแต่ทีเริมประกาศโปรแกรม Hadoop Version 1.0 ออกไป ก็ยังถูก
พัฒนาอย่างต่อเนืองจนมาถึง Hadoop Version 2.0 ซึงพัฒนาในเรืองการ
จัดการทรัพยากรได้ดีขึน โดยบริษัทต่าง ๆ สามารถนําเอา Hadoop มาใช้
งานใน Data Center ได้ สามารถขยายเพิมได้ในรูปแบบ Cloud Service
อย่างเช่น Amazon Web services (AWS), Google Cloud Platform และ
Microsoft Azure ซึงเดียวนีบริษัทส่วนมากก็รองรับการทํางานของ
โปรแกรม Hadoop กันหมดแล้ว
Doug Cutting
Mike Cafarella
Dec 2004 – Google GFS paper published
July 2005 – Nutch uses MapReduce
Feb 2006 – Starts as a Lucene subproject
Apr 2007 – Yahoo! on 1000-node cluster
Jan 2008 – An Apache Top Level Project
Jul 2008 – A 4000 node test cluster
May 2009 – Hadoop sorts Petabyte in 17 hours
Published: 2022-07-29 | Version: 3.3.4
Thinnaphat Borirak
Hadoop VS. RDBMS
RDBMS
Hadoop
Scale-up
Scale-out
Tables
Key/value pairs
Say what you want (SQL)
Say how to process the data
Online/real-time
Offline/batch
Hadoop Version 1 จะมีองค์ประกอบหลัก 2 ส่วนก่อนพัฒนาเป็น Version 2 คือ
•HDFS (Hadoop Distribution File System) ทีทําหน้าทีเป็นส่วนเก็บข้อมูลซึงจะ
เก็บข้อมูลขนาดใหญ่ทีจะแบ่งเป็นไฟล์ย่อยขนาดใหญ่เก็บลงใน Data Node จํานวน
มาก โดยจะมี Master Node ทีทําหน้าทีระบุตําแหน่งของข้อมูลทีเก็บใน Data node
•Map/Reduce จะเป็นส่วนประมวลผลข้อมูล ทีนักพัฒนาสามารถเขียนโปรแกรม
โดยใช้ภาษาจาวามาวิเคราะห์ข้อมูลในรูปแบบของฟังก์ชันการ Map และ Reduce
ได้ โดยระบบก็จะกระจาย Task ไปรันแบบ Parallel บนเครืองหลายๆ เครือง
NOTE: ข้อมูลทีเก็บอยู่ใน HDFS จะไม่ใช่รูปแบบ Table อย่างทีเก็บ
ในฐานข้อมูล RDBMS จะเหมาะกับการเก็บข้อมูลขนาดใหญ่มากที
ไม่ต้องมีการเปลียนแปลง และไม่สามารถอ่านหรือเขียนข้อมูลแบบ
Random Access ได้ ส่วนการประมวลผลแบบ Map/Reduce ก็
ไม่ใช่ real-time Online แบบ SQL ของ RDBMS แต่จะเป็นแบบ
Batch Offline ใช้เวลาพอสมควรขึนอยู่กับขนาดข้อมูล
Hadoop Feature Releases
NOTE: Any Apps Can Integrate With Hadoop V 2.0 +
Thinnaphat Borirak
Hadoop VS. RDBMS
RDBMS
Hadoop
Scale-up
Scale-out
Tables
Key/value pairs
Say what you want (SQL)
Say how to process the data
Online/real-time
Offline/batch
Hadoop Version 1 จะมีองค์ประกอบหลัก 2 ส่วนก่อนพัฒนาเป็น Version 2 คือ
•HDFS (Hadoop Distribution File System) ทีทําหน้าทีเป็นส่วนเก็บข้อมูลซึงจะ
เก็บข้อมูลขนาดใหญ่ทีจะแบ่งเป็นไฟล์ย่อยขนาดใหญ่เก็บลงใน Data Node จํานวน
มาก โดยจะมี Master Node ทีทําหน้าทีระบุตําแหน่งของข้อมูลทีเก็บใน Data node
•Map/Reduce จะเป็นส่วนประมวลผลข้อมูล ทีนักพัฒนาสามารถเขียนโปรแกรม
โดยใช้ภาษาจาวามาวิเคราะห์ข้อมูลในรูปแบบของฟังก์ชันการ Map และ Reduce
ได้ โดยระบบก็จะกระจาย Task ไปรันแบบ Parallel บนเครืองหลายๆ เครือง
NOTE: ข้อมูลทีเก็บอยู่ใน HDFS จะไม่ใช่รูปแบบ Table อย่างทีเก็บ
ในฐานข้อมูล RDBMS จะเหมาะกับการเก็บข้อมูลขนาดใหญ่มากที
ไม่ต้องมีการเปลียนแปลง และไม่สามารถอ่านหรือเขียนข้อมูลแบบ
Random Access ได้ ส่วนการประมวลผลแบบ Map/Reduce ก็
ไม่ใช่ real-time Online แบบ SQL ของ RDBMS แต่จะเป็นแบบ
Batch Offline ใช้เวลาพอสมควรขึนอยู่กับขนาดข้อมูล
Hadoop Feature Releases
NOTE: Any Apps Can Integrate With Hadoop V 2.0 +
Hadoop 1.0 มีข้อจํากัดหลายด้าน เช่น ระบบการสํารองของ
Secondary Master เป็นแบบ Passive และไม่สามารถทํา Multiple
Master ได้จึงจํากัดเครือง Slave ไว้ไม่เกิน 4,000 เครือง และขัอ
สําคัญการประมวลผลต้องใช้ Map/Reduce ทีเป็นแบบ Batch
ดังนันจึงมีการพัฒนา Hadoop 2.0 ทีจะลดข้อจํากัดต่าง ๆ ใน
เวอร์ชันแรก Hadoop เวอร์ชันนีจึงมีสถาปัตยกรรมดังรูป โดยมีการ
นํา Data Operating System ทีเรียกว่า YARN (Yet Another
Resource Negotiator)
Thinnaphat Borirak
https://activewizards.com/blog/hadoop-3-comparison-with-hadoop-2-and-spark/
Hadoop System
ระบบ Hadoop เองจะมีองค์ประกอบหลักอยู่แค่สองส่วนคือ HDFS และ Map/Reduce ซึงค่อนข้างจะไม่สะดวกกับ
ผู้ใช้งานทีมีความต้องการอืน ๆ เช่น การประมวลผลโดยใช้ภาษา SQL การเขียนหรืออ่านข้อมูลแบบ Random access
หรือการถ่ายโอนข้อมูลจากทีอืน ๆ จึงมีการพัฒนา Project อืน ๆ ทีมาทํางานร่วมกับ Hadoop เพือให้ได้ประสิทธิภาพดี
ยิงขึน โดยมุ่งเน้นทางด้านต่าง ๆ ให้เกิดประโยชน์ อาทิเช่น
1. ความเร็ว (Speed): สามารถประมวลผลข้อมูลทังแบบมีโครงสร้างและไม่มีโครงสร้างได้ภายในเวลาอันสัน
2. ทนทานต่อความเสียหาย (Fault-tolerance): สามารถทํางานต่อได้แม้จะเกิดความขัดข้องขึน
3. ข้อมูลพร้อมใช้งานตลอดเวลา (Data Availability): มีข้อมูลทีทําสําเนาและกระจายไปยัง Node อืนๆ ทําให้มันใจได้ว่า
ข้อมูลจะไม่หายไปไหน
4. ประมวลผลแบบขนาน (Parallel Processing): ประมวลผลข้อมูลแบบขนานกับไปกับงานอืนๆได้ในชุดเดียวกัน ทําให้
ทํางานได้ไวขึน
Thinnaphat Borirak
สถาปัตยกรรมฮาร์ดแวร์ของระบบ Hadoop จะประกอบด้วย
เครือง Server จํานวนมาก โดยจะมีเครืองหนึงทําหน้าทีเป็น
Master และจะมีเครืองลูกอีกจํานวนมากทําหน้าทีเป็น Slave
โดยปกติ Hadoop จะกําหนดให้ข้อมูลทีเก็บในเครือง Slave มี
การเก็บข้อมูลซํากันสามแห่ง ดังนันเครือง Slave ควรจะมีอย่าง
น้อยสามเครือง ส่วนเครือง Master ก็จะทําหน้าทีหลักในการ
ระบุตําแหน่งของข้อมูลและ Task ทีกระจายในการประมวลผล
ของ Map/Reduce ดังนันเครือง Master จึงมีความสําคัญอย่าง
มาก และต้องมีเครือง Secondary ในการทีจะสํารองไว้ในกรณี
เครือง Master Down ไป ดังนันระบบ Hadoop โดยทัวไปจะ
เริมต้นทีเครือง Server 5 เครือง สําหรับ Master หนึงเครือง,
Secondary หนึงเครือง และ Slave สามเครือง โดยหากต้องการ
เก็บข้อมูลมากขึนหรือต้องการประมวลผลข้อมูลให้เร็วขึนก็ต้อง
เพิมจํานวนเครือง Slave ให้มากขึน ทังนีขนาดของข้อมูลทีเก็บ
ได้ก็จะขึนอยู่กับขนาดความจุข้อมูลของเครือง Slave รวมกัน
หารด้วยจํานวนข้อมูลทีต้องการเก็บซํา (default คือ 3) ซึงการ
เก็บข้อมูลจํานวนเป็น Petabyte ได้ก็ต้องมีเครืองเป็นจํานวน
มากกว่าร้อยเครือง โดยปัจจุบัน Yahoo เป็น site ทีมี Hadoop
Cluster ใหญ่ทีสุด โดยมีเครืองจํานวนถึง 40,000 เครือง
Apache Hadoop Network Architecture
Work Node
Hadoop Cluster
Thinnaphat Borirak
What is NameNode
NameNode-it is also known as Master in Hadoop Cluster. Below Listed Are The Main Function Performed By Namenode:
• Namenode Stores Metadata Of Actual Data. E.G.
Filename, Path, No. Of Blocks, Bolck Ids, Block
Location, No. Of Replicas, And Also Slave Related
Configuration.
• It Manages Filesystem Namespace.
• Namenode Regulates Client Access To Files.
• It Assigns Work To Slaves (Datanode)
• It Executes File System Namespace Operation Like
Opening/Closing Files, Renaming Files/Directory
• As Namenode Keep Metadata In Memory For Fast
Retrieval. So It Requires The Huge Amount Of Memory
For Its Operation.
https://phoenixnap.com/kb/apache-hadoop-architecture-explained
Thinnaphat Borirak
What is Secondary NameNode
It as A backup node.
*NameNode Holds the metadate for HDFS like block information, size etc. This
information is stored in main memory as well as disk for persistence storage.
The information is stored in 2 different files.
o Editlogs- It keep track of each and every changes to HDFS.
o Fsimage-It stores the snapshort of the file system
https://www.edureka.co/community/49846/explain-the-difference-between-name-node-secondary-name-node
Thinnaphat Borirak
What is DataNode
DataNode is also Known as Slave node.
• In Hadoop HDFS Architecture, DataNode Stores
actual data in HDFS
• DataNode responsible for serving, read and write
requests for the clients.
• DataNode can deploy on Community hardware
• DataNode sends Information to the NameNode
about the files and block stored in that node and
responds to the NameNode for all filesystem
operation.
• When a DataNode starts up it announce itself to
the NameNode along with the list of blocks it is
responsible for.
• DataNode is usually configured with a lot of hard
disk space. Because the actual data is stored in
the DataNode.
Thinnaphat Borirak
https://www.oreilly.com/library/view/apache-hadoop-3/9781788999830/21ee1c45-08d1-4279-be81-77ad850b09e8.xhtml
Thinnaphat Borirak
• HDFS stores the data in form of blocks
• Block size can be configured base on requirements, but the default size of each block is 128 MB in Apache 2.x
(64 MB in Apache Hadoop 1.x)
• Can configure the block size as per our requirement by changing the dfs.block.size property in hdfs-site.xml
HDFS Data Blocks
Fault Tolerance
HDFS Replication

Thinnaphat Borirak
HDFS Write Architecture
ตัวอย่าง HDFS Client ต้องการเขียนไฟล์ชือ “example.txt” ขนาด 248 MB ขนาดบล็อกของระบบจะถูกกําหนดค่าเป็น 128 MB (ค่าเริมต้น) ฉะนัน Client จะ
แบ่งไฟล์ “example.txt” ออกเป็น 2 บล็อค โดยอันหนึงมีขนาด 128 MB (บล็อค A)
และอีกอันมีขนาด 120 MB (บล็อค B)
ดังนัน เมือข้อมูลถูกเขียนลงใน HDFS จะมีขันตอนตามนี คือ ในขันตอนแรก HDFS Client จะติดต่อไปยัง NameNode เพือขอบันทึก 2 บล็อก เช่น บล็อก A
และบล็อก B จากนัน NameNode จะให้สิทธิในการเขียนแก่ไคลเอนต์และจะให้ทีอยู่ IP ของ DataNodes ทีบล็อกไฟล์จะถูกคัดลอกลงไป ซึงการเลือกทีอยู่ IP ของ
DataNodes นันจะเป็นการสุ่มตามความพร้อมใช้งาน (Availability, replication factor และ rack awareness) สมมติว่าปัจจัยการจําลองถูกตังค่าเป็นค่าเริมต้น
เป็น 3 ดังนันสําหรับแต่ละบล็อก NameNode จะให้รายการทีอยู่ IP ของ DataNodes แก่ไคลเอ็นต์ รายการจะไม่ซํากันสําหรับแต่ละบล็อก สมมติว่า NameNode
ให้รายการทีอยู่ IP ต่อไปนีแก่ไคลเอ็นต์:
สําหรับบล็อก A รายการ A = {IP ของ DataNode 1, IP ของ DataNode 4, IP ของ DataNode 6} สําหรับ Block B ให้ตังค่า B = {IP ของ DataNode 3, IP
ของ DataNode 7, IP ของ DataNode 9} แต่ละบล็อกจะถูกคัดลอกในโหนดข้อมูลทีแตกต่างกัน 3 โหนด เพือรักษา Replication Factor ทีเป็นการจําลองแบบ
ให้สอดคล้องกันทัวทังคลัสเตอร์ โดยกระบวนการคัดลอกข้อมูลทังหมดจะเกิดขึนในสามขันตอน ดังนี
1. Set up of Pipeline
2. Data streaming and replication
3. Shutdown of Pipeline (Acknowledgement stage)
https://www.edureka.co/blog/apache-hadoop-hdfs-architecture/#rack_awareness
Thinnaphat Borirak
https://www.edureka.co
Thinnaphat Borirak
https://www.edureka.co
Thinnaphat Borirak
https://www.edureka.co
Thinnaphat Borirak
https://www.edureka.co
Thinnaphat Borirak
HDFS Read Architecture
https://www.edureka.co
Thinnaphat Borirak
สรุป HDFS
1) สามารถเก็บข้อมูลไม่จํากัดปริมาณ จากความสามารถการเพิมเครือง (Node) ในการเก็บข้อมูลได้
2) คงทนต่อความล้มเหลวของเครืองเก็บข้อมูลด้วยการสําเนาข้อมูลไปยังเครืองต่าง ๆ
3) มีประสิทธิภาพในการเข้าถึงข้อมูลทีดี
4) ข้อมูลจะถูกแบ่งออกเป็น Blocks กระบวนการจัดเก็บจะส่งข้อมูลจะถูกแยกไปเก็บในแต่ละเครืองทีกําหนดเป็นเครือง
เก็บข้อมูล (DataNode)
5) HDFS จะแบ่งออกคอมโพเนนท์ ออกเป็น 2 ส่วน คือ NameNode และ DataNode
◦ NameNode 1) เป็น Directory สําหรับให้ข้อมูลว่าถ้าต้องการเรียกดูข้อมูลจะต้องไปอ่านจากเครืองเก็บข้อมูลใดบ้าง
2) ควบคุมการเข้าถึงข้อมูล (Permission) ทีเก็บในเครืองต่าง ๆ ใน Cluster
◦ DataNode (Worker Node) : ทําหน้าทีดูแลการจัดเก็บและบันทึกข้อมูลทีเป็น Block
Thinnaphat Borirak
Hadoop Ecosystem
Below are the Hadoop components, that together
form a Hadoop ecosystem,
HDFS: Hadoop Distributed File System
YARN: Yet Another Resource Negotiator
MapReduce: Data processing using programming
Spark: In-memory Data Processing
PIG, HIVE: Data Processing Services using Query
(SQL-like)
Hbase: NoSQL Database
Mahout, Spark Mllib: Machine Learning
Apache Drill: SQL on Hadoop
Oozie: Job Scheduling
Solr & Lucene: Searching & Indexing
Zookeeper: Managing Cluster
Ambari: Provision, Monitor and Maintain cluster
Flume, Sqoop: Data Ingesting Services
https://www.edureka.co
Thinnaphat Borirak
Hadoop Distributed File System (HDFS)
ส่วนประกอบแรก เป็นทีแรกทีเรานําข้อมูลเข้ามาเก็บไว้อย่าง หน่วยเก็บข้อมูล หรือทีเรียกว่า Hadoop Distributed File System (HDFS) เมือการเก็บข้อมูลขนาดใหญ่ในเครืองเดียว
นันแทบเป็นไปไม่ได้ การกระจายข้อมูลเข้าไปเก็บไว้เป็น บล็อก (Block) ในหลายๆเครือง และแบ่งไปตามขนาดจึงเป็นเรืองทีสามารถทําได้
ตัวอย่าง สมมติว่าเรามีข้อมูล 600 MB บนระบบปฏิบัติการ HDFS จะแบ่งข้อมูลออกเป็นก้อนๆ เรียก บล็อก (Block) ขนาด 128 MB เท่า ๆ กัน 4 บล็อก แล้วเก็บ 88 MB ทีเหลือ
ไว้ในบล็อกที 5 ตามรูปด้านล่าง โดยรูปแบบการจัดเก็บ ก็ได้อธิบายไปแล้ว ในหัวข้อทีผ่านมาเรืองของ Apache Hadoop Architecture ทีมีอยู่ 2 องค์ประกอบหลัก คือ NameNode กับ
DataNode
* วิธีการทํางานของ HDFS สาเหตุทีแบ่งข้อมูลออกเป็น 128 MB นันก็เพราะว่า เป็นขนาดทีกําหนดไว้ของระบบปฏิบัติการ HDFS แต่เราก็สามารถเข้าไปเปลียน ขนาดได้ถ้าต้องการ
Thinnaphat Borirak
YARN (Yet Another Resource Negotiator)
ส่วนประกอบทีสอง เป็นส่วนสําคัญมากทีสุดส่วนหนึงใน ระบบ Hadoop เพราะทําหน้าทีจัดตารางเวลาให้งาน (Task) และบริหารจัดการทรัพยากร (Resource) ต่างๆ เช่น หน่วย
เก็บข้อมูล และหน่วยประมวลผลบนระบบ ให้ทํางานได้ลืนไหล เป็นเหมือนผู้คุมงานทีคอยจัดสรรงาน และคนงาน
YARN มีส่วนประกอบหลักๆ ตามนี
Client: คนทีส่งงานทีต้องทําออกไป
Resource Manager: ทําการจัดการทรัพยากรทีมี และจํานวน Node ทียังสามารถทํางานได้
Node Manager: คอยติดตามควบคุมงานของ Container รวมถึงแบ่งทรัพยากรในการคํานวณ ใน Container รวมถึง Launch Program (Application Master)
Container: เป็น package ทีมีทรัพยากรในการคํานวณอย่าง RAM, CPU และ Network
Application Manager: ทําหน้าทีรันงานทีสังมา และคุยกับ Resource Manager เรืองทรัพยากรในการรันงาน
NOTE: เมือ Client ต้องการทํางานอย่างหนึง เช่น MapReduce
ก็จะสังงานไปที Resource Manager หลังจาก Resource
Manager เช็คความพร้อมแล้ว ก็จะติดต่อให้ Node Manager
สร้าง Container และ รัน Application Manager ในนัน
Application Manager ทําการสังการรันงานโดยตรวจสอบ
DataNode ใน HDFS แล้วแบ่งงานไปตาม Node จะมีการอัพเดท
อยู่เรือย ๆ ว่าทํางานสําเร็จหรือไม่ ถ้าล้มเหลว Application
Manager ก็จะเปลียน Container แล้วลองรันงานอีกครัง
Hadoop YARN Tutorial – Learn the Fundamentals of YARN Architecture
Thinnaphat Borirak
MapReduce
ส่วนประกอบทีสาม เป็นส่วนทีใช้ในการสังการประมวลผลข้อมูลขนาดใหญ่ ซึง
ทําได้หลากหลายโครงสร้าง ทังข้อมูลทีมีโครงสร้างชัดเจน (Structured Data)
ไปจนถึง ข้อมูลทีไม่มีโครงสร้าง (Unstructured Data) MapReduce ทําการ
ประมวลผลแบบขนานไปพร้อม ๆ กันทําให้สามารถประมวลผล วิเคราะห์ข้อมูล
ขนาดใหญ่โดยใช้คอมพิวเตอร์ทีอยู่ในระบบ (Cluster) เดียวกันได้ และยังมี
ความเร็ว (Speed) ความน่าเชือถือ (Reliability) ทีเพิมขึนอีกด้วย
MapReduce แบ่งการทํางานเป็ น 3 ส่วนหลัก คือ
1. Mapping คือเป็นส่วนแรกในกระบวนการ โดยจะทําการ แบ่ง (splitting)
และ ทําการกําหนดข้อมูล (mapping) โดยเริมจากการทีเรามีข้อมูลชุดใหญ่ชุด
หนึง แล้วนํามาแบ่งเป็นหลายส่วน เรียกว่า splitting จากนันการแตกข้อมูลให้อยู่
ในรูปแบบ key-value เรียกการ mapping
2. Shuffling คือส่วนหลังจากทําการ Mapping ให้ข้อมูลออกมาในรูปแบบ
key-value แล้ว โดยส่วนนีจะทําการจัดเรียง (sorting) และรวบรวม (merging)
ข้อมูล จากการเรียงและรวมข้อมูลทีมี key เหมือนกันให้อยู่ด้วยกัน ผลลัพธ์จาก
ขันนีก็ยังอยู่ในรูปแบบ key-value เหมือนเดิม
3. Reducing คือส่วนทีรวมผลลัพธ์ของข้อมูลทีออกมาจากการ Map และ
Shuffle เป็นการสรุปผลแต่ละกลุ่ม key-value ให้เหลือค่าเดียว
แผนภาพต่อไปนีแสดงตัวอย่างของ MapReduce ทีมีสามขันตอนหลัก จะเห็นได้ว่าใช้
MapReduce ในการนับจํานวนคําทังหมดของคําศัพท์แต่ละคําในข้อมูล
• เริมจากการแบ่งข้อมูลออกให้อยู่ในรูปแบบ key-value อย่าง (Deer, 1)
• ทําการจัดเรียง (shuffle) โดยอาศัย key ทีเหมือนๆกัน เช่น ในแต่ละกลุ่ม Deer (1, 1)
• ทําการรวมผลลัพธ์ในช่วง reduce โดยได้จํานวนคําออกมาเป็น Deer, 2
The Overall MapReduce Word Count Process
Understanding MapReduce in Hadoop
Thinnaphat Borirak
MapReduce
ส่วนประกอบทีสาม เป็นส่วนทีใช้ในการสังการประมวลผลข้อมูลขนาดใหญ่ ซึง
ทําได้หลากหลายโครงสร้าง ทังข้อมูลทีมีโครงสร้างชัดเจน (Structured Data)
ไปจนถึง ข้อมูลทีไม่มีโครงสร้าง (Unstructured Data) MapReduce ทําการ
ประมวลผลแบบขนานไปพร้อม ๆ กันทําให้สามารถประมวลผล วิเคราะห์ข้อมูล
ขนาดใหญ่โดยใช้คอมพิวเตอร์ทีอยู่ในระบบ (Cluster) เดียวกันได้ และยังมี
ความเร็ว (Speed) ความน่าเชือถือ (Reliability) ทีเพิมขึนอีกด้วย
MapReduce แบ่งการทํางานเป็ น 3 ส่วนหลัก คือ
1. Mapping คือเป็นส่วนแรกในกระบวนการ โดยจะทําการ แบ่ง (splitting)
และ ทําการกําหนดข้อมูล (mapping) โดยเริมจากการทีเรามีข้อมูลชุดใหญ่ชุด
หนึง แล้วนํามาแบ่งเป็นหลายส่วน เรียกว่า splitting จากนันการแตกข้อมูลให้อยู่
ในรูปแบบ key-value เรียกการ mapping
2. Shuffling คือส่วนหลังจากทําการ Mapping ให้ข้อมูลออกมาในรูปแบบ
key-value แล้ว โดยส่วนนีจะทําการจัดเรียง (sorting) และรวบรวม (merging)
ข้อมูล จากการเรียงและรวมข้อมูลทีมี key เหมือนกันให้อยู่ด้วยกัน ผลลัพธ์จาก
ขันนีก็ยังอยู่ในรูปแบบ key-value เหมือนเดิม
3. Reducing คือส่วนทีรวมผลลัพธ์ของข้อมูลทีออกมาจากการ Map และ
Shuffle เป็นการสรุปผลแต่ละกลุ่ม key-value ให้เหลือค่าเดียว
แผนภาพต่อไปนีแสดงตัวอย่างของ MapReduce ทีมีสามขันตอนหลัก จะเห็นได้ว่าใช้
MapReduce ในการนับจํานวนคําทังหมดของคําศัพท์แต่ละคําในข้อมูล
• เริมจากการแบ่งข้อมูลออกให้อยู่ในรูปแบบ key-value อย่าง (Deer, 1)
• ทําการจัดเรียง (shuffle) โดยอาศัย key ทีเหมือนๆกัน เช่น ในแต่ละกลุ่ม Deer (1, 1)
• ทําการรวมผลลัพธ์ในช่วง reduce โดยได้จํานวนคําออกมาเป็น Deer, 2
The Overall MapReduce Word Count Process
Understanding MapReduce in Hadoop
กรณีตัวอย่างของนักเรียนตามแผนกต่าง ๆ ทีต้องการให้มีการคํานวณจํานวนนักศึกษาในแต่ละ
แผนก ในเบืองต้น การ Mapping จะดําเนินการและคํานวณนักศึกษาทีปรากฎในแต่ละแผนก
โดยสร้างคู่ค่าคีย์ โดยคู่ค่าคีย์ (Key-Value) นีจะเป็นอินพุตของ Reduce Function ซึง Reduce
Function จะรวมแต่ละแผนกและคํานวณจํานวนนักเรียนทังหมดในแต่ละแผนกและให้ผลลัพธ์
มีค่าตามตารางดังนี
Thinnaphat Borirak
Assignment 2
ให้ยกตัวอย่างการประมวลผลข้อมูลทีใช้หลักการของ MapReduce เพือวิเคราะห์ข้อมูล โดยแสดง
ออกมาในรูปของแผนภาพ ตังแต่การรับค่า Input / Splitting / Mapping / Shuffling / Reducing จน
ได้ผลลัพธ์ ในลักษณะ Key-Value
Answer:
Thinnaphat Borirak
Apache Project ของโปรแกรมในด้านอืนๆ ของ Hadoop
Thinnaphat Borirak
Thinnaphat Borirak
Hadoop มีวิธีจัดการกับ Big Data อย่างไร
Hadoop มีความสามารถในการรองรับปริมาณของข้อมูลทีมีจํานวน
มากได้ เนืองจาก Hadoop มี HDFS ทีสามารถรองรับไฟล์ขนาดใหญ่
แถมยังมี ecosystem ทีเอาไว้จัดการข้อมูลทีมีแนวโน้มจะเพิมมากขึน
อย่าง HBase หรือ Cassandra เป็นต้น
อัตราการเพิมของข้อมูลทีเพิมขึนอย่างรวดเร็ว ข้อมูลทีไหล
มาเป็น streaming หรือ ข้อมูลทีต้องจัดการแบบ real-time
Hadoop ก็มีเครืองมือเอาไว้จัดการกับสิงเหล่านี อย่างเช่น
Storm หรือ Kafka เป็นต้น
สามารถจัดการความหลากหลายของข้อมูลได้ด้วย HDFS ซึงรองรับไฟล์ทุกรูปแบบอยู่
แล้ว และถ้าพูดถึงข้อมูลทีไม่มีโครงสร้างหรือมีโครงสร้างทีปรับเปลียนได้ (เช่น XML
หรือ JSON) ก็สามารถจัดเก็บข้อมูลลักษณะนีได้ด้วยความสามารถของฐานข้อมูลแบบ
NoSQL อย่าง Cassandra
ส่วนความน่าเชือถือของข้อมูล ต้องใช้ความสามารถของผู้เชียวชาญ
หรือ data scientist หรือผู้ทีมีหน้าทีดูแลข้อมูลเพือเป็นคนจัดการ
หรือตัดสินใจได้ว่า ข้อมูลไหนเชือถือได้หรือเชือถือไม่ได้
คุณค่าทีได้จากข้อมูล หรือการทําข้อมูลให้เกิดคุณประโยชน์ต่อผู้ใช้ ซึง
จําเป็นต้องใช้ความรู้เรือง Machine Learning หรือ Data Mining เพือ
มาสร้างองค์ความรู้ใหม่ๆจากข้อมูลทีจัดเก็บไว้จํานวนมาก Hadoop
ก็ยังมี ecosystem ทีคอยอํานวยความสะดวกโดยมีเครืองมือหรือ
Library ทีจะมาช่วยสร้างโมเดลของ Machine Learning ไม่ว่าจะเป็น
Apache Mahout หรือ Spark MLlib (เป็น module ตัวหนึงใน
Apache Spark) ทีใช้สําหรับสร้างโมเดลดังกล่าว
Thinnaphat Borirak
Assignment 3
ให้ทําการระบุมาอย่างละ 3 ข้อว่าเมือไหร่ทีควรนํา Hadoop มาใช้ และเมือไหร่ทีไม่ควรนํา Hadoop มา
ใช้งาน
Answer:
เมือใดควรใช้ก็เพือการประมวลผลข้อมูลขนาดใหญ่จริงๆ สําหรับจัดเก็บข้อมูลชุดอุปกรณ์ สําหรับการ
ประมวลผลข้อมูลแบบคู่ขนาน
เมือใดทีไม่ควรใช้ Hadoop เพือการวิเคราะห์ข้อมูลแบบเรียลไทม์ สําหรับระบบฐานข้อมูลเชิงสัมพันธ์
สําหรับระบบไฟล์เครือข่ายทัวไป สําหรับการประมวลผลข้อมูลแบบไม่ขนาน
Thinnaphat Borirak
Workshop
3. LITERATURE REVIEW ON BIG DATA
WITH HADOOP
https://scholar.google.com/
1. Create a Group
2. Think of a Topic
Internet of Things for Human Healthcare Services and Data Analytics with Hadoop
Sentiment Analysis On Twitter Posts Using Hadoop
Thinnaphat Borirak
Thinnaphat Borirak

More Related Content

Similar to Managing Big Data with Apache Hadoop.pdf

Introduction to PHP programming
Introduction to PHP programmingIntroduction to PHP programming
Introduction to PHP programming
Rachabodin Suwannakanthi
 
ICT with Web site
ICT with Web siteICT with Web site
ICT with Web site
Boonlert Aroonpiboon
 
สร้างเว็บไซต์ด้วยWordpress
สร้างเว็บไซต์ด้วยWordpressสร้างเว็บไซต์ด้วยWordpress
สร้างเว็บไซต์ด้วยWordpresskruburapha2012
 
20110201 drupal-ir
20110201 drupal-ir20110201 drupal-ir
20110201 drupal-ir
Boonlert Aroonpiboon
 
joomla-2-5-install-appserv
joomla-2-5-install-appservjoomla-2-5-install-appserv
joomla-2-5-install-appserv
Boonlert Aroonpiboon
 
Database Tuning for e-Learning
Database Tuning for e-LearningDatabase Tuning for e-Learning
Database Tuning for e-Learning
Denpong Soodphakdee
 
Big data 101
Big data 101Big data 101
Big data 101
Somkiat Puisungnoen
 
MongoDB Atlas Search
MongoDB Atlas SearchMongoDB Atlas Search
MongoDB Atlas Search
Piti Champeethong
 
Wordpress 3.5 -install-appserv
Wordpress 3.5 -install-appservWordpress 3.5 -install-appserv
Wordpress 3.5 -install-appserv
Boonlert Aroonpiboon
 
Server2Go เว็บพกพาตัวจริง
Server2Go เว็บพกพาตัวจริงServer2Go เว็บพกพาตัวจริง
Server2Go เว็บพกพาตัวจริง
Boonlert Aroonpiboon
 
CloudComputing
CloudComputingCloudComputing
Building ec
Building ecBuilding ec
Portable Moodle : Moodle & Server2Go
Portable Moodle  : Moodle & Server2GoPortable Moodle  : Moodle & Server2Go
Portable Moodle : Moodle & Server2Go
Boonlert Aroonpiboon
 
นุ๊ก
นุ๊กนุ๊ก
นุ๊กsirinet
 
หวิว
หวิวหวิว
หวิวViewMik
 
รออกแบบเว็บไซต์
รออกแบบเว็บไซต์รออกแบบเว็บไซต์
รออกแบบเว็บไซต์sirinet
 

Similar to Managing Big Data with Apache Hadoop.pdf (20)

Introduction to PHP programming
Introduction to PHP programmingIntroduction to PHP programming
Introduction to PHP programming
 
Proposal
ProposalProposal
Proposal
 
ICT with Web site
ICT with Web siteICT with Web site
ICT with Web site
 
สร้างเว็บไซต์ด้วยWordpress
สร้างเว็บไซต์ด้วยWordpressสร้างเว็บไซต์ด้วยWordpress
สร้างเว็บไซต์ด้วยWordpress
 
20110201 drupal-ir
20110201 drupal-ir20110201 drupal-ir
20110201 drupal-ir
 
joomla-2-5-install-appserv
joomla-2-5-install-appservjoomla-2-5-install-appserv
joomla-2-5-install-appserv
 
Database Tuning for e-Learning
Database Tuning for e-LearningDatabase Tuning for e-Learning
Database Tuning for e-Learning
 
Big data 101
Big data 101Big data 101
Big data 101
 
MongoDB Atlas Search
MongoDB Atlas SearchMongoDB Atlas Search
MongoDB Atlas Search
 
Wordpress 3.5 -install-appserv
Wordpress 3.5 -install-appservWordpress 3.5 -install-appserv
Wordpress 3.5 -install-appserv
 
Server2Go เว็บพกพาตัวจริง
Server2Go เว็บพกพาตัวจริงServer2Go เว็บพกพาตัวจริง
Server2Go เว็บพกพาตัวจริง
 
CloudComputing
CloudComputingCloudComputing
CloudComputing
 
Building ec
Building ecBuilding ec
Building ec
 
ILS 4 Library
ILS 4 LibraryILS 4 Library
ILS 4 Library
 
Portable Moodle : Moodle & Server2Go
Portable Moodle  : Moodle & Server2GoPortable Moodle  : Moodle & Server2Go
Portable Moodle : Moodle & Server2Go
 
นุ๊ก
นุ๊กนุ๊ก
นุ๊ก
 
หวิว
หวิวหวิว
หวิว
 
รออกแบบเว็บไซต์
รออกแบบเว็บไซต์รออกแบบเว็บไซต์
รออกแบบเว็บไซต์
 
โบ
โบโบ
โบ
 
Best
BestBest
Best
 

More from NETsolutions Asia: NSA – Thailand, Sripatum University: SPU

More from NETsolutions Asia: NSA – Thailand, Sripatum University: SPU (12)

Introduction-Management NoSQL with MongoDB.pdf
Introduction-Management NoSQL with MongoDB.pdfIntroduction-Management NoSQL with MongoDB.pdf
Introduction-Management NoSQL with MongoDB.pdf
 
Les12 creating views
Les12 creating viewsLes12 creating views
Les12 creating views
 
Les09 Manipulating Data
Les09 Manipulating DataLes09 Manipulating Data
Les09 Manipulating Data
 
Les04 Displaying Data From Multiple Table
Les04 Displaying Data From Multiple TableLes04 Displaying Data From Multiple Table
Les04 Displaying Data From Multiple Table
 
Les11 Including Constraints
Les11 Including ConstraintsLes11 Including Constraints
Les11 Including Constraints
 
Les10 Creating And Managing Tables
Les10 Creating And Managing TablesLes10 Creating And Managing Tables
Les10 Creating And Managing Tables
 
Les02 Restricting And Sorting Data
Les02 Restricting And Sorting DataLes02 Restricting And Sorting Data
Les02 Restricting And Sorting Data
 
Les00 Intoduction
Les00 IntoductionLes00 Intoduction
Les00 Intoduction
 
Les06 Subqueries
Les06 SubqueriesLes06 Subqueries
Les06 Subqueries
 
Les05 Aggregating Data Using Group Function
Les05 Aggregating Data Using Group FunctionLes05 Aggregating Data Using Group Function
Les05 Aggregating Data Using Group Function
 
Les01 Writing Basic Sql Statements
Les01 Writing Basic Sql StatementsLes01 Writing Basic Sql Statements
Les01 Writing Basic Sql Statements
 
Les03 Single Row Function
Les03 Single Row FunctionLes03 Single Row Function
Les03 Single Row Function
 

Managing Big Data with Apache Hadoop.pdf

  • 1. MANAGING BIG DATA WITH APACHE HADOOP Thinnaphat Borirak 50177004-Big Data Analytics
  • 2. HTTPS://EN.WIKIPEDIA.ORG/WIKI/APACHE_HADOOP ปัจจุบันนี การจัดการข้อมูลขนาดใหญ่หรือทีเรียกกันว่า Big Data นัน บางส่วนอาจไม่สามารถทําได้โดย SQL Database เนืองจาก SQL Database ในปัจจุบันนีถูกออกแบบมาในรูปแบบของ Centralization Database เป็นเวลานานแล้ว ในขณะทีความต้องการการใช้ข้อมูลกลับ มีเพิมขึนเรือย ๆ จน SQL Database แบบเดิมไม่อาจรับได้ไหว ดังนัน แนวคิดในการทํา Distributed Computing จึงเกิดขึนมา และ Apache Hadoop เองก็มีบทบาทในด้านนีอย่างมาก Thinnaphat Borirak
  • 3. APACHE HADOOP คือโครงการ OPENSOURCE SOFTWARE สําหรับการสร้างระบบ DISTRIBUTED COMPUTING ทีมีความเสถียรสูง และสามารถเพิมขยายได้อย่างมหาศาล โดยตัวอย่างของผู้ทีใช้งาน Apache Hadoop นันมีดังนี Facebook จะมี Apache Hadoop Cluster อยู่ด้วยกัน 2 ชุด ชุดแรกประกอบจาก Server จํานวน 1,100 เครือง, CPU 8,800 Cores และพืนที 12PB (12,000TB) และชุดทีสองประกอบจาก Server จํานวน 300 เครือง, CPU 2,400 Cores และพืนที 3PB (3,000TB) Yahoo! นันใช้ Server มากกว่า 40,000 เครือง, CPU มากกว่า 100,000 ชุดสําหรับรองรับระบบ Ads และ Web Search Thinnaphat Borirak
  • 4. APACHE HADOOP คือโครงการ OPENSOURCE SOFTWARE สําหรับการสร้างระบบ DISTRIBUTED COMPUTING ทีมีความเสถียรสูง และสามารถเพิมขยายได้อย่างมหาศาล โดยตัวอย่างของผู้ทีใช้งาน Apache Hadoop นันมีดังนี Facebook จะมี Apache Hadoop Cluster อยู่ด้วยกัน 2 ชุด ชุดแรกประกอบจาก Server จํานวน 1,100 เครือง, CPU 8,800 Cores และพืนที 12PB (12,000TB) และชุดทีสองประกอบจาก Server จํานวน 300 เครือง, CPU 2,400 Cores และพืนที 3PB (3,000TB) Yahoo! นันใช้ Server มากกว่า 40,000 เครือง, CPU มากกว่า 100,000 ชุดสําหรับรองรับระบบ Ads และ Web Search นอกจากนียังมีผู้ให้บริการรายใหญ่ๆ มากมายอย่าง Twitter, ImageShack, Adobe, AOL และอืนๆ อีกมากมายทีใช้ Apache Hadoop ในการจัดเก็บข้อมูลแทนฐานข้อมูลแบบ SQL รวมถึง Microsoft เองก็มีแผนทีจะให้ MS SQL สามารถทํางานเชือมต่อกับ Apache Hadoop ได้เช่นกัน อีกทังผู้ผลิตรายใหญ่ๆ อย่าง IBM และ Supermicro เองก็ให้การ สนับสนุน Apache Hadoop กันเป็นอย่างมากอีกด้วย ส่วนในวงการการศึกษาและทางภาคธุรกิจเอง Apache Hadoop ถือเป็นทางเลือกทีดีในงานหลายๆ ประเภท ไม่ว่าจะเป็นงานประมวลผลประสิทธิภาพสูง (High Performance Computing), Scientific Computing, Image Processing, Information Retrieval, Machine Learning, Social Network Analysis, Data Mining, Business Intelligence (BI), Network Security, Sensor Data Storage, Biomedical, Statistic, Machine Translation, Language Modeling, Bioinformatic, Email Analysis และอืนๆ อีกมากมาย และแนวโน้มการเติบโตของ Apache Hadoop ก็จะยังคงมีต่อไปเรือย ๆ Thinnaphat Borirak
  • 5. อุปกรณ์สําหรับใช้งาน Apache Hadoop เนืองจาก Apache Hadoop นันเป็น Opensource ทีสามารถทํางานร่วมกันได้กับทัง Linux และ Microsoft Windows โดยเรียกใช้งานผ่านภาษา Java เป็น หลัก ดังนัน Apache Hadoop จึงสามารถทํางานบนเครืองคอมพิวเตอร์ได้หลากหลาย โดยต้องทําการเลือกสเปค (Specification) สําหรับอุปกรณ์ที เหมาะสมสําหรับแต่ละหน้าทีใน Cluster ของ Apache Hadoop เพือใช้ในการติดตังให้ดี ทังนีสามารถทําการติดตังเพือทดสอบการใช้งาน ผ่าน Visualization ได้ตามความเหมาะสมของอุปกรณ์นัน ทีอเมริกา Supermicro เป็น Server ทีได้รับความนิยมอย่างสูงสําหรับทํา Apache Hadoop มาก เนืองจากมีความหลากหลายของ Hardware ทีสามารถ ปรับแต่งและเลือกใช้ให้เหมาะสมกับแต่ละหน้าทีใน Hadoop และแต่ละ Project ทีแตกต่างกันได้ ทาง Supermicro จึงได้จัดชุดของ Hardware ทีเหมาะ สําหรับการทํา Apache Hadoop มาดังนี Apache Hadoop Name Node –สําหรับทําหน้าทีเป็น Apache Hadoop Name Node ติดตัง CPU Intel E5600 1 ชุด, หน่วยความจํา 48GB และ Hard Drive แบบ 147GB SAS 15k 2 ชุด Apache Hadoop Data Node 1U – เป็น Server ขนาด 1U สําหรับทําหน้าทีเป็น Apache Hadoop Data Node ติดตัง CPU Intel E5600 1 ชุด, หน่วยความจํา 24GB และ Hard Drive แบบ 2TB SATA จํานวน 4 ชุด รวมพืนที 8TB ต่อ 1U เหมาะสําหรับระบบทีต้องการลงทุนเริมต้นทีละเล็กน้อย Apache Hadoop Data Node 2U – เป็น Server ขนาด 2U สําหรับทําหน้าทีเป็น Apache Hadoop Data Node ติดตัง CPU Intel E5600 1 ชุด, หน่วยความจํา 24GB และ Hard Drive แบบ 2TB SATA จํานวน 12 ชุด รวมพืนที 24TB ต่อ 2U เหมาะสําหรับระบบทีต้องการใช้พืนทีขนาดใหญ่ Apache Hadoop Twin Data Node 2U – เป็น Twin Server ขนาด 2U สําหรับทําหน้าทีเป็น Apache Hadoop Data Node มี Server 2 ชุดแบบ Hot Swap โดยแต่ละชุดติดตัง CPU Intel E5600 1 ชุด, หน่วยความจํา 24GB และ Hard Drive แบบ 2TB SATA จํานวน 12 ชุด รวมพืนที 24TB ต่อ 2U เหมาะ สําหรับระบบทีต้องการใช้พืนทีขนาดใหญ่ และต้องการหน่วยประมวลผลจํานวนมาก Thinnaphat Borirak
  • 6. อุปกรณ์สําหรับใช้งาน Apache Hadoop เนืองจาก Apache Hadoop นันเป็น Opensource ทีสามารถทํางานร่วมกันได้กับทัง Linux และ Microsoft Windows โดยเรียกใช้งานผ่านภาษา Java เป็น หลัก ดังนัน Apache Hadoop จึงสามารถทํางานบนเครืองคอมพิวเตอร์ได้หลากหลาย โดยต้องทําการเลือกสเปค (Specification) สําหรับอุปกรณ์ที เหมาะสมสําหรับแต่ละหน้าทีใน Cluster ของ Apache Hadoop เพือใช้ในการติดตังให้ดี ทังนีสามารถทําการติดตังเพือทดสอบการใช้งาน ผ่าน Visualization ได้ตามความเหมาะสมของอุปกรณ์นัน ทีอเมริกา Supermicro เป็น Server ทีได้รับความนิยมอย่างสูงสําหรับทํา Apache Hadoop มาก เนืองจากมีความหลากหลายของ Hardware ทีสามารถ ปรับแต่งและเลือกใช้ให้เหมาะสมกับแต่ละหน้าทีใน Hadoop และแต่ละ Project ทีแตกต่างกันได้ ทาง Supermicro จึงได้จัดชุดของ Hardware ทีเหมาะ สําหรับการทํา Apache Hadoop มาดังนี Apache Hadoop Name Node –สําหรับทําหน้าทีเป็น Apache Hadoop Name Node ติดตัง CPU Intel E5600 1 ชุด, หน่วยความจํา 48GB และ Hard Drive แบบ 147GB SAS 15k 2 ชุด Apache Hadoop Data Node 1U – เป็น Server ขนาด 1U สําหรับทําหน้าทีเป็น Apache Hadoop Data Node ติดตัง CPU Intel E5600 1 ชุด, หน่วยความจํา 24GB และ Hard Drive แบบ 2TB SATA จํานวน 4 ชุด รวมพืนที 8TB ต่อ 1U เหมาะสําหรับระบบทีต้องการลงทุนเริมต้นทีละเล็กน้อย Apache Hadoop Data Node 2U – เป็น Server ขนาด 2U สําหรับทําหน้าทีเป็น Apache Hadoop Data Node ติดตัง CPU Intel E5600 1 ชุด, หน่วยความจํา 24GB และ Hard Drive แบบ 2TB SATA จํานวน 12 ชุด รวมพืนที 24TB ต่อ 2U เหมาะสําหรับระบบทีต้องการใช้พืนทีขนาดใหญ่ Apache Hadoop Twin Data Node 2U – เป็น Twin Server ขนาด 2U สําหรับทําหน้าทีเป็น Apache Hadoop Data Node มี Server 2 ชุดแบบ Hot Swap โดยแต่ละชุดติดตัง CPU Intel E5600 1 ชุด, หน่วยความจํา 24GB และ Hard Drive แบบ 2TB SATA จํานวน 12 ชุด รวมพืนที 24TB ต่อ 2U เหมาะ สําหรับระบบทีต้องการใช้พืนทีขนาดใหญ่ และต้องการหน่วยประมวลผลจํานวนมาก IPMI Server Management – เป็นระบบสําหรับบริหารจัดการ Server จากระยะไกล โดยสามารถทํา Remote KVM-over- LAN และ Virtual Media-over-LAN เพือให้สามารถบริหารจัดการได้เสมือนทํางานอยู่ทีหน้าเครือง Server แต่ละเครืองได้ ผ่านทาง LAN โดยไม่ต้องมี Hardware ต่อพ่วงเพิมเติม Thinnaphat Borirak
  • 7. Hadoop: An Industry Perspective ในอนาคต APACHE HADOOP และ BIG DATA SOLUTION จะกลายเป็ นสิงทีเข้ามามีบทบาทในระดับ ENTERPRISE มากขึน เรือย ๆ โดยค่าใช้จ่ายของอุปกรณ์คอมพิวเตอร์ทีใช้ในองค์กร โดยรวมจะประหยัดกว่าระบบจัดเก็บข้อมูลแบบในปั จจุบัน เนื องจากการนํา SERVER มาใช้งานในลักษณะ CLOUD ทําให้สามารถตัดค่าใช้จ่ายหรือลดต้นทุนของระบบจัดเก็บข้อมูล แบบ SAN STORAGE หรือ NAS STORAGE ได้ โดยมีความสามารถในการเก็บรักษาข้อมูลในระดับทีสูงขึนอีกด้วย ดังนันการเลือกใช้อุปกรณ์คอมพิวเตอร์ให้เหมาะสมในระบบคลาวด์ (CLOUD) จึงกลายเป็ นสิงสําคัญตามมา ในขณะทีผู้ดูแล ระบบเองก็ควรจะต้องเริมศึกษาเทคโนโลยีใหม่ ๆ เพิมเติมนอกเหนื อจาก SQL DATABASE แบบเดิม ๆ ด้วยเช่นกัน https://www.slideshare.net/cloudera/hadoop-an-industry-perspective Thinnaphat Borirak
  • 8. Assignment 1 นอกจากบริษัท Facebook กับ Yahoo ทีผมเสนอมาแล้วนันว่าเป็นบริษัทฯ ทีใช้ระบบจัดการฐานข้อมูล ของ Apache Hadoop ในการวิเคราะห์ข้อมูลแบบ Un-Structure ดังนันจึงอยากทราบว่ามีบริษัทฯ ใดอีก บ้างทีใช้รูปแบบการประมวลผลเบืองหลังเป็น Apache Hadoop มาทํา Commercial Distribution ลอง เสนอมาสัก 3 ตัวอย่าง ว่า บริษัทเหล่านัน ใช้ประโยชน์อะไรจาก Hadoop Answer: eBay, Amazon (Elastic Map Reduce), Cloudera , MapR, IBM Infoshphere BigInsight, Hortonwork ทีนํามา Hadoop มาทํา Commercial Distribution Thinnaphat Borirak
  • 9. What is Hadoop ? หลังจากทีพวกเราทราบแล้วว่า Big Data คืออะไร ใช้ทําอะไรได้บ้าง แล้วมีรูปแบบการจัดเก็บและใช้งานฐานข้อมูลแบบ RDBMS, MongoDB มาแล้ว ทีนีเรามาดูกันต่อว่าและ Hadoop คืออะไร เกียวข้องอย่างไรกับ Big Data โดยตามหลักการ ของ Hadoop นันคือ Java programming framework ทีรองรับการทํางานทีต้องประมวลผลและเก็บข้อมูลขนาดใหญ่ ซึง เป็นส่วนหนึงของ Apache Project โดย Hadoop ถูกออกแบบมาให้เป็น Application ทีสามารถทํางานได้บนระบบต่างๆ แบบ Node หรือมีเครืองคอมพิวเตอร์จํานวนหลายๆ เครืองมาประมวลผลพร้อมกันในรูปแบบของไฟล์ เพือรองรับชุด ข้อมูลขนาดใหญ่ ซึงจะใช้รูปแบบของการจัดการไฟล์ โดยระบบจะทําการแตกไฟล์ออกกระจายไปตาม Node ต่าง ๆ เพือให้สามารถทํางานได้รวดเร็ว พร้อมทังส่งข้อมูลหากันระหว่าง Node ทังหมด รวมถึงมีความสามารถในการจัดการ Node ทีเสียหายได้โดยไม่ทําให้เกิดข้อมูลสูญหายระหว่างการจัดเก็บเพือประมวลผลข้อมูลนัน NOTE: ปัจจุบัน Hadoop ถูกนํามาใช้ในงาน Big Data จําพวกการคํานวณข้อมูลทางวิทยาศาสตร์เฉพาะทาง หรือใช้ใน เชิงธุรกิจ รวมถึงการวางแผนการขาย หรือใช้ในการประมวลผลข้อมูลจากเซ็นเซอร์ (Sensor) ต่าง ๆ ทีเป็นจํานวนมาก โดยจะเรียกว่าไอโอที (IOT-internet of things) Thinnaphat Borirak
  • 10. History of Hadoop Hadoop ถูกสร้างขึนโดยนาย Doug Cutting และ Mike Cafarella ในปี 2006 ซึงทํางานที Nutch search engine โดยเค้าได้ idea มาจาก Google’s Mapreduce ซึงเป็น software framework ทีทําการแตก application ออกเป็นส่วนเล็ก ๆ จํานวนมาก เรียกว่า fragment หรือ block ทีสามารถทํางานบน node แต่ละตัว โดยรวมกันเป็น cluster และ ทําให้เกิด Hadoop Version 1.0 ขึนมาช่วง พฤศจิกายน 2012 โดยเป็น ส่วนหนึงใน Apache project (พนักงานของ Yahoo) และตังชือตามช้าง ของเล่นของลูกชาย Doug ตังแต่ทีเริมประกาศโปรแกรม Hadoop Version 1.0 ออกไป ก็ยังถูก พัฒนาอย่างต่อเนืองจนมาถึง Hadoop Version 2.0 ซึงพัฒนาในเรืองการ จัดการทรัพยากรได้ดีขึน โดยบริษัทต่าง ๆ สามารถนําเอา Hadoop มาใช้ งานใน Data Center ได้ สามารถขยายเพิมได้ในรูปแบบ Cloud Service อย่างเช่น Amazon Web services (AWS), Google Cloud Platform และ Microsoft Azure ซึงเดียวนีบริษัทส่วนมากก็รองรับการทํางานของ โปรแกรม Hadoop กันหมดแล้ว Doug Cutting Mike Cafarella Dec 2004 – Google GFS paper published July 2005 – Nutch uses MapReduce Feb 2006 – Starts as a Lucene subproject Apr 2007 – Yahoo! on 1000-node cluster Jan 2008 – An Apache Top Level Project Jul 2008 – A 4000 node test cluster May 2009 – Hadoop sorts Petabyte in 17 hours Published: 2022-07-29 | Version: 3.3.4 Thinnaphat Borirak
  • 11. Hadoop VS. RDBMS RDBMS Hadoop Scale-up Scale-out Tables Key/value pairs Say what you want (SQL) Say how to process the data Online/real-time Offline/batch Hadoop Version 1 จะมีองค์ประกอบหลัก 2 ส่วนก่อนพัฒนาเป็น Version 2 คือ •HDFS (Hadoop Distribution File System) ทีทําหน้าทีเป็นส่วนเก็บข้อมูลซึงจะ เก็บข้อมูลขนาดใหญ่ทีจะแบ่งเป็นไฟล์ย่อยขนาดใหญ่เก็บลงใน Data Node จํานวน มาก โดยจะมี Master Node ทีทําหน้าทีระบุตําแหน่งของข้อมูลทีเก็บใน Data node •Map/Reduce จะเป็นส่วนประมวลผลข้อมูล ทีนักพัฒนาสามารถเขียนโปรแกรม โดยใช้ภาษาจาวามาวิเคราะห์ข้อมูลในรูปแบบของฟังก์ชันการ Map และ Reduce ได้ โดยระบบก็จะกระจาย Task ไปรันแบบ Parallel บนเครืองหลายๆ เครือง NOTE: ข้อมูลทีเก็บอยู่ใน HDFS จะไม่ใช่รูปแบบ Table อย่างทีเก็บ ในฐานข้อมูล RDBMS จะเหมาะกับการเก็บข้อมูลขนาดใหญ่มากที ไม่ต้องมีการเปลียนแปลง และไม่สามารถอ่านหรือเขียนข้อมูลแบบ Random Access ได้ ส่วนการประมวลผลแบบ Map/Reduce ก็ ไม่ใช่ real-time Online แบบ SQL ของ RDBMS แต่จะเป็นแบบ Batch Offline ใช้เวลาพอสมควรขึนอยู่กับขนาดข้อมูล Hadoop Feature Releases NOTE: Any Apps Can Integrate With Hadoop V 2.0 + Thinnaphat Borirak
  • 12. Hadoop VS. RDBMS RDBMS Hadoop Scale-up Scale-out Tables Key/value pairs Say what you want (SQL) Say how to process the data Online/real-time Offline/batch Hadoop Version 1 จะมีองค์ประกอบหลัก 2 ส่วนก่อนพัฒนาเป็น Version 2 คือ •HDFS (Hadoop Distribution File System) ทีทําหน้าทีเป็นส่วนเก็บข้อมูลซึงจะ เก็บข้อมูลขนาดใหญ่ทีจะแบ่งเป็นไฟล์ย่อยขนาดใหญ่เก็บลงใน Data Node จํานวน มาก โดยจะมี Master Node ทีทําหน้าทีระบุตําแหน่งของข้อมูลทีเก็บใน Data node •Map/Reduce จะเป็นส่วนประมวลผลข้อมูล ทีนักพัฒนาสามารถเขียนโปรแกรม โดยใช้ภาษาจาวามาวิเคราะห์ข้อมูลในรูปแบบของฟังก์ชันการ Map และ Reduce ได้ โดยระบบก็จะกระจาย Task ไปรันแบบ Parallel บนเครืองหลายๆ เครือง NOTE: ข้อมูลทีเก็บอยู่ใน HDFS จะไม่ใช่รูปแบบ Table อย่างทีเก็บ ในฐานข้อมูล RDBMS จะเหมาะกับการเก็บข้อมูลขนาดใหญ่มากที ไม่ต้องมีการเปลียนแปลง และไม่สามารถอ่านหรือเขียนข้อมูลแบบ Random Access ได้ ส่วนการประมวลผลแบบ Map/Reduce ก็ ไม่ใช่ real-time Online แบบ SQL ของ RDBMS แต่จะเป็นแบบ Batch Offline ใช้เวลาพอสมควรขึนอยู่กับขนาดข้อมูล Hadoop Feature Releases NOTE: Any Apps Can Integrate With Hadoop V 2.0 + Hadoop 1.0 มีข้อจํากัดหลายด้าน เช่น ระบบการสํารองของ Secondary Master เป็นแบบ Passive และไม่สามารถทํา Multiple Master ได้จึงจํากัดเครือง Slave ไว้ไม่เกิน 4,000 เครือง และขัอ สําคัญการประมวลผลต้องใช้ Map/Reduce ทีเป็นแบบ Batch ดังนันจึงมีการพัฒนา Hadoop 2.0 ทีจะลดข้อจํากัดต่าง ๆ ใน เวอร์ชันแรก Hadoop เวอร์ชันนีจึงมีสถาปัตยกรรมดังรูป โดยมีการ นํา Data Operating System ทีเรียกว่า YARN (Yet Another Resource Negotiator) Thinnaphat Borirak
  • 14. Hadoop System ระบบ Hadoop เองจะมีองค์ประกอบหลักอยู่แค่สองส่วนคือ HDFS และ Map/Reduce ซึงค่อนข้างจะไม่สะดวกกับ ผู้ใช้งานทีมีความต้องการอืน ๆ เช่น การประมวลผลโดยใช้ภาษา SQL การเขียนหรืออ่านข้อมูลแบบ Random access หรือการถ่ายโอนข้อมูลจากทีอืน ๆ จึงมีการพัฒนา Project อืน ๆ ทีมาทํางานร่วมกับ Hadoop เพือให้ได้ประสิทธิภาพดี ยิงขึน โดยมุ่งเน้นทางด้านต่าง ๆ ให้เกิดประโยชน์ อาทิเช่น 1. ความเร็ว (Speed): สามารถประมวลผลข้อมูลทังแบบมีโครงสร้างและไม่มีโครงสร้างได้ภายในเวลาอันสัน 2. ทนทานต่อความเสียหาย (Fault-tolerance): สามารถทํางานต่อได้แม้จะเกิดความขัดข้องขึน 3. ข้อมูลพร้อมใช้งานตลอดเวลา (Data Availability): มีข้อมูลทีทําสําเนาและกระจายไปยัง Node อืนๆ ทําให้มันใจได้ว่า ข้อมูลจะไม่หายไปไหน 4. ประมวลผลแบบขนาน (Parallel Processing): ประมวลผลข้อมูลแบบขนานกับไปกับงานอืนๆได้ในชุดเดียวกัน ทําให้ ทํางานได้ไวขึน Thinnaphat Borirak
  • 15. สถาปัตยกรรมฮาร์ดแวร์ของระบบ Hadoop จะประกอบด้วย เครือง Server จํานวนมาก โดยจะมีเครืองหนึงทําหน้าทีเป็น Master และจะมีเครืองลูกอีกจํานวนมากทําหน้าทีเป็น Slave โดยปกติ Hadoop จะกําหนดให้ข้อมูลทีเก็บในเครือง Slave มี การเก็บข้อมูลซํากันสามแห่ง ดังนันเครือง Slave ควรจะมีอย่าง น้อยสามเครือง ส่วนเครือง Master ก็จะทําหน้าทีหลักในการ ระบุตําแหน่งของข้อมูลและ Task ทีกระจายในการประมวลผล ของ Map/Reduce ดังนันเครือง Master จึงมีความสําคัญอย่าง มาก และต้องมีเครือง Secondary ในการทีจะสํารองไว้ในกรณี เครือง Master Down ไป ดังนันระบบ Hadoop โดยทัวไปจะ เริมต้นทีเครือง Server 5 เครือง สําหรับ Master หนึงเครือง, Secondary หนึงเครือง และ Slave สามเครือง โดยหากต้องการ เก็บข้อมูลมากขึนหรือต้องการประมวลผลข้อมูลให้เร็วขึนก็ต้อง เพิมจํานวนเครือง Slave ให้มากขึน ทังนีขนาดของข้อมูลทีเก็บ ได้ก็จะขึนอยู่กับขนาดความจุข้อมูลของเครือง Slave รวมกัน หารด้วยจํานวนข้อมูลทีต้องการเก็บซํา (default คือ 3) ซึงการ เก็บข้อมูลจํานวนเป็น Petabyte ได้ก็ต้องมีเครืองเป็นจํานวน มากกว่าร้อยเครือง โดยปัจจุบัน Yahoo เป็น site ทีมี Hadoop Cluster ใหญ่ทีสุด โดยมีเครืองจํานวนถึง 40,000 เครือง Apache Hadoop Network Architecture Work Node Hadoop Cluster Thinnaphat Borirak
  • 16. What is NameNode NameNode-it is also known as Master in Hadoop Cluster. Below Listed Are The Main Function Performed By Namenode: • Namenode Stores Metadata Of Actual Data. E.G. Filename, Path, No. Of Blocks, Bolck Ids, Block Location, No. Of Replicas, And Also Slave Related Configuration. • It Manages Filesystem Namespace. • Namenode Regulates Client Access To Files. • It Assigns Work To Slaves (Datanode) • It Executes File System Namespace Operation Like Opening/Closing Files, Renaming Files/Directory • As Namenode Keep Metadata In Memory For Fast Retrieval. So It Requires The Huge Amount Of Memory For Its Operation. https://phoenixnap.com/kb/apache-hadoop-architecture-explained Thinnaphat Borirak
  • 17. What is Secondary NameNode It as A backup node. *NameNode Holds the metadate for HDFS like block information, size etc. This information is stored in main memory as well as disk for persistence storage. The information is stored in 2 different files. o Editlogs- It keep track of each and every changes to HDFS. o Fsimage-It stores the snapshort of the file system https://www.edureka.co/community/49846/explain-the-difference-between-name-node-secondary-name-node Thinnaphat Borirak
  • 18. What is DataNode DataNode is also Known as Slave node. • In Hadoop HDFS Architecture, DataNode Stores actual data in HDFS • DataNode responsible for serving, read and write requests for the clients. • DataNode can deploy on Community hardware • DataNode sends Information to the NameNode about the files and block stored in that node and responds to the NameNode for all filesystem operation. • When a DataNode starts up it announce itself to the NameNode along with the list of blocks it is responsible for. • DataNode is usually configured with a lot of hard disk space. Because the actual data is stored in the DataNode. Thinnaphat Borirak
  • 20. • HDFS stores the data in form of blocks • Block size can be configured base on requirements, but the default size of each block is 128 MB in Apache 2.x (64 MB in Apache Hadoop 1.x) • Can configure the block size as per our requirement by changing the dfs.block.size property in hdfs-site.xml HDFS Data Blocks Fault Tolerance HDFS Replication  Thinnaphat Borirak
  • 21. HDFS Write Architecture ตัวอย่าง HDFS Client ต้องการเขียนไฟล์ชือ “example.txt” ขนาด 248 MB ขนาดบล็อกของระบบจะถูกกําหนดค่าเป็น 128 MB (ค่าเริมต้น) ฉะนัน Client จะ แบ่งไฟล์ “example.txt” ออกเป็น 2 บล็อค โดยอันหนึงมีขนาด 128 MB (บล็อค A) และอีกอันมีขนาด 120 MB (บล็อค B) ดังนัน เมือข้อมูลถูกเขียนลงใน HDFS จะมีขันตอนตามนี คือ ในขันตอนแรก HDFS Client จะติดต่อไปยัง NameNode เพือขอบันทึก 2 บล็อก เช่น บล็อก A และบล็อก B จากนัน NameNode จะให้สิทธิในการเขียนแก่ไคลเอนต์และจะให้ทีอยู่ IP ของ DataNodes ทีบล็อกไฟล์จะถูกคัดลอกลงไป ซึงการเลือกทีอยู่ IP ของ DataNodes นันจะเป็นการสุ่มตามความพร้อมใช้งาน (Availability, replication factor และ rack awareness) สมมติว่าปัจจัยการจําลองถูกตังค่าเป็นค่าเริมต้น เป็น 3 ดังนันสําหรับแต่ละบล็อก NameNode จะให้รายการทีอยู่ IP ของ DataNodes แก่ไคลเอ็นต์ รายการจะไม่ซํากันสําหรับแต่ละบล็อก สมมติว่า NameNode ให้รายการทีอยู่ IP ต่อไปนีแก่ไคลเอ็นต์: สําหรับบล็อก A รายการ A = {IP ของ DataNode 1, IP ของ DataNode 4, IP ของ DataNode 6} สําหรับ Block B ให้ตังค่า B = {IP ของ DataNode 3, IP ของ DataNode 7, IP ของ DataNode 9} แต่ละบล็อกจะถูกคัดลอกในโหนดข้อมูลทีแตกต่างกัน 3 โหนด เพือรักษา Replication Factor ทีเป็นการจําลองแบบ ให้สอดคล้องกันทัวทังคลัสเตอร์ โดยกระบวนการคัดลอกข้อมูลทังหมดจะเกิดขึนในสามขันตอน ดังนี 1. Set up of Pipeline 2. Data streaming and replication 3. Shutdown of Pipeline (Acknowledgement stage) https://www.edureka.co/blog/apache-hadoop-hdfs-architecture/#rack_awareness Thinnaphat Borirak
  • 27. สรุป HDFS 1) สามารถเก็บข้อมูลไม่จํากัดปริมาณ จากความสามารถการเพิมเครือง (Node) ในการเก็บข้อมูลได้ 2) คงทนต่อความล้มเหลวของเครืองเก็บข้อมูลด้วยการสําเนาข้อมูลไปยังเครืองต่าง ๆ 3) มีประสิทธิภาพในการเข้าถึงข้อมูลทีดี 4) ข้อมูลจะถูกแบ่งออกเป็น Blocks กระบวนการจัดเก็บจะส่งข้อมูลจะถูกแยกไปเก็บในแต่ละเครืองทีกําหนดเป็นเครือง เก็บข้อมูล (DataNode) 5) HDFS จะแบ่งออกคอมโพเนนท์ ออกเป็น 2 ส่วน คือ NameNode และ DataNode ◦ NameNode 1) เป็น Directory สําหรับให้ข้อมูลว่าถ้าต้องการเรียกดูข้อมูลจะต้องไปอ่านจากเครืองเก็บข้อมูลใดบ้าง 2) ควบคุมการเข้าถึงข้อมูล (Permission) ทีเก็บในเครืองต่าง ๆ ใน Cluster ◦ DataNode (Worker Node) : ทําหน้าทีดูแลการจัดเก็บและบันทึกข้อมูลทีเป็น Block Thinnaphat Borirak
  • 28. Hadoop Ecosystem Below are the Hadoop components, that together form a Hadoop ecosystem, HDFS: Hadoop Distributed File System YARN: Yet Another Resource Negotiator MapReduce: Data processing using programming Spark: In-memory Data Processing PIG, HIVE: Data Processing Services using Query (SQL-like) Hbase: NoSQL Database Mahout, Spark Mllib: Machine Learning Apache Drill: SQL on Hadoop Oozie: Job Scheduling Solr & Lucene: Searching & Indexing Zookeeper: Managing Cluster Ambari: Provision, Monitor and Maintain cluster Flume, Sqoop: Data Ingesting Services https://www.edureka.co Thinnaphat Borirak
  • 29. Hadoop Distributed File System (HDFS) ส่วนประกอบแรก เป็นทีแรกทีเรานําข้อมูลเข้ามาเก็บไว้อย่าง หน่วยเก็บข้อมูล หรือทีเรียกว่า Hadoop Distributed File System (HDFS) เมือการเก็บข้อมูลขนาดใหญ่ในเครืองเดียว นันแทบเป็นไปไม่ได้ การกระจายข้อมูลเข้าไปเก็บไว้เป็น บล็อก (Block) ในหลายๆเครือง และแบ่งไปตามขนาดจึงเป็นเรืองทีสามารถทําได้ ตัวอย่าง สมมติว่าเรามีข้อมูล 600 MB บนระบบปฏิบัติการ HDFS จะแบ่งข้อมูลออกเป็นก้อนๆ เรียก บล็อก (Block) ขนาด 128 MB เท่า ๆ กัน 4 บล็อก แล้วเก็บ 88 MB ทีเหลือ ไว้ในบล็อกที 5 ตามรูปด้านล่าง โดยรูปแบบการจัดเก็บ ก็ได้อธิบายไปแล้ว ในหัวข้อทีผ่านมาเรืองของ Apache Hadoop Architecture ทีมีอยู่ 2 องค์ประกอบหลัก คือ NameNode กับ DataNode * วิธีการทํางานของ HDFS สาเหตุทีแบ่งข้อมูลออกเป็น 128 MB นันก็เพราะว่า เป็นขนาดทีกําหนดไว้ของระบบปฏิบัติการ HDFS แต่เราก็สามารถเข้าไปเปลียน ขนาดได้ถ้าต้องการ Thinnaphat Borirak
  • 30. YARN (Yet Another Resource Negotiator) ส่วนประกอบทีสอง เป็นส่วนสําคัญมากทีสุดส่วนหนึงใน ระบบ Hadoop เพราะทําหน้าทีจัดตารางเวลาให้งาน (Task) และบริหารจัดการทรัพยากร (Resource) ต่างๆ เช่น หน่วย เก็บข้อมูล และหน่วยประมวลผลบนระบบ ให้ทํางานได้ลืนไหล เป็นเหมือนผู้คุมงานทีคอยจัดสรรงาน และคนงาน YARN มีส่วนประกอบหลักๆ ตามนี Client: คนทีส่งงานทีต้องทําออกไป Resource Manager: ทําการจัดการทรัพยากรทีมี และจํานวน Node ทียังสามารถทํางานได้ Node Manager: คอยติดตามควบคุมงานของ Container รวมถึงแบ่งทรัพยากรในการคํานวณ ใน Container รวมถึง Launch Program (Application Master) Container: เป็น package ทีมีทรัพยากรในการคํานวณอย่าง RAM, CPU และ Network Application Manager: ทําหน้าทีรันงานทีสังมา และคุยกับ Resource Manager เรืองทรัพยากรในการรันงาน NOTE: เมือ Client ต้องการทํางานอย่างหนึง เช่น MapReduce ก็จะสังงานไปที Resource Manager หลังจาก Resource Manager เช็คความพร้อมแล้ว ก็จะติดต่อให้ Node Manager สร้าง Container และ รัน Application Manager ในนัน Application Manager ทําการสังการรันงานโดยตรวจสอบ DataNode ใน HDFS แล้วแบ่งงานไปตาม Node จะมีการอัพเดท อยู่เรือย ๆ ว่าทํางานสําเร็จหรือไม่ ถ้าล้มเหลว Application Manager ก็จะเปลียน Container แล้วลองรันงานอีกครัง Hadoop YARN Tutorial – Learn the Fundamentals of YARN Architecture Thinnaphat Borirak
  • 31. MapReduce ส่วนประกอบทีสาม เป็นส่วนทีใช้ในการสังการประมวลผลข้อมูลขนาดใหญ่ ซึง ทําได้หลากหลายโครงสร้าง ทังข้อมูลทีมีโครงสร้างชัดเจน (Structured Data) ไปจนถึง ข้อมูลทีไม่มีโครงสร้าง (Unstructured Data) MapReduce ทําการ ประมวลผลแบบขนานไปพร้อม ๆ กันทําให้สามารถประมวลผล วิเคราะห์ข้อมูล ขนาดใหญ่โดยใช้คอมพิวเตอร์ทีอยู่ในระบบ (Cluster) เดียวกันได้ และยังมี ความเร็ว (Speed) ความน่าเชือถือ (Reliability) ทีเพิมขึนอีกด้วย MapReduce แบ่งการทํางานเป็ น 3 ส่วนหลัก คือ 1. Mapping คือเป็นส่วนแรกในกระบวนการ โดยจะทําการ แบ่ง (splitting) และ ทําการกําหนดข้อมูล (mapping) โดยเริมจากการทีเรามีข้อมูลชุดใหญ่ชุด หนึง แล้วนํามาแบ่งเป็นหลายส่วน เรียกว่า splitting จากนันการแตกข้อมูลให้อยู่ ในรูปแบบ key-value เรียกการ mapping 2. Shuffling คือส่วนหลังจากทําการ Mapping ให้ข้อมูลออกมาในรูปแบบ key-value แล้ว โดยส่วนนีจะทําการจัดเรียง (sorting) และรวบรวม (merging) ข้อมูล จากการเรียงและรวมข้อมูลทีมี key เหมือนกันให้อยู่ด้วยกัน ผลลัพธ์จาก ขันนีก็ยังอยู่ในรูปแบบ key-value เหมือนเดิม 3. Reducing คือส่วนทีรวมผลลัพธ์ของข้อมูลทีออกมาจากการ Map และ Shuffle เป็นการสรุปผลแต่ละกลุ่ม key-value ให้เหลือค่าเดียว แผนภาพต่อไปนีแสดงตัวอย่างของ MapReduce ทีมีสามขันตอนหลัก จะเห็นได้ว่าใช้ MapReduce ในการนับจํานวนคําทังหมดของคําศัพท์แต่ละคําในข้อมูล • เริมจากการแบ่งข้อมูลออกให้อยู่ในรูปแบบ key-value อย่าง (Deer, 1) • ทําการจัดเรียง (shuffle) โดยอาศัย key ทีเหมือนๆกัน เช่น ในแต่ละกลุ่ม Deer (1, 1) • ทําการรวมผลลัพธ์ในช่วง reduce โดยได้จํานวนคําออกมาเป็น Deer, 2 The Overall MapReduce Word Count Process Understanding MapReduce in Hadoop Thinnaphat Borirak
  • 32. MapReduce ส่วนประกอบทีสาม เป็นส่วนทีใช้ในการสังการประมวลผลข้อมูลขนาดใหญ่ ซึง ทําได้หลากหลายโครงสร้าง ทังข้อมูลทีมีโครงสร้างชัดเจน (Structured Data) ไปจนถึง ข้อมูลทีไม่มีโครงสร้าง (Unstructured Data) MapReduce ทําการ ประมวลผลแบบขนานไปพร้อม ๆ กันทําให้สามารถประมวลผล วิเคราะห์ข้อมูล ขนาดใหญ่โดยใช้คอมพิวเตอร์ทีอยู่ในระบบ (Cluster) เดียวกันได้ และยังมี ความเร็ว (Speed) ความน่าเชือถือ (Reliability) ทีเพิมขึนอีกด้วย MapReduce แบ่งการทํางานเป็ น 3 ส่วนหลัก คือ 1. Mapping คือเป็นส่วนแรกในกระบวนการ โดยจะทําการ แบ่ง (splitting) และ ทําการกําหนดข้อมูล (mapping) โดยเริมจากการทีเรามีข้อมูลชุดใหญ่ชุด หนึง แล้วนํามาแบ่งเป็นหลายส่วน เรียกว่า splitting จากนันการแตกข้อมูลให้อยู่ ในรูปแบบ key-value เรียกการ mapping 2. Shuffling คือส่วนหลังจากทําการ Mapping ให้ข้อมูลออกมาในรูปแบบ key-value แล้ว โดยส่วนนีจะทําการจัดเรียง (sorting) และรวบรวม (merging) ข้อมูล จากการเรียงและรวมข้อมูลทีมี key เหมือนกันให้อยู่ด้วยกัน ผลลัพธ์จาก ขันนีก็ยังอยู่ในรูปแบบ key-value เหมือนเดิม 3. Reducing คือส่วนทีรวมผลลัพธ์ของข้อมูลทีออกมาจากการ Map และ Shuffle เป็นการสรุปผลแต่ละกลุ่ม key-value ให้เหลือค่าเดียว แผนภาพต่อไปนีแสดงตัวอย่างของ MapReduce ทีมีสามขันตอนหลัก จะเห็นได้ว่าใช้ MapReduce ในการนับจํานวนคําทังหมดของคําศัพท์แต่ละคําในข้อมูล • เริมจากการแบ่งข้อมูลออกให้อยู่ในรูปแบบ key-value อย่าง (Deer, 1) • ทําการจัดเรียง (shuffle) โดยอาศัย key ทีเหมือนๆกัน เช่น ในแต่ละกลุ่ม Deer (1, 1) • ทําการรวมผลลัพธ์ในช่วง reduce โดยได้จํานวนคําออกมาเป็น Deer, 2 The Overall MapReduce Word Count Process Understanding MapReduce in Hadoop กรณีตัวอย่างของนักเรียนตามแผนกต่าง ๆ ทีต้องการให้มีการคํานวณจํานวนนักศึกษาในแต่ละ แผนก ในเบืองต้น การ Mapping จะดําเนินการและคํานวณนักศึกษาทีปรากฎในแต่ละแผนก โดยสร้างคู่ค่าคีย์ โดยคู่ค่าคีย์ (Key-Value) นีจะเป็นอินพุตของ Reduce Function ซึง Reduce Function จะรวมแต่ละแผนกและคํานวณจํานวนนักเรียนทังหมดในแต่ละแผนกและให้ผลลัพธ์ มีค่าตามตารางดังนี Thinnaphat Borirak
  • 33. Assignment 2 ให้ยกตัวอย่างการประมวลผลข้อมูลทีใช้หลักการของ MapReduce เพือวิเคราะห์ข้อมูล โดยแสดง ออกมาในรูปของแผนภาพ ตังแต่การรับค่า Input / Splitting / Mapping / Shuffling / Reducing จน ได้ผลลัพธ์ ในลักษณะ Key-Value Answer: Thinnaphat Borirak
  • 36. Hadoop มีวิธีจัดการกับ Big Data อย่างไร Hadoop มีความสามารถในการรองรับปริมาณของข้อมูลทีมีจํานวน มากได้ เนืองจาก Hadoop มี HDFS ทีสามารถรองรับไฟล์ขนาดใหญ่ แถมยังมี ecosystem ทีเอาไว้จัดการข้อมูลทีมีแนวโน้มจะเพิมมากขึน อย่าง HBase หรือ Cassandra เป็นต้น อัตราการเพิมของข้อมูลทีเพิมขึนอย่างรวดเร็ว ข้อมูลทีไหล มาเป็น streaming หรือ ข้อมูลทีต้องจัดการแบบ real-time Hadoop ก็มีเครืองมือเอาไว้จัดการกับสิงเหล่านี อย่างเช่น Storm หรือ Kafka เป็นต้น สามารถจัดการความหลากหลายของข้อมูลได้ด้วย HDFS ซึงรองรับไฟล์ทุกรูปแบบอยู่ แล้ว และถ้าพูดถึงข้อมูลทีไม่มีโครงสร้างหรือมีโครงสร้างทีปรับเปลียนได้ (เช่น XML หรือ JSON) ก็สามารถจัดเก็บข้อมูลลักษณะนีได้ด้วยความสามารถของฐานข้อมูลแบบ NoSQL อย่าง Cassandra ส่วนความน่าเชือถือของข้อมูล ต้องใช้ความสามารถของผู้เชียวชาญ หรือ data scientist หรือผู้ทีมีหน้าทีดูแลข้อมูลเพือเป็นคนจัดการ หรือตัดสินใจได้ว่า ข้อมูลไหนเชือถือได้หรือเชือถือไม่ได้ คุณค่าทีได้จากข้อมูล หรือการทําข้อมูลให้เกิดคุณประโยชน์ต่อผู้ใช้ ซึง จําเป็นต้องใช้ความรู้เรือง Machine Learning หรือ Data Mining เพือ มาสร้างองค์ความรู้ใหม่ๆจากข้อมูลทีจัดเก็บไว้จํานวนมาก Hadoop ก็ยังมี ecosystem ทีคอยอํานวยความสะดวกโดยมีเครืองมือหรือ Library ทีจะมาช่วยสร้างโมเดลของ Machine Learning ไม่ว่าจะเป็น Apache Mahout หรือ Spark MLlib (เป็น module ตัวหนึงใน Apache Spark) ทีใช้สําหรับสร้างโมเดลดังกล่าว Thinnaphat Borirak
  • 37. Assignment 3 ให้ทําการระบุมาอย่างละ 3 ข้อว่าเมือไหร่ทีควรนํา Hadoop มาใช้ และเมือไหร่ทีไม่ควรนํา Hadoop มา ใช้งาน Answer: เมือใดควรใช้ก็เพือการประมวลผลข้อมูลขนาดใหญ่จริงๆ สําหรับจัดเก็บข้อมูลชุดอุปกรณ์ สําหรับการ ประมวลผลข้อมูลแบบคู่ขนาน เมือใดทีไม่ควรใช้ Hadoop เพือการวิเคราะห์ข้อมูลแบบเรียลไทม์ สําหรับระบบฐานข้อมูลเชิงสัมพันธ์ สําหรับระบบไฟล์เครือข่ายทัวไป สําหรับการประมวลผลข้อมูลแบบไม่ขนาน Thinnaphat Borirak
  • 38. Workshop 3. LITERATURE REVIEW ON BIG DATA WITH HADOOP https://scholar.google.com/ 1. Create a Group 2. Think of a Topic Internet of Things for Human Healthcare Services and Data Analytics with Hadoop Sentiment Analysis On Twitter Posts Using Hadoop Thinnaphat Borirak
  • 39.