hadoop安装

hadoop安装

十一月 23, 2025

在很多的教程内都显然存在在对单机不友好的缺点,甚至很多错误,我对其中部分错误进行了修正并且上传到本地的博客

首先,我们需要一个linux,由于咱们的centos改为滚动更新,已经不太适合部署了,一开始想用下游替代AlmaLinux结果virtualbox不好用,那就只能使用地道的ubuntu(ubuntu Server 24.04.3 LTS)吧

这里为什么使用ubuntu Server 24.04.3 LTS而不是常规ubuntu呢?

因为我电脑差…

安装linux

我给他分了4GB内存 4核心 40GB硬盘

第一步

临时删除一下这里的内容,因为我博客的原因,这个没法正常显示了

总之是知道你的IP地址和远程控制就可以了

第二步,超级ssh

使用xshell

然后新建一下目录备用

1
2
cd /
sudo mkdir -p /export/{data,servers,software}

接下来我们要传软件,提权一下

1
2
sudo chmod 777 /export
sudo chmod 777 /export/software

然后传输

然后

1
2
3
4
5
6
7
8
sudo su
# 直接化身root权限
# 超级解压
cd /export/software
tar -zxvf jdk-8u391-linux-x64.tar.gz -C /export/servers/
# 超级改名
cd /export/servers
mv jdk1.8.0_391 jdk

然后超级配置

1
vim /etc/profile

然后在打开的文件按下键盘i,并且移动到最下面输入

1
2
3
4
#java配置
export JAVA_HOME=/export/servers/jdk
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

大概是这个样子

然后esc,按下:wq!退出

之后强制激活

1
source /etc/profile

第三步,超级安装

现在有了jdk(java)就可以安装hadoop了

1
2
cd /export/software
tar -zxvf hadoop-3.3.6.tar.gz -C /export/servers/

同样的方法配置hadoop

1
2
3
4
5
vim /etc/profile
# 在打开的文件内
#hadoop配置
export HADOOP_HOME=/export/servers/hadoop-3.3.6
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
1
source /etc/profile

第四步,去你的权限

然后这里有个小坑

就是root中权限太大了,需要单独开个java_home

1
2
3
4
5
6
cd /export/servers/hadoop-3.3.6/etc/hadoop/

vim hadoop-env.sh

#然后找到export JAVA_HOME= 改成export JAVA_HOME=/export/servers/jdk
#或者直接最后一行加export JAVA_HOME=/export/servers/jdk

然后修改core-site.xml

1
2
3
4
5
6
7
8
9
10
11
12
vim core-site.xml
# 找到<configuration>
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop01的名称:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/export/servers/hadoop-3.3.6/tmp</value>
</property>
</configuration>

同理

1
2
3
4
5
6
7
8
9
10
11
12
vim hdfs-site.xml

<configuration>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>hadoop02的名称:50090</value>
</property>
</configuration>
1
2
3
4
5
6
7
8
vim mapred-site.xml

<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
1
2
3
4
5
6
7
8
9
10
11
12
vim yarn-site.xml

<configuration>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop01主机</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>

如果要组集群可以修改

1
vim workers

然后记得给一下用户权限

先su 一开始你创建的用户

1
2
3
4
ssh-keygen -t rsa -P ""
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

并且对你当前用户的

1
2
vim ~/.bashrc
#然后末尾java和hadoop

第五步,超级格式化

1
hdfs namenode -format

最后,端口转发

然后转发一下50090 9870 9000端口就好啦

问题解析

ssh环节

1
2
3
4
5
# 检查并创建.ssh目录(若不存在)
mkdir -p ~/.ssh # -p确保父目录存在,且不报错

# 生成SSH密钥对(一路回车,不要设置密码)
ssh-keygen -t rsa -P ""
1
2
3
4
5
6
7
8
# 将公钥添加到授权列表(允许无密码登录)
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

# 强制设置权限(SSH对权限要求严格,必须执行)
chmod 700 ~/.ssh
chmod 600 ~/.ssh/id_rsa
chmod 644 ~/.ssh/id_rsa.pub
chmod 600 ~/.ssh/authorized_keys
1
2
ssh localhost
start-dfs.sh