បញ្ហា (The Problem)៖ ការកំណត់រចនាសម្ព័ន្ធកាលវិភាគតាមបែបប្រពៃណីរបស់ Hadoop ជួបប្រទះការលំបាកក្នុងការបង្កើនប្រសិទ្ធភាពនៅក្នុងចង្កោម (Cluster) ដែលប្រើប្រាស់កុំព្យូទ័រប្រភេទ Single-Board Computer (SBC) ចម្រុះ ដោយសារតែភាពខុសគ្នានៃធនធានកុំព្យូទ័រ (CPU និង Memory)។
វិធីសាស្ត្រ (The Methodology)៖ ការសិក្សានេះស្នើឡើងនូវយន្តការកំណត់កាលវិភាគថ្មីមួយ ដោយប្រើប្រាស់ស្លាកសម្គាល់ថ្នាំង (Node Labels) និងសន្ទស្សន៍សន្សំសំចៃ (Frugality Index) ដើម្បីចាត់ថ្នាក់ថ្នាំង SBC តាមសមត្ថភាព និងកែសម្រួលការបែងចែកធនធានដោយស្វ័យប្រវត្តិ។
លទ្ធផលសំខាន់ៗ (The Verdict)៖
| វិធីសាស្ត្រ (Method) | គុណសម្បត្តិ (Pros) | គុណវិបត្តិ (Cons) | លទ្ធផលគន្លឹះ (Key Result) |
|---|---|---|---|
| Adaptive Frugal Configuration (Proposed) ការកំណត់រចនាសម្ព័ន្ធសន្សំសំចៃតាមតម្រូវការ (Adaptive Frugal Configuration) ដោយប្រើ Frugality Index |
ការពារការប្រើប្រាស់ធនធានហួសកម្រិតលើថ្នាំងដែលមានសមត្ថភាពទាប (Low-end nodes) និងបង្កើនល្បឿនប្រតិបត្តិការសរុប។ | ទាមទារការកំណត់រចនាសម្ព័ន្ធស្មុគស្មាញជាងការកំណត់ដើម និងត្រូវការ script បន្ថែមដើម្បីគណនា Findex។ | លឿនជាងការកំណត់ល្អបំផុតរបស់ Capacity Scheduler ចំនួន ៥៦% និងលឿនជាង FIFO ២២%។ |
| Native Capacity Scheduler កាលវិភាគសមត្ថភាពដើមរបស់ Hadoop (Native Capacity Scheduler) |
ជាស្តង់ដាររបស់ Hadoop ដែលអនុញ្ញាតឱ្យមានការចែករំលែកធនធានក្នុងចំណោមអ្នកប្រើប្រាស់ច្រើន។ | មិនចេះបែងចែករវាងថ្នាំងខ្លាំង និងខ្សោយ ដែលបណ្តាលឱ្យមានការផ្ទុកលើសលើឧបករណ៍ដូចជា Raspberry Pi 3B។ | ដំណើរការយឺតជាង និងងាយជួបបញ្ហាគាំង (Crash) នៅពេលដំណើរការលើឧបករណ៍ដែលមាន RAM តិច (១ GB)។ |
| Native FIFO Scheduler កាលវិភាគបម្រើតាមលំដាប់មុនក្រោយ (Native FIFO Scheduler) |
ងាយស្រួលក្នុងការកំណត់ និងដំណើរការតាមលំដាប់ដែលបានដាក់ចូល។ | អាចបណ្តាលឱ្យការងារធំៗរាំងស្ទះការងារតូចៗ និងមិនមានប្រសិទ្ធភាពក្នុងការប្រើប្រាស់ធនធានចម្រុះ។ | មានប្រសិទ្ធភាពទាបជាងវិធីសាស្ត្រដែលបានស្នើឡើង ជាពិសេសក្នុងការគ្រប់គ្រងការងារដែលត្រូវការ CPU ខ្លាំង។ |
ការចំណាយលើធនធាន (Resource Cost)៖ ការសិក្សានេះប្រើប្រាស់ថវិកាតិច និងថាមពលទាប ដែលសមស្របសម្រាប់ការស្រាវជ្រាវក្នុងប្រទេសកំពុងអភិវឌ្ឍន៍។
ការសិក្សានេះធ្វើឡើងនៅក្នុងមន្ទីរពិសោធន៍ដោយប្រើទិន្នន័យ Benchmark សិប្បនិម្មិត (Terasort និង WordCount) ជំនួសឱ្យទិន្នន័យជាក់ស្តែងពីឧស្សាហកម្ម។ ទោះជាយ៉ាងណាក៏ដោយ នេះគឺជាស្តង់ដារសម្រាប់ការវាស់វែងប្រសិទ្ធភាពប្រព័ន្ធ ហើយលទ្ធផលគឺមានសារៈសំខាន់សម្រាប់បរិបទនៃ Edge Computing នៅកម្ពុជា។
វិធីសាស្ត្រនេះមានប្រយោជន៍ខ្ពស់សម្រាប់កម្ពុជា ជាពិសេសសម្រាប់ការកាត់បន្ថយថ្លៃដើមក្នុងការបង្កើតហេដ្ឋារចនាសម្ព័ន្ធ Big Data។
ការប្រើប្រាស់ SBC ក្នុងការគណនាបែប Distributed Systems គឺជាដំណោះស្រាយដ៏ល្អសម្រាប់ប្រទេសកម្ពុជា ដើម្បីចាប់ផ្តើមពង្រឹងសមត្ថភាពផ្នែក Data Science ដោយមិនត្រូវការការវិនិយោគធំដុំ។
ដើម្បីអនុវត្តតាមការសិក្សានេះ និស្សិតគួរអនុវត្តតាមជំហានខាងក្រោម៖
| ពាក្យបច្ចេកទេស | ការពន្យល់ជាខេមរភាសា (Khmer Explanation) | និយមន័យសាមញ្ញ (Simple Definition) |
|---|---|---|
| Single-board computers (SBCs) | ជាកុំព្យូទ័រពេញលេញដែលត្រូវបានបង្កើតឡើងនៅលើបន្ទះសៀគ្វីតែមួយ មានទំហំតូច និងប្រើប្រាស់ថាមពលតិច។ នៅក្នុងការសិក្សានេះ វាត្រូវបានគេប្រើដើម្បីបង្កើតជាក្រុមបណ្តាញកុំព្យូទ័រ (Cluster) សម្រាប់ការគណនាទិន្នន័យដែលមានតម្លៃសមរម្យ និងសន្សំសំចៃអគ្គិសនី។ | ដូចជាកុំព្យូទ័រខ្នាតតូចប៉ុនបាតដៃ ដែលមានតម្លៃថោក និងអាចធ្វើការងារបានដូចកុំព្យូទ័រធំៗដែរ ប៉ុន្តែស៊ីភ្លើងតិចជាង។ |
| Heterogeneous Clusters | សំដៅលើប្រព័ន្ធបណ្តាញកុំព្យូទ័រដែលភ្ជាប់គ្នា ប៉ុន្តែកុំព្យូទ័រនីមួយៗ (Node) មានសមត្ថភាពមិនស្មើគ្នា (ខ្លះលឿន ខ្លះយឺត ខ្លះមាន RAM ធំ ខ្លះតូច) ដែលធ្វើឱ្យការបែងចែកការងារឱ្យស្មើគ្នាមានការលំបាក។ | ដូចជាក្រុមការងារមួយដែលមានមនុស្សចម្រុះគ្នា ខ្លះជាមនុស្សចាស់ដែលមានកម្លាំងខ្លាំង និងខ្លះជាក្មេងដែលមានកម្លាំងតិច ធ្វើការរួមគ្នា។ |
| Hadoop YARN | ជាប្រព័ន្ធគ្រប់គ្រងធនធានស្នូលនៅក្នុង Hadoop ដែលមានតួនាទីចាត់ចែង CPU និង Memory ទៅឱ្យកម្មវិធីផ្សេងៗ។ នៅក្នុងការសិក្សានេះ វាត្រូវបានកែសម្រួលដើម្បីឱ្យវាស្គាល់ពីកម្រិតសមត្ថភាពរបស់កុំព្យូទ័រតូចៗ (SBCs)។ | ប្រៀបបានទៅនឹងអ្នកចាត់ការទូទៅនៅក្នុងរោងចក្រ ដែលមានតួនាទីបែងចែកភារកិច្ចឱ្យបុគ្គលិកម្នាក់ៗធ្វើ ដើម្បីកុំឱ្យនរណាម្នាក់ទំនេរ ឬធ្វើការហួសកម្លាំង។ |
| Frugality Index (Findex) | ជាកម្រិតរង្វាស់ថ្មីមួយដែលអ្នកស្រាវជ្រាវបង្កើតឡើង ដើម្បីកំណត់ចំណាត់ថ្នាក់កុំព្យូទ័រនៅក្នុងបណ្តាញ ដោយផ្អែកលើសមត្ថភាពរបស់វា (ដូចជា CPU និង Memory)។ វាជួយឱ្យប្រព័ន្ធដឹងថា កុំព្យូទ័រណាគួរទទួលការងារច្រើន និងមួយណាគួរទទួលតិច។ | ដូចជាការបិទស្លាកលើឡានដឹកទំនិញ ដើម្បីកំណត់ថាឡានណាអាចដឹកបានធ្ងន់ និងឡានណាដឹកបានតែស្រាលៗ ដើម្បីកុំឱ្យខូចឡាន។ |
| MapReduce | ជាគំរូនៃការសរសេរកម្មវិធីសម្រាប់ដំណើរការទិន្នន័យខ្នាតធំ ដោយបំបែកការងារជាចំណែកតូចៗ (Map) ឱ្យកុំព្យូទ័រច្រើនធ្វើព្រមគ្នា ហើយបន្ទាប់មកប្រមូលលទ្ធផលមករួមបញ្ចូលគ្នាវិញ (Reduce)។ | ដូចជាការចែកសន្លឹកឆ្នោតទៅឱ្យមនុស្សច្រើននាក់ជួយរាប់រៀងៗខ្លួន (Map) រួចយកលទ្ធផលពីមនុស្សម្នាក់ៗមកបូកបញ្ចូលគ្នាដើម្បីរកលទ្ធផលចុងក្រោយ (Reduce)។ |
អត្ថបទដែលបានបោះពុម្ពនៅលើ KhmerResearch ដែលទាក់ទងនឹងប្រធានបទនេះ៖
ប្រធានបទ និងសំណួរស្រាវជ្រាវដែលទាក់ទងនឹងឯកសារនេះ ដែលអ្នកអាចស្វែងរកបន្ថែម៖