🛠Step 1: Install Java (OpenJDK 11)
Hadoop requires Java to function. Follow these steps to install Java.
1ï¸âƒ£ Update the Package List
sudo apt update && sudo apt upgrade -y
2ï¸âƒ£ Install OpenJDK 11
sudo apt install openjdk-11-jdk -y
3ï¸âƒ£ Verify Java Installation
java -version
javac -version
Expected output:
openjdk version "11.0.xx"
OpenJDK Runtime Environment...
🔠Step 2: Setup SSH for Hadoop
Hadoop requires passwordless SSH access.
1ï¸âƒ£ Install SSH Server
sudo apt install openssh-server -y
2ï¸âƒ£ Start and Enable SSH Service
sudo systemctl start ssh
sudo systemctl enable ssh
3ï¸âƒ£ Create SSH Key for Passwordless Authentication
ssh-keygen -t rsa -P "" -f ~/.ssh/id_rsa
4ï¸âƒ£ Add Key to Authorized Keys
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
5ï¸âƒ£ Test SSH
ssh localhost
If prompted, type yes and press Enter.
📂 Step 3: Download and Install Hadoop
1ï¸âƒ£ Download Hadoop
wget https://downloads.apache.org/hadoop/common/hadoop-3.3.6/hadoop-3.3.6.tar.gz
2ï¸âƒ£ Extract and Move Hadoop
tar -xvzf hadoop-3.3.6.tar.gz
sudo mv hadoop-3.3.6 /usr/local/hadoop
sudo chown -R $USER:$USER /usr/local/hadoop
📠Step 4: Configure Hadoop Environment Variables
1ï¸âƒ£ Edit ~/.bashrc
nano ~/.bashrc
2ï¸âƒ£ Add the Following Lines
export HADOOP_HOME=/usr/local/hadoop
export HADOOP_INSTALL=$HADOOP_HOME
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib/native"
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
3ï¸âƒ£ Apply Changes
source ~/.bashrc
âš™ï¸ Step 5: Configure Hadoop XML Files
1ï¸âƒ£ Edit core-site.xml
nano $HADOOP_HOME/etc/hadoop/core-site.xml
Add:
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
2ï¸âƒ£ Edit hdfs-site.xml
nano $HADOOP_HOME/etc/hadoop/hdfs-site.xml
Add:
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:///usr/local/hadoop/data/namenode</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:///usr/local/hadoop/data/datanode</value>
</property>
3ï¸âƒ£ Configure mapred-site.xml
cp $HADOOP_HOME/etc/hadoop/mapred-site.xml.template $HADOOP_HOME/etc/hadoop/mapred-site.xml
nano $HADOOP_HOME/etc/hadoop/mapred-site.xml
Add:
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
4ï¸âƒ£ Configure yarn-site.xml
nano $HADOOP_HOME/etc/hadoop/yarn-site.xml
Add:
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.env-whitelist</name>
<value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,HADOOP_MAPRED_HOME</value>
</property>
ðŸ–¥ï¸ Step 6: Format HDFS and Start Hadoop
1ï¸âƒ£ Format the Hadoop Namenode
hdfs namenode -format
2ï¸âƒ£ Start Hadoop Services
start-dfs.sh
start-yarn.sh
3ï¸âƒ£ Check Running Hadoop Processes
jps
Expected output:
NameNode
DataNode
SecondaryNameNode
ResourceManager
NodeManager
Jps
🌠Step 7: Verify Hadoop Web Interfaces
If these pages load successfully, Hadoop is running correctly. 🎉
🛠Step 8: Run HDFS Commands (Test Hadoop)
1ï¸âƒ£ Create a Directory in HDFS
hdfs dfs -mkdir /test
2ï¸âƒ£ Upload a File to HDFS
echo "Hello Hadoop" > testfile.txt
hdfs dfs -put testfile.txt /test/
3ï¸âƒ£ List Files in HDFS
hdfs dfs -ls /test/
Expected output:
Found 1 items
-rw-r--r-- 1 hadoop supergroup 12 2025-03-07 10:00 /test/testfile.txt
🔄 Restarting Hadoop
If needed, restart Hadoop services:
stop-dfs.sh
stop-yarn.sh
start-dfs.sh
start-yarn.sh
Check if all services are running:
jps
🎉 Congratulations!
You have successfully installed and configured Hadoop on Kali Linux in a single-node mode! 🚀🔥 Now, you can start experimenting with MapReduce, HDFS, and YARN.
Comment
Coming soon