यदि आपके पास एक पुराना लैपटॉप या मशीन पड़ी हुई है और धूल जमा हो रही है, तो आप इसका पुन: उपयोग करना चाहेंगे। क्या विश्लेषणात्मक प्रसंस्करण के लिए एक तेज़ SQL डेटाबेस (उदाहरण के लिए तदर्थ रिपोर्ट उत्पन्न करने के लिए) अच्छा लगता है? अगर ऐसा है तो पढ़ते रहिये!
इस लेख में, मैं आपको दिखाऊंगा कि कैसे एक पुराने लैपटॉप को धूल चटाएं और इसे रॉकी लिनक्स और डॉकर के शीर्ष पर एनालिटिक्स के लिए एक समर्पित डेटाबेस सर्वर के रूप में पुन: व्यवस्थित करें।
मैंने इस Lenovo Thinkpad T440s का उपयोग Intel® Core™ i7 प्रोसेसर, 8 GB DDR3L-SDRAM, और 256 GB SSD के साथ किया है:
रॉकी लिनक्स और डॉकर क्यों?
रॉकी लिनक्स, CentOS की निरंतरता है, जो एक ओपन-सोर्स एंटरप्राइज ऑपरेटिंग सिस्टम है जो Red Hat Enterprise Linux (RHEL) के साथ संगत है।
यह अच्छी सुरक्षा और प्रशासन सुविधाएँ प्रदान करता है, और चूंकि यह आरएचईएल पर आधारित है, इसलिए इसके चारों ओर एक विशाल और सक्रिय समुदाय है।
डॉकर वर्चुअलाइजेशन सॉफ्टवेयर है जो हार्डवेयर को वर्चुअलाइज किए बिना लिनक्स सिस्टम के शीर्ष पर चलता है। यह पृथक वातावरण के लाभों को बनाए रखते हुए उपलब्ध संसाधनों का अनुकूलन करता है।
यदि आप चाहें तो आप अपनी नियमित रोजमर्रा की मशीन पर डॉकर स्थापित कर सकते हैं, लेकिन यदि आपके पास रॉकी लिनक्स चलाने के लिए आवश्यक न्यूनतम हार्डवेयर वाला पुराना लैपटॉप है, तो मेरा सुझाव है कि इसका लाभ उठाएं।
इससे पहले कि आप शुरू करें
शुरू करने से पहले, अपनी पुरानी मशीन में मौजूद किसी भी महत्वपूर्ण फाइल का बैकअप लेना सुनिश्चित करें।
Google ड्राइव, ड्रॉपबॉक्स या बाहरी हार्ड ड्राइव जैसे ऑनलाइन टूल का उपयोग करें। इस कार्य के लिए 1 या 2 घंटे विशेष रूप से असाइन करें। फ़ाइल सिस्टम का अन्वेषण करें और बाद में अप्रिय आश्चर्य से बचें।
रॉकी लिनक्स स्थापित करना
मैं रॉकी लिनक्स को स्थापित करने के तरीके के विवरण के माध्यम से नहीं जाऊंगा। यदि आप विस्तृत निर्देश देखना चाहते हैं तो आधिकारिक दस्तावेज देखें।
हालाँकि, स्थापना GUI में DHCP (या यदि आप चाहें तो ईथरनेट) के साथ वाई-फाई कनेक्शन को कॉन्फ़िगर करना सुनिश्चित करें।
आपको अतिरिक्त उपयोगकर्ता बनाने की आवश्यकता नहीं है, root
पर्याप्त है। साथ ही, GUI विकल्प के साथ सर्वर स्थापित न करें। इसके बजाय, मैं कस्टम ऑपरेटिंग सिस्टम का चयन करने और निम्नलिखित सॉफ़्टवेयर जोड़ने की अनुशंसा करता हूं:
- नेतृत्वहीन प्रबंधन
- सुरक्षा उपकरण
- सिस्टम टूल्स
प्रक्रिया को पूरा करने के लिए स्थापना निर्देशों का पालन करें।
स्टेटिक आईपी के साथ वाई-फाई कनेक्शन को कॉन्फ़िगर करना
यदि आपने स्थापना के दौरान वाई-फाई कनेक्शन कॉन्फ़िगर किया है, तो आपको कुछ अतिरिक्त कदम उठाने होंगे।
ईथरनेट केबल का उपयोग करके मशीन को अपने राउटर से कनेक्ट करें।
encli connection
चलाएँ और ईथरनेट कनेक्शन नाम पर ध्यान दें। मेरे मामले में, यह enp0s25 था।
nmcli connection up enp0s25
चलाकर कनेक्शन को सक्षम करें (अपने कनेक्शन के नाम का उपयोग करें)।
yum install NetworkManager-wifi
चलाकर लापता वाई-फाई उपयोगिता स्थापित करेंईथरनेट केबल को डिस्कनेक्ट करें।
reboot
चलाकर मशीन को पुनरारंभ करें।
एक बार मशीन के पुनरारंभ होने के बाद, रूट के रूप में लॉगिन करें और जांचें कि
ping google.com
चलाकर वाई-फाई कनेक्शन काम कर रहा है।
dnf install NetworkManager-tui
का उपयोग करके नेटवर्क प्रबंधन UI स्थापित करें।
मैन्युअल स्थिर IP का उपयोग करने के लिए
nmtui
चलाएँ और Wi-Fi कनेक्शन संपादित करें। मैंने सर्वर का पता 192.168.1.200/24 के रूप में सेट किया और गेटवे और डीएनएस सर्वर जोड़े जो मुझे उसी नेटवर्क में किसी अन्य (macOS) मशीन सेifconfig
का उपयोग करके मिले। Linux परip addr
या विंडोज़ परipconfig
का उपयोग करें। यहाँ एक उदाहरण है:
ढक्कन बंद होने पर लैपटॉप को निलंबित होने से रोकना
ढक्कन बंद होने पर लैपटॉप को स्वचालित रूप से निलंबित मोड में जाने से बचने के लिए, /etc/systemd/logind.conf
फ़ाइल को संपादित करें और निम्नलिखित गुण सेट करें (आप vi
का उपयोग कर सकते हैं या yum install nano
का उपयोग करके GNU नैनो स्थापित कर सकते हैं):
[Login] HandleLidSwitch=lock LidSwitchIgnoreInhibited=no
रिबूट पर पिछले परिवर्तनों को संरक्षित करने के लिए, systemctl restart systemd-logind.service
।
दोबारा जांचें कि आपकी मशीन को रीबूट करके सब कुछ काम करता है।
SSH का उपयोग कर सर्वर से कनेक्ट करना
इस बिंदु पर, आप अपनी दिन-प्रतिदिन की मशीन पर जा सकते हैं और SSH का उपयोग करके नए सर्वर से जुड़ सकते हैं:
ssh [email protected]
आप अपने क्लाइंट मशीन पर एक होस्टनाम भी निर्दिष्ट कर सकते हैं। /etc/hosts फ़ाइल (यूनिक्स जैसी मशीनें) या c:\Windows\System32\drivers\etc\hosts फ़ाइल (Windows पर) संपादित करें, और निम्न पंक्ति जोड़ें (किसी भी नाम का उपयोग करें जो आप चाहते हैं लेकिन स्थिर IP पता निर्दिष्ट करें) जिसे आपने पहले कॉन्फ़िगर किया था):
192.168.1.200 pickanyname.local
यदि आप आईपी पते के बजाय होस्टनाम का उपयोग करना चाहते हैं तो आपको सर्वर से कनेक्ट करने के लिए उपयोग की जाने वाली प्रत्येक मशीन पर ऐसा करना होगा। इसके बाद, आप निम्न प्रकार से सर्वर से कनेक्ट कर पाएंगे:
ssh [email protected]
डॉकर स्थापित करना
SSH के माध्यम से सर्वर से कनेक्ट होने के बाद, निम्न कमांड चलाकर docker इंस्टॉल करें:
yum install -y yum-utils yum-config-manager \ --add-repo \ https://download.docker.com/linux/centos/docker-ce.repo yum install docker-ce \ docker-ce-cli \ containerd.io \ docker-compose-plugin
मशीन के पुनरारंभ होने पर डॉकर सेवा को स्वचालित रूप से प्रारंभ करने के लिए, इन आदेशों को चलाएँ:
systemctl enable docker.service systemctl start docker.service
डेटाबेस स्थापित करना
डॉकर तैयार होने के साथ, अपने सर्वर को सुव्यवस्थित रखते हुए सॉफ़्टवेयर स्थापित करना आसान है। सॉफ्टवेयर कंटेनर नामक पृथक वातावरण में चलता है। आप कस्टम या रेडी-टू-यूज़ इमेज से कंटेनर बना सकते हैं।
एक छवि एक टेम्पलेट है जिसमें कंटेनर बनाने के निर्देश हैं। जब आप कंटेनरों को अपने सिस्टम में नहीं रखना चाहते हैं तो आप प्रारंभ, पुनरारंभ, बंद और यहां तक कि हटा भी सकते हैं। यह सब आपके होस्ट ऑपरेटिंग सिस्टम में कचरा छोड़े बिना (इस लेख में रॉकी लिनक्स)।
एक अलग वातावरण में चलने के लिए एक डेटाबेस एक अच्छा उम्मीदवार है। कॉलमस्टोर इंजन के साथ मारियाडीबी सर्वर चलाने वाले कंटेनर को शुरू करने के लिए निम्न आदेश निष्पादित करें:
docker run --detach \ --name mariadb-cs \ --restart unless-stopped \ --env MARIADB_ROOT_PASSWORD='password' \ --publish '3306:3306/tcp' \ --expose '3306' \ mariadb/columnstore
यह डॉकर हब (डॉकर इंक द्वारा बनाए गए डॉकर छवियों की एक सार्वजनिक रजिस्ट्री) से मारियाडीबी/कॉलमस्टोर छवि डाउनलोड करता है।
छवि डाउनलोड करने के बाद, डॉकर मारियाडीबी-सीएस नाम के साथ एक नया कंटेनर बनाता है और कंटेनर शुरू करने के लिए आगे बढ़ता है, पोर्ट 3306 पर मारियाडीबी डेटाबेस सर्वर को प्रभावी ढंग से शुरू करता है।
कमांड पोर्ट को बाहरी दुनिया के लिए भी उजागर करता है ताकि आप डेटाबेस से जुड़ सकें, उदाहरण के लिए, अपनी विकास मशीन से।
एनालिटिक्स के लिए डेमो डेटाबेस तैयार करना
आपने जो अभी स्थापित किया है, वह आपको तालिका बनाते समय मारियाडीबी कॉलमस्टोर स्टोरेज इंजन का उपयोग करने की अनुमति देता है। उदाहरण के लिए:
CREATE TABLE some_table( ... column definitions here ... ) ENGINE=ColumnStore;
यह मारियाडीबी डेटाबेस को कॉलमर फैशन में डेटा स्टोर करने के लिए कॉलमस्टोर इंजन का उपयोग करने के लिए कहता है। यह इंजन बड़े डेटा स्केलिंग के लिए डिज़ाइन किया गया है और डेटा के पेटाबाइट्स को संसाधित कर सकता है जो आपको इंडेक्स को परिभाषित करने और बनाए रखने से मुक्त करता है। यह बहुत बड़े डेटा सेट पर तदर्थ प्रश्नों के लिए इसे आदर्श बनाता है।
जरूरत पड़ने पर आप अभी भी ट्रांजेक्शनल वर्कलोड के लिए उपयुक्त डिफ़ॉल्ट InnoDB इंजन का उपयोग कर सकते हैं। बस ENGINE
विकल्प को छोड़ दें। आप उन तालिकाओं में शामिल हो सकते हैं जो एक एकल SQL कथन में InnoDB का उपयोग करने वाली तालिकाओं के साथ ColumnStore का उपयोग करती हैं।
हाइब्रिड ट्रांजेक्शनल-एनालिटिकल प्रोसेसिंग (HTAP) वर्कलोड को सक्षम करने के लिए आप एक ट्रांजेक्शनल नोड (InnoDB) और एक एनालिटिकल (कॉलमस्टोर) के बीच प्रतिकृति का उपयोग कर सकते हैं।
ColumnStore के साथ प्रयोग करने का सबसे अच्छा तरीका मौजूदा डेटा सेट का उपयोग करके इसे आज़माना है।
इस जीथब रिपॉजिटरी की जाँच करें जो एक तालिका में 5 मिलियन पंक्तियों को लोड करता है जिसका उपयोग आप विश्लेषणात्मक प्रश्नों को चलाने के लिए कर सकते हैं और कॉलमस्टोर के प्रदर्शन को स्वयं देख सकते हैं।