హడూప్ ప్రీ-ఆవశ్యకతలు మరియు భద్రతా గట్టిపడటం - పార్ట్ 2
హడూప్ క్లస్టర్ బిల్డింగ్ అనేది దశల వారీ ప్రక్రియ, ఇక్కడ అవసరమైన సర్వర్uలను కొనుగోలు చేయడం, ర్యాక్uలోకి ఎక్కడం, కేబులింగ్ చేయడం మొదలైన వాటి నుండి మరియు డేటాసెంట్రేలో ఉంచడం మొదలవుతుంది. అప్పుడు మేము OS ని ఇన్uస్టాల్ చేయాలి, క్లస్టర్ పరిమాణం పెద్దగా ఉంటే రియల్ టైమ్ వాతావరణంలో కిక్uస్టార్ట్ ఉపయోగించి చేయవచ్చు. OS వ్యవస్థాపించిన తర్వాత, మేము హడూప్ ఇన్uస్టాలేషన్ కోసం సర్వర్uను సిద్ధం చేయాలి మరియు సంస్థ యొక్క భద్రతా విధానాల ప్రకారం సర్వర్uలను సిద్ధం చేయాలి.
- సెంటూస్/RHEL 7 - పార్ట్ 1 లో హడూప్ సర్వర్uను అమలు చేయడానికి ఉత్తమ పద్ధతులు
ఈ వ్యాసంలో, మేము క్లౌడెరా సిఫారసు చేసిన OS- స్థాయి ముందస్తు అవసరాల ద్వారా వెళ్తాము. అలాగే, ప్రొడక్షన్ సర్వర్uల కోసం CIS బెంచ్uమార్క్ ప్రకారం మేము కొన్ని ముఖ్యమైన భద్రతా గట్టిపడే చిట్కాలను హైలైట్ చేసాము. ఈ భద్రత గట్టిపడటం అవసరాలకు అనుగుణంగా భిన్నంగా ఉంటుంది.
క్లౌడెరా హడూప్ ప్రీ-ఆవశ్యకతలను ఏర్పాటు చేస్తోంది
ఇక్కడ, క్లౌడెరా సిఫారసు చేసిన OS- స్థాయి ముందస్తు అవసరాలు గురించి చర్చిస్తాము.
అప్రమేయంగా, పారదర్శక భారీ పేజీ (THP) లైనక్స్ యంత్రాలలో ప్రారంభించబడింది, ఇది హడూప్ పనిభారంతో సరిగా వ్యవహరించదు మరియు ఇది క్లస్టర్ యొక్క మొత్తం పనితీరును దిగజారుస్తుంది. కాబట్టి కింది ఎకో కమాండ్ ఉపయోగించి సరైన పనితీరును సాధించడానికి మేము దీనిని నిలిపివేయాలి.
# echo never > /sys/kernel/mm/transparent_hugepage/enabled # echo never > /sys/kernel/mm/transparent_hugepage/defrag
అప్రమేయంగా, చాలా Linux యంత్రాలకు vm.swappiness విలువ 30 లేదా 60.
# sysctl vm.swappiness
హడూప్ సర్వర్uల కోసం అధిక విలువను కలిగి ఉండటం సిఫారసు చేయబడలేదు ఎందుకంటే ఇది సుదీర్ఘమైన చెత్త సేకరణ విరామాలకు కారణమవుతుంది. మరియు, అధిక స్వాప్నెస్ విలువతో, మనకు తగినంత మెమరీ ఉన్నప్పటికీ డేటాను మెమరీని మార్పిడి చేయడానికి కాష్ చేయవచ్చు. స్వాపీనెస్ విలువను తగ్గించడం వలన భౌతిక మెమరీ ఎక్కువ మెమరీ పేజీలను కలిగి ఉంటుంది.
# sysctl vm.swappiness=1
లేదా, మీరు /etc/sysctl.conf ఫైల్uను తెరిచి, \"vm.swappiness = 1 \"
ను జోడించవచ్చు.
vm.swappiness=1
ప్రతి హడూప్ సర్వర్ దానిపై నడుస్తున్న బహుళ సేవలతో (డెమోన్లు) దాని స్వంత బాధ్యతను కలిగి ఉంటుంది. అన్ని సర్వర్లు వివిధ ప్రయోజనాల కోసం ఒకరితో ఒకరు తరచూ సంభాషించుకుంటాయి.
ఉదాహరణ కోసం, డాటానోడ్ ప్రతి 3 సెకన్ల పాటు నేమ్uనోడ్uకు హృదయ స్పందనను పంపుతుంది, తద్వారా డాట్uనోడ్ సజీవంగా ఉందని నేమ్uనోడ్ నిర్ధారిస్తుంది.
ఫైర్uవాల్ ద్వారా వేర్వేరు సర్వర్uలలో డెమోన్uల మధ్య అన్ని కమ్యూనికేషన్uలు జరిగితే, అది హడూప్uకు అదనపు భారం అవుతుంది. కాబట్టి క్లస్టర్uలోని వ్యక్తిగత సర్వర్uలలో ఫైర్uవాల్uను నిలిపివేయడం ఉత్తమ పద్ధతి.
# iptables-save > ~/firewall.rules # systemctl stop firewalld # systemctl disable firewall
మేము SELinux ను ఎనేబుల్ చేస్తే, హడూప్uను ఇన్uస్టాల్ చేసేటప్పుడు ఇది సమస్యలను కలిగిస్తుంది. హడూప్ క్లస్టర్ కంప్యూటింగ్ కాబట్టి, క్లౌడెరా మేనేజర్ హడూప్ మరియు దాని సేవలను వ్యవస్థాపించడానికి క్లస్టర్uలోని అన్ని సర్వర్uలకు చేరుకుంటుంది మరియు అవసరమైన చోట అవసరమైన సేవా డైరెక్టరీలను సృష్టిస్తుంది.
SELinux ప్రారంభించబడితే, క్లౌడెరా మేనేజర్uను ఇన్uస్టాలేషన్uను కోరుకున్నట్లుగా శాసించటానికి ఇది అనుమతించదు. కాబట్టి, SELinux ను ప్రారంభించడం హడూప్uకు అడ్డంకిగా ఉంటుంది మరియు ఇది పనితీరు సమస్యలను కలిగిస్తుంది.
దిగువ ఆదేశాన్ని ఉపయోగించి మీరు SELinux యొక్క స్థితిని తనిఖీ చేయవచ్చు.
# sestatus
ఇప్పుడు,/etc/selinux/config ఫైల్uను తెరిచి, చూపిన విధంగా SELINUX ని నిలిపివేయండి.
SELinux=disabled
SELinux ని నిలిపివేసిన తరువాత, మీరు సిస్టమ్uను సక్రియంగా చేయడానికి రీబూట్ చేయాలి.
# reboot
హడూప్ క్లస్టర్uలో, క్లాక్ ఆఫ్uసెట్ లోపాలను నివారించడానికి అన్ని సర్వర్uలను టైమ్ సింక్రొనైజ్ చేయాలి. RHEL/CentOS 7 నెట్uవర్క్ క్లాక్/టైమ్ సింక్రొనైజేషన్ కోసం క్రోనిడ్ ఇన్uబిల్ట్ కలిగి ఉంది, అయితే క్లౌడెరా NTP ని ఉపయోగించమని సిఫారసు చేస్తుంది.
మేము ఎన్uటిపిని ఇన్uస్టాల్ చేసి కాన్ఫిగర్ చేయాలి. వ్యవస్థాపించిన తర్వాత, ‘క్రోనిడ్’ ఆపి ఆపివేయి. ఎందుకంటే, సర్వర్ ntpd మరియు chronyd రెండింటినీ కలిగి ఉంటే, క్లౌడెరా మేనేజర్ సమయ సమకాలీకరణ కోసం క్రోనిడ్uను పరిశీలిస్తారు, అప్పుడు మనకు ntp ద్వారా సమకాలీకరించబడిన సమయం ఉన్నప్పటికీ అది లోపం విసిరివేస్తుంది.
# yum -y install ntp # systemctl start ntpd # systemctl enable ntpd # systemctl status ntpd
మేము పైన చెప్పినట్లుగా, మేము ntpd ని ఉపయోగిస్తున్నందున మాకు క్రోనిడ్ యాక్టివ్ అవసరం లేదు. క్రోనిడ్ యొక్క స్థితిని తనిఖీ చేయండి, అది నడుస్తుంటే ఆపివేసి నిలిపివేయండి. అప్రమేయంగా, OS ఇన్uస్టాలేషన్ తర్వాత మేము దానిని ప్రారంభించే వరకు క్రోనిడ్ ఆపివేయబడుతుంది, మనం సురక్షితమైన వైపు నిలిపివేయాలి.
# systemctl status chronyd # systemctl disable chronyd
మేము హోస్ట్ పేరును FQDN (పూర్తిగా క్వాలిఫైడ్ డొమైన్ పేరు) తో సెట్ చేయాలి. ప్రతి సర్వర్uకు ప్రత్యేకమైన కానానికల్ పేరు ఉండాలి. హోస్ట్ పేరును పరిష్కరించడానికి, మనం DNS లేదా/etc/హోస్ట్uలను కాన్ఫిగర్ చేయాలి. ఇక్కడ, మేము/etc/హోస్ట్uలను కాన్ఫిగర్ చేయబోతున్నాం.
ప్రతి సర్వర్ యొక్క IP చిరునామా మరియు FQDN అన్ని సర్వర్ల/etc/హోస్ట్లలో నమోదు చేయాలి. అప్పుడు క్లౌడెరా మేనేజర్ మాత్రమే అన్ని సర్వర్uలను దాని హోస్ట్ పేరుతో కమ్యూనికేట్ చేయగలడు.
# hostnamectl set-hostname master1.linux-console.net
తరువాత,/etc/hosts ఫైల్uను కాన్ఫిగర్ చేయండి. ఉదాహరణ కోసం: - మనకు 2 మాస్టర్స్ మరియు 3 మంది కార్మికులతో 5 నోడ్ క్లస్టర్ ఉంటే, మేము/etc/హోస్ట్uలను ఈ క్రింది విధంగా కాన్ఫిగర్ చేయవచ్చు.
హడూప్ జావాతో తయారైనందున, అన్ని హోస్ట్uలు తగిన సంస్కరణతో జావాను ఇన్uస్టాల్ చేసి ఉండాలి. ఇక్కడ మనకు OpenJDK ఉండబోతోంది. అప్రమేయంగా, క్లౌడెరా మేనేజర్ ఒరాకిల్ జెడికెను ఇన్uస్టాల్ చేస్తుంది, అయితే, క్లౌడెరా ఓపెన్uజెడికెను కలిగి ఉండాలని సిఫారసు చేస్తుంది.
# yum -y install java-1.8.0-openjdk-devel # java -version
హడూప్ భద్రత మరియు గట్టిపడటం
ఈ విభాగంలో, మేము హార్డెన్ హడూప్ పర్యావరణ భద్రతకు వెళ్తాము…
ఆటోమౌంటింగ్ ‘ఆటోఫ్స్’ USB, CD/DVD వంటి భౌతిక పరికరాలను స్వయంచాలకంగా మౌంట్ చేయడానికి అనుమతిస్తుంది. భౌతిక ప్రాప్యత ఉన్న వినియోగదారు వారి USB లేదా ఏదైనా నిల్వ మాధ్యమాన్ని డేటాను చొప్పించగలరు. ఇది నిలిపివేయబడిందా లేదా అని ధృవీకరించడానికి క్రింది ఆదేశాలను ఉపయోగించండి.
# systemctl disable autofs # systemctl is-enabled autofs
బూట్ ఎంపికలను అన్uలాక్ చేయడానికి బూట్ సెట్టింగులు మరియు ఆధారాల యొక్క క్లిష్టమైన సమాచారాన్ని గ్రబ్ కాన్ఫిగరేషన్ ఫైల్ కలిగి ఉంది. గ్రబ్ కాన్ఫిగర్ ఫైల్ ‘grub.cfg‘/boot/grub2 వద్ద ఉంది మరియు ఇది /etc/grub2.conf గా అనుసంధానించబడి ఉంది మరియు grub.cfg రూట్ యూజర్ సొంతం అని నిర్ధారించుకోండి.
# cd /boot/grub2
Uid మరియు Gid రెండూ 0/root అని తనిఖీ చేయడానికి క్రింది ఆదేశాన్ని ఉపయోగించండి మరియు ‘సమూహం’ లేదా ‘ఇతర’ ఎటువంటి అనుమతి ఉండకూడదు.
# stat /boot/grub2/grub.cfg
ఇతర మరియు సమూహం నుండి అనుమతులను తొలగించడానికి క్రింది ఆదేశాన్ని ఉపయోగించండి.
# chmod og-rwx /boot/grub2/grub.cfg
ఈ సెట్టింగ్ సర్వర్ యొక్క ఇతర అన్u-అధీకృత రీబూటింగ్uను నివారిస్తుంది. అంటే, సర్వర్uను రీబూట్ చేయడానికి పాస్uవర్డ్ అవసరం. ఇది సెట్ చేయకపోతే, అనధికార వినియోగదారులు సర్వర్uను బూట్ చేయవచ్చు మరియు బూట్ విభజనలలో మార్పులు చేయవచ్చు.
పాస్వర్డ్ను సెట్ చేయడానికి క్రింది ఆదేశాన్ని ఉపయోగించండి.
# grub2-mkpasswd-pbkdf2
పైన సృష్టించిన పాస్uవర్డ్uను /etc/grub.d/01_users ఫైల్uలో జోడించండి.
తరువాత, గ్రబ్ కాన్ఫిగరేషన్ ఫైల్ను తిరిగి ఉత్పత్తి చేయండి.
# grub2-mkconfig > /boot/grub2/grub.cfg
ప్రీలింక్ అనేది సాఫ్ట్uవేర్ ప్రోగ్రామ్, ఇది హానికరమైన వినియోగదారులు లిబ్uసి వంటి సాధారణ లైబ్రరీలను రాజీ చేయగలిగితే సర్వర్uలో హానిని పెంచుతుంది.
దీన్ని తొలగించడానికి క్రింది ఆదేశాన్ని ఉపయోగించండి.
# yum remove prelink
సంభావ్య దాడులను నివారించడానికి కొన్ని సేవలు/ప్రోటోకాల్uలను నిలిపివేయడాన్ని మేము పరిగణించాలి.
# systemctl disable <service name>
- నెట్uవర్క్ సేవలను నిలిపివేయండి - నెట్uవర్క్ సేవలను నిర్ధారించుకోండి - ఛార్జీలు, పగటిపూట, విస్మరించండి, ప్రతిధ్వని, సమయం ప్రారంభించబడవు. ఈ నెట్uవర్క్ సేవలు డీబగ్గింగ్ మరియు పరీక్ష కోసం, రిమోట్ దాడిని తగ్గించగల డిసేబుల్ చేయాలని సిఫార్సు చేయబడింది.
- TFTP & FTP ని ఆపివేయి - ప్రోటోకాల్ రెండూ డేటా లేదా ఆధారాల గోప్యతకు మద్దతు ఇవ్వవు. స్పష్టంగా అవసరమైతే తప్ప సర్వర్uలో ఉండకపోవడమే ఉత్తమ పద్ధతి. ఎక్కువగా ఈ ప్రోటోకాల్uలు ఫైల్ సర్వర్uలలో ఇన్uస్టాల్ చేయబడతాయి మరియు ప్రారంభించబడతాయి.
- DHCP ని ఆపివేయి - DHCP అనేది IP చిరునామాను డైనమిక్uగా కేటాయించే ప్రోటోకాల్. సంభావ్య దాడులను నివారించడానికి ఇది DHCP సర్వర్ కాకపోతే డిసేబుల్ చెయ్యమని సిఫార్సు చేయబడింది.
- HTTP ని ఆపివేయి - HTTP అనేది వెబ్ కంటెంట్uను హోస్ట్ చేయడానికి ఉపయోగించే ప్రోటోకాల్. మాస్టర్/మేనేజ్uమెంట్ సర్వర్uలు కాకుండా (సేవల యొక్క వెబ్uయూఐ CM, హ్యూ, మొదలైనవి వలె కాన్ఫిగర్ చేయబడాలి), సంభావ్య దాడులను నివారించగల ఇతర వర్కర్ నోడ్uలలో మేము HTTP ని నిలిపివేయవచ్చు.
సారాంశం
మేము క్లౌడెరా హడూప్ ప్రీ-ఆవశ్యకతలను మరియు కొన్ని భద్రతా గట్టిపడటాన్ని కలిగి ఉన్న సర్వర్ తయారీ ద్వారా వెళ్ళాము. క్లౌడెరా నిర్వచించిన OS స్థాయి ముందస్తు అవసరాలు హడూప్ యొక్క సున్నితమైన సంస్థాపనకు తప్పనిసరి. సాధారణంగా, CIS బెంచ్ మార్క్ వాడకంతో గట్టిపడే స్క్రిప్ట్ తయారు చేయబడుతుంది మరియు నిజ సమయంలో పాటించని ఆడిట్ మరియు పరిష్కారానికి ఉపయోగించబడుతుంది.
CentOS/RHEL 7 యొక్క కనీస సంస్థాపనలో, ప్రాథమిక కార్యాచరణలు/సాఫ్ట్uవేర్ మాత్రమే వ్యవస్థాపించబడ్డాయి, ఇది అవాంఛిత ప్రమాదం మరియు ప్రమాదాలను నివారిస్తుంది. ఇది కనీస సంస్థాపన అయినప్పటికీ, హడూప్uను ఇన్uస్టాల్ చేసే ముందు, క్లస్టర్uను నిర్మించిన తర్వాత కూడా, క్లస్టర్uను ఆపరేషన్/ప్రొడక్షన్uగా తరలించే ముందు, భద్రతా ఆడిటింగ్ యొక్క బహుళ పునరావృత్తులు చేయబడతాయి.