Hadoop को कैसे स्थापित करें Ubuntuडाउनलोड और सेटअप के चरण

⚡ स्मार्ट सारांश

Apache Hadoop को इंस्टॉल करना Ubuntu इसमें दो चरण लगते हैं: पहले पासवर्ड रहित एसएसएच के साथ एक समर्पित सिस्टम खाते के तहत रिलीज़ को अनपैक करें, फिर एचडीएफएस को फॉर्मेट करने और सिंगल-नोड क्लस्टर शुरू करने से पहले चार एक्सएमएल फाइलों को संपादित करें।

  • 🔘 आवश्यक: एक चल रहा है Ubuntu मशीन और एक समर्थित Java सबसे पहले डेवलपमेंट किट स्थापित होनी चाहिए।
  • समर्पित खाता: hadoop_ समूह और hduser_ खाता बनाएं ताकि डेमन कभी भी आपके लॉगिन उपयोगकर्ता के रूप में न चलें।
  • पासवर्ड रहित एसएसएच: Hadoop SSH के माध्यम से डेमन शुरू करता है, इसलिए ssh localhost को बिना पासवर्ड मांगे सफलतापूर्वक पूरा होना चाहिए।
  • 🧪 चार कॉन्फ़िगरेशन फ़ाइलें: hadoop-env.sh, core-site.xml, mapred-site.xml और hdfs-site.xml में वे सभी सेटिंग्स शामिल हैं जिन्हें इस वॉकथ्रू में बदला गया है।
  • पहली शुरुआत: NameNode को एक बार फॉर्मेट करें, फिर start-dfs.sh और start-yarn.sh चलाएं और jps के साथ पांच डेमॉन की पुष्टि करें।
  • 🧭 संस्करण में बदलाव: स्क्रीनशॉट में Hadoop 2.2.0 का उपयोग किया गया है, इसलिए रिलीज़, पोर्ट और प्रॉपर्टी नामों की तुलना Hadoop 3.x से करें।

Hadoop को कैसे स्थापित करें Ubuntu

इस ट्यूटोरियल में, हम आपको लिनक्स बॉक्स पर अपाचे हैडूप को स्थापित करने की चरण-दर-चरण प्रक्रिया से अवगत कराएंगे।Ubuntuयह दो चरणों वाली प्रक्रिया है: पहले रिलीज़ को डाउनलोड और इंस्टॉल करें, फिर उसे कॉन्फ़िगर करें।

इसके लिए दो पूर्व शर्तें हैं:

  • आपके पास होना चाहिए Ubuntu installed और चल रहा है.
  • आपके पास होना चाहिए Java installed.

इस सेटअप के लिए Hadoop 3.x संस्करण संबंधी नोट्स

इस वॉकथ्रू में दिखाए गए स्क्रीनशॉट Hadoop 2.2.0 पर लिए गए हैं। वर्तमान संस्करणों में चरणों का क्रम अपरिवर्तित है, लेकिन कुछ नाम और डिफ़ॉल्ट मान बदल गए हैं। किसी भी कमांड को हूबहू कॉपी करने से पहले नीचे दी गई तालिका को ध्यान से देखें।

सेटिंग या चरण इस ट्यूटोरियल में (Hadoop 2.x) वर्तमान Hadoop 3.x
रिलीज़ संग्रह hadoop-2.2.0.tar.gz hadoop-3.5.0.tar.gzपहला स्थिर 3.5 संस्करण, 2 अप्रैल 2026 को प्रकाशित हुआ।
डिफ़ॉल्ट फ़ाइल सिस्टम प्रॉपर्टी fs.default.name गद्य में, fs.defaultFS XML में fs.defaultFS केवल; fs.default.name बहिष्कृत है
मैप रिड्यूस प्रॉपर्टी mapreduce.jobtracker.address mapreduce.framework.name करने के लिए सेट yarn; कामTracYARN द्वारा कार्य को शेड्यूल करने के बाद ker का अस्तित्व समाप्त हो जाता है।
mapred-साइट.xml से कॉपी किया गया mapred-site.xml.template में भेजता है etc/hadoop पहले से ही मौजूद है, इसलिए कॉपी करने का चरण अनावश्यक है।
NameNode वेब UI पोर्ट 50070 9870
Java Java 6 या Java 7 Java 8 या Java 11

इस गाइड में बाकी सब कुछ Hadoop 3 पर उसी तरह काम करता है: समर्पित खाता, SSH कुंजी, चार कॉन्फ़िगरेशन फ़ाइलें और स्टार्ट और स्टॉप स्क्रिप्ट।

भाग 1) Hadoop डाउनलोड और इंस्टॉल करें

चरण 1) एक हैडूप सिस्टम उपयोगकर्ता जोड़ें

नीचे दिए गए कमांड का उपयोग करके एक Hadoop सिस्टम उपयोगकर्ता जोड़ें।

sudo addgroup hadoop_

टर्मिनल पर sudo addgroup hadoop_ कमांड चलाएं।

sudo adduser --ingroup hadoop_ hduser_

adduser प्रॉम्प्ट hduser_ के लिए विवरण एकत्र कर रहा है

अपना पासवर्ड, नाम और अन्य विवरण दर्ज करें।

नोट: इस सेटअप और इंस्टॉलेशन प्रक्रिया में नीचे बताई गई त्रुटि होने की संभावना है।

"hduser sudoers फ़ाइल में नहीं है। इस घटना की रिपोर्ट की जाएगी।"

त्रुटि संदेश: hduser sudoers फ़ाइल में मौजूद नहीं है

इस त्रुटि को रूट यूजर के रूप में लॉग इन करके हल किया जा सकता है।

टर्मिनल में रूट उपयोगकर्ता पर स्विच करना

आदेश निष्पादित करें

sudo adduser hduser_ sudo

hduser_ को sudo समूह में जोड़ा जा रहा है

Re-login as hduser_

hduser_ के रूप में पुनः लॉग इन करना

चरण 2) SSH कॉन्फ़िगर करें

क्लस्टर में नोड्स को प्रबंधित करने के लिए, Hadoop को SSH एक्सेस की आवश्यकता होती है।

सबसे पहले, उपयोगकर्ता स्विच करें, निम्नलिखित कमांड दर्ज करें

su - hduser_

su कमांड से उपयोगकर्ता बदलना - hduser_

यह आदेश एक नई कुंजी बनाएगा.

ssh-keygen -t rsa -P ""

ssh-keygen hduser_ के लिए एक RSA कुंजी युग्म उत्पन्न कर रहा है।

इस कुंजी का उपयोग करके स्थानीय मशीन पर SSH एक्सेस सक्षम करें।

cat $HOME/.ssh/id_rsa.pub >> $HOME/.ssh/authorized_keys

id_rsa.pub को authorized_keys फ़ाइल में जोड़ा जा रहा है

अब 'hduser_' यूजर के रूप में लोकलहोस्ट से कनेक्ट करके SSH सेटअप का परीक्षण करें।

ssh localhost

hduser_ के लिए ssh localhost सत्र सफलतापूर्वक संपन्न हुआ।

नोट: यदि आपको 'ssh localhost' के जवाब में नीचे दी गई त्रुटि दिखाई देती है, तो संभावना है कि इस सिस्टम पर SSH उपलब्ध नहीं है।

ssh localhost कनेक्शन अस्वीकृत त्रुटि के साथ विफल हो रहा है

इसे हल करने के लिए –

SSH को शुद्ध करें,

sudo apt-get purge openssh-server

स्थापना शुरू करने से पहले सभी आवश्यक डेटा को हटा देना एक अच्छी प्रक्रिया है।

apt-get purge मौजूदा openssh-server पैकेज को हटा रहा है

कमांड का उपयोग करके SSH स्थापित करें-

sudo apt-get install openssh-server

apt-get कमांड का उपयोग करके openssh-server पैकेज इंस्टॉल किया जा रहा है।

चरण 3) Hadoop डाउनलोड करें

अगला चरण Hadoop को डाउनलोड करना है। अपाचे हैडूप रिलीज़ पेज.

अपाचे हैडूप रिलीज़ पेज पर उपलब्ध संस्करणों की सूची दी गई है।

स्थिर चुनें

हैडूप के स्थिर रिलीज़ के लिए निर्देशिका सूची

tar.gz फ़ाइल का चयन करें (src में समाप्त होने वाली फ़ाइल का नहीं)।

src आर्काइव के बजाय Hadoop tar.gz बाइनरी का चयन करना

डाउनलोड पूरा हो जाने के बाद, उस डायरेक्टरी में जाएं जिसमें tar फ़ाइल मौजूद है।

डाउनलोड की गई tar फ़ाइल वाली डायरेक्टरी में टर्मिनल खुल गया।

दर्ज करें,

sudo tar xzf hadoop-2.2.0.tar.gz

ExtracHadoop tarball को tar xzf कमांड से टिंग करना

अब, hadoop-2.2.0 का नाम बदलकर hadoop कर दें।

sudo mv hadoop-2.2.0 hadoop

पूर्व का नाम बदलनाtracted hadoop-2.2.0 फ़ोल्डर को hadoop में जोड़ा गया

अंत में, फ़ोल्डर को नए खाते में जमा कर दें।

sudo chown -R hduser_:hadoop_ hadoop

chown कमांड का उपयोग करके हैडूप फ़ोल्डर को hduser_ और hadoop_ को असाइन किया गया है।

आपने जो संस्करण वास्तव में डाउनलोड किया है, उसे बदलें। hadoop-2.2.0 ऊपर दिए गए तीनों आदेशों में।

भाग 2) Hadoop को कॉन्फ़िगर करें

चरण 1) ~/.bashrc फ़ाइल को संशोधित करें

~/.bashrc फ़ाइल के अंत में निम्नलिखित पंक्तियाँ जोड़ें।

#Set HADOOP_HOME
export HADOOP_HOME=<Installation Directory of Hadoop>
#Set JAVA_HOME
export JAVA_HOME=<Installation Directory of Java>
# Add bin/ directory of Hadoop to PATH
export PATH=$PATH:$HADOOP_HOME/bin

bashrc फ़ाइल में HADOOP_HOME, JAVA_HOME और PATH निर्यात को जोड़ा गया है

अब, नीचे दिए गए कमांड का उपयोग करके इस पर्यावरण कॉन्फ़िगरेशन को सोर्स करें।

. ~/.bashrc

नए पर्यावरण चरों को प्रभावी बनाने के लिए bashrc को सोर्स किया जा रहा है।

चरण 2) एचडीएफएस से संबंधित कॉन्फ़िगरेशन

नीचे दिखाए गए अनुसार, $HADOOP_HOME/etc/hadoop/hadoop-env.sh फ़ाइल के अंदर JAVA_HOME सेट करें।

hadoop-env.sh के अंदर डिफ़ॉल्ट JAVA_HOME लाइन

hadoop-env.sh फ़ाइल एडिटर में खुली हुई है और उसमें JAVA_HOME एक्सपोर्ट दिखाई दे रहा है।

-

hadoop-env.sh में JAVA_HOME को वास्तविक मान से बदल दिया गया है। Java स्थापना पथ

$HADOOP_HOME/etc/hadoop/core-site.xml में दो पैरामीटर हैं जिन्हें सेट करने की आवश्यकता है-

1. 'hadoop.tmp.dir' – इसका उपयोग उस निर्देशिका को निर्दिष्ट करने के लिए किया जाता है जिसका उपयोग Hadoop अपने डेटा फ़ाइलों को संग्रहीत करने के लिए करेगा।

2. 'fs.defaultFS' – यह डिफ़ॉल्ट फ़ाइल सिस्टम निर्दिष्ट करता है। इसी प्रॉपर्टी का पुराना नाम, 'fs.default.name', अब उपयोग में नहीं है।

इन पैरामीटर्स को सेट करने के लिए core-site.xml खोलें

sudo gedit $HADOOP_HOME/etc/hadoop/core-site.xml

core-site.xml को खोलना gedit

नीचे दी गई पंक्तियों को बीच में कॉपी करें टैग।

<property>
<name>hadoop.tmp.dir</name>
<value>/app/hadoop/tmp</value>
<description>Parent directory for other temporary directories.</description>
</property>
<property>
<name>fs.defaultFS </name>
<value>hdfs://localhost:54310</value>
<description>The name of the default file system. </description>
</property>

core-site.xml फ़ाइल में hadoop.tmp.dir और fs.defaultFS प्रॉपर्टीज़ होती हैं।

$HADOOP_HOME/etc/hadoop डायरेक्टरी पर जाएं।

Hadoop etc/hadoop कॉन्फ़िगरेशन निर्देशिका के अंदर टर्मिनल

अब, core-site.xml में उल्लिखित निर्देशिका बनाएं।

sudo mkdir -p <Path of Directory used in above setting>

mkdir -p कमांड का उपयोग करके hadoop.tmp.dir पाथ बनाया जा रहा है।

डायरेक्टरी को अनुमतियाँ प्रदान करें।

sudo chown -R hduser_:Hadoop_ <Path of Directory created in above step>

chown कमांड के माध्यम से hduser_ को अस्थायी निर्देशिका का स्वामित्व प्रदान किया जाता है।

sudo chmod 750 <Path of Directory created in above step>

अस्थायी निर्देशिका पर chmod 750 लागू किया गया

चरण 3) मैप रिड्यूस कॉन्फ़िगरेशन

इन कॉन्फ़िगरेशन को शुरू करने से पहले, आइए HADOOP_HOME पथ सेट करें।

sudo gedit /etc/profile.d/hadoop.sh

और दर्ज करें

export HADOOP_HOME=/home/guru99/Downloads/Hadoop

hadoop.sh प्रोफाइल स्क्रिप्ट HADOOP_HOME को निर्यात कर रही है

अगला दर्ज करें

sudo chmod +x /etc/profile.d/hadoop.sh

chmod +x कमांड का उपयोग करके hadoop.sh प्रोफाइल स्क्रिप्ट को निष्पादन योग्य बनाया जाता है।

टर्मिनल से बाहर निकलें और फिर से शुरू करें।

पथ को सत्यापित करने के लिए echo $HADOOP_HOME टाइप करें।

echo $HADOOP_HOME कॉन्फ़िगर किए गए इंस्टॉलेशन पथ को प्रिंट कर रहा है

अब फ़ाइलें कॉपी करें

sudo cp $HADOOP_HOME/etc/hadoop/mapred-site.xml.template $HADOOP_HOME/etc/hadoop/mapred-site.xml

mapred-site.xml.template को mapred-site.xml में कॉपी किया जा रहा है

mapred-site.xml फ़ाइल खोलें

sudo gedit $HADOOP_HOME/etc/hadoop/mapred-site.xml

mapred-site.xml को खोलना gedit

नीचे दी गई सेटिंग्स को बीच में जोड़ें और टैग।

<property>
<name>mapreduce.jobtracker.address</name>
<value>localhost:54311</value>
<description>MapReduce job tracker runs at this host and port.
</description>
</property>

mapred-site.xml फ़ाइल में MapReduce जॉब मौजूद है। tracकेर संपत्ति

नीचे दिए गए अनुसार $HADOOP_HOME/etc/hadoop/hdfs-site.xml फ़ाइल खोलें,

sudo gedit $HADOOP_HOME/etc/hadoop/hdfs-site.xml

hdfs-site.xml को खोलना gedit

नीचे दी गई सेटिंग्स को बीच में जोड़ें और टैग।

<property>
<name>dfs.replication</name>
<value>1</value>
<description>Default block replication.</description>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/home/hduser_/hdfs</value>
</property>

hdfs-site.xml फ़ाइल में dfs.replication और dfs.datanode.data.dir प्रॉपर्टीज़ मौजूद हैं।

ऊपर दी गई सेटिंग में निर्दिष्ट निर्देशिका बनाएं।

sudo mkdir -p <Path of Directory used in above setting>
sudo mkdir -p /home/hduser_/hdfs

mkdir -p कमांड का उपयोग करके DataNode डेटा डायरेक्टरी बनाई जा रही है।

फिर उस पर स्वामित्व और अनुमतियाँ प्रदान करें।

sudo chown -R hduser_:hadoop_ <Path of Directory created in above step>
sudo chown -R hduser_:hadoop_ /home/hduser_/hdfs

chown कमांड के माध्यम से hduser_ को DataNode डेटा डायरेक्टरी का स्वामित्व प्रदान किया जाता है।

sudo chmod 750 <Path of Directory created in above step>
sudo chmod 750 /home/hduser_/hdfs

DataNode डेटा निर्देशिका पर chmod 750 लागू किया गया

चरण 4) HDFS को फॉर्मेट करें

Hadoop को पहली बार शुरू करने से पहले, नीचे दिए गए कमांड का उपयोग करके HDFS को फॉर्मेट करें।

$HADOOP_HOME/bin/hdfs namenode -format

hdfs namenode -format कमांड नए फ़ाइल सिस्टम को फ़ॉर्मेट करने का आउटपुट देता है।

चरण 5) हैडूप सिंगल नोड क्लस्टर शुरू करें

नीचे दिए गए कमांड का उपयोग करके हैडूप सिंगल नोड क्लस्टर शुरू करें।

$HADOOP_HOME/sbin/start-dfs.sh

ऊपर दिए गए कमांड का आउटपुट नीचे दिखाया गया है।

start-dfs.sh का आउटपुट NameNode और DataNode को शुरू कर रहा है

फिर YARN डेमन्स को शुरू करें।

$HADOOP_HOME/sbin/start-yarn.sh

start-yarn.sh का आउटपुट: ResourceManager और NodeManager शुरू हो रहे हैं

'jps' टूल का उपयोग करके, यह सत्यापित करें कि Hadoop से संबंधित सभी प्रक्रियाएं चल रही हैं या नहीं।

jps आउटपुट में चल रहे पांच Hadoop डेमन्स की सूची दी गई है।

यदि Hadoop सफलतापूर्वक शुरू हो गया है, तो jps आउटपुट में NameNode, NodeManager, ResourceManager, SecondaryNameNode और DataNode सूचीबद्ध होने चाहिए।

चरण 6) रुकेंping Hadoop

क्लस्टर को उल्टे क्रम में बंद करें।

$HADOOP_HOME/sbin/stop-dfs.sh

stop-dfs.sh का आउटपुट HDFS डेमन्स को बंद कर रहा है

$HADOOP_HOME/sbin/stop-yarn.sh

stop-yarn.sh का आउटपुट YARN डेमन्स को बंद कर रहा है

Hadoop के चलने की पुष्टि कैसे करें और सामान्य त्रुटियों को कैसे ठीक करें

jps आउटपुट से यह पुष्टि होती है कि प्रक्रियाएं शुरू हो गई हैं, लेकिन यह नहीं कि क्लस्टर उपयोग करने योग्य है। चार अतिरिक्त जांचों से इस प्रश्न का समाधान हो जाता है।

  • NameNode वेब इंटरफ़ेस खोलें http://localhost:9870 (हैडूप 2.x पर पोर्ट 50070) और पुष्टि करें कि सारांश रिपोर्ट में एक लाइव नोड है।
  • ResourceManager इंटरफ़ेस को यहां खोलें: http://localhost:8088 यह पुष्टि करने के लिए कि YARN ने NodeManager को स्वीकार कर लिया है।
  • रन hdfs dfsadmin -report क्षमता, लाइव डेटा नोड्स और किसी भी कम प्रतिकृति वाले ब्लॉक के लिए।
  • कुछ लिखना: hdfs dfs -mkdir /test द्वारा पीछा hdfs dfs -ls / यह साबित करता है कि नेमस्पेस परिवर्तनों को स्वीकार करता है।

पहली बार असफल होने वाले अधिकांश लोग पांच श्रेणियों में से किसी एक में आते हैं।

लक्षण कारण फिक्स
JAVA_HOME सेट नहीं है और इसे ढूंढा नहीं जा सका। यह वेरिएबल .bashrc में एक्सपोर्ट किया गया है, लेकिन hadoop-env.sh में नहीं। hadoop-env.sh के अंदर JDK का पूर्ण पथ भी सेट करें।
ssh localhost पर अनुमति अस्वीकृत (सार्वजनिक कुंजी, पासवर्ड) authorized_keys या तो गायब है या बहुत अधिक अनुमेय है id_rsa.pub को पुनः जोड़ें, फिर ~/.ssh/authorized_keys पर chmod 600 कमांड चलाएँ।
पोर्ट 22 पर कनेक्शन अस्वीकृत openssh-server या तो स्थापित नहीं है या चल नहीं रहा है openssh-server इंस्टॉल करें और ssh सेवा शुरू करें।
पुनः स्वरूपित करने के बाद jps से डेटा नोड गायब है Cluster स्वरूपित NameNode और पुराने DataNode निर्देशिका के बीच ID बेमेल है dfs.datanode.data.dir फ़ोल्डर को खाली करें, फिर एक बार और फॉर्मेट करें।
start-dfs.sh: कमांड नहीं मिली वर्तमान शेल में HADOOP_HOME और PATH को कभी भी सोर्स नहीं किया गया था। .~/.bashrc फ़ाइल चलाएँ या एक नया टर्मिनल खोलें

अक्सर पूछे जाने वाले प्रश्न

किसी भी सक्रिय रूप से समर्थित Ubuntu LTS रिलीज़ काम करती है, जिसमें 22.04 और 24.04 संस्करण शामिल हैं। Hadoop 3.x को बिल्ड और टेस्ट किया गया है। Java 8 और Java 11, इसलिए इनमें से कोई एक JDK इंस्टॉल करें; नए JDK पूरी तरह से समर्थित नहीं हैं और पुराने JDK समर्थित नहीं हैं। Java 7 बिल्ड अब लागू नहीं होते।

start-dfs.sh और start-yarn.sh स्क्रिप्ट हर डेमॉन को SSH के ज़रिए लॉन्च करती हैं, भले ही होस्ट केवल लोकलहोस्ट हो। पासवर्ड रहित कुंजी के बिना, स्क्रिप्ट पासवर्ड प्रॉम्प्ट पर अटक जाती हैं और कोई भी डेमॉन शुरू नहीं होता।

hadoop.tmp.dir वह मूल पथ है जिससे Hadoop अन्य अस्थायी स्थानों को प्राप्त करता है। dfs.datanode.data.dir वह स्थान है जहाँ DataNode वास्तविक ब्लॉक फ़ाइलें रखता है। दूसरे को स्थायी संग्रहण की ओर इंगित करें, कभी भी /tmp की ओर नहीं, अन्यथा रीबूट करने पर ब्लॉक गायब हो जाएंगे।

पहली बार शुरू करने से पहले एक बार फॉर्मेट करें। फॉर्मेट को दोबारा चलाने से नेमस्पेस मिट जाता है और मौजूदा डेटा नोड डायरेक्टरी में पुराना क्लस्टर आईडी रह जाता है, जिसके कारण डेटा नोड रजिस्टर होने से इनकार कर देता है और jps आउटपुट से गायब हो जाता है।

हाँ, हालाँकि Windows इसके लिए संबंधित रिलीज़ के winutils.exe और hadoop.dll नेटिव बाइनरीज़ की आवश्यकता होती है। अधिकतर लोग इसे उसी तरह चलाकर इससे बचते हैं। Ubuntu WSL 2 के अंदर के चरण, जो एक सामान्य लिनक्स होस्ट की तरह व्यवहार करता है।

सीखने के लिए, हाँ: एक प्रीबिल्ट इमेज में यूजर क्रिएशन, SSH कीज़ और XML एडिटिंग की ज़रूरत नहीं होती। फिर भी, मैन्युअल रूप से इंस्टॉल करना एक बार करना फ़ायदेमंद है, क्योंकि इससे पता चलता है कि असली क्लस्टर में गड़बड़ी होने पर कौन सी फ़ाइल किस सेटिंग को कंट्रोल करती है।

NameNode और YARN मेट्रिक्स पर आधारित मशीन लर्निंग मॉडल क्षमता सीमाओं का पूर्वानुमान लगाते हैं, अनियमित कार्यों की पहचान करते हैं और खराब हो रही डिस्क को समय रहते चिह्नित करते हैं। कई प्लेटफ़ॉर्म स्वचालित रूप से कंटेनर आकार की अनुशंसा भी करते हैं, जिससे इस कॉन्फ़िगरेशन को मैन्युअल रूप से समायोजित करने की आवश्यकता काफी हद तक कम हो जाती है।

कोपायलट कोर-साइट.xml और hdfs-साइट.xml प्रॉपर्टी ब्लॉक को तेज़ी से तैयार करता है और सटीक वर्तनी याद रखता है। प्रत्येक सुझाव को अपने रिलीज़ के दस्तावेज़ से सत्यापित करें, क्योंकि इसमें अक्सर mapreduce.job जैसी पुरानी प्रॉपर्टीज़ का सुझाव दिया जाता है।tracker.address या fs.default.name.

इस पोस्ट को संक्षेप में इस प्रकार लिखें: