环境准备
系统要求:Ubuntu 20.04/22.04 LTS
软件版本:
Hadoop 3.3.5
JDK 8
硬件要求:至少4GB内存,20GB磁盘空间
详细步骤
1.安装Vim编辑器
后续需要更改一些配置文件,我比较喜欢用的是 vim(vi增强版,基本用法相同),建议安装下。
sudo apt install vim
2.安装SSH、配置SSH无密码登陆
集群、单节点模式都需要用到 SSH 登陆(类似于远程登陆,你可以使用FinalShell登录某台 Linux 主机,并且在上面运行命令),Ubuntu 默认已安装了 SSH client,此外还需要安装 SSH server:
sudo apt install openssh-server
再利用 ssh-keygen 生成密钥,并将密钥加入到授权中:
cd ~/.ssh/ # 若没有该目录,请先执行一次ssh localhost
ssh-keygen -t rsa # 会有提示,都按回车就可以
cat ./id_rsa.pub >> ./authorized_keys # 将密钥文件内容加入到授权文件
相关命令的含义: 在 Linux 系统中,~ 代表的是用户的主文件夹,即 "/home/用户名" 这个目录,如你的用户名为 hadoop,则 ~ 就代表 "/home/hadoop/"。 >>会在目标原有内容后追加内容。当文件存在时直接在文件末尾进行内容追加,不会删除原文件;否则直接创建。命令中的 # 后面的文字是注释,只需要输入前面命令即可。
此时再用 ssh localhost 命令,无需输入密码就可以直接登陆了。exit命令可以退出ssh登录。
3.安装JDK8并配置环境变量
使用FinalShell将JDK安装包上传至虚拟机目录:/home/hadoop/下载
进入“/home/hadoop/下载”目录,使用tar命令解压jdk安装包至/usr/local目录下
配置JDK的环境变量
vim ~/.bashrc #打开配置文件
在文件首部添加如下2行代码,保存并退出。
继续执行如下命令让.bashrc文件的配置立即生效:
source ~/.bashrc #使配置文件生效
java -version #查看java安装的版本号验证环境变量配置是否成功
4.安装 Hadoop3.3.5并配置环境变量
使用FinalShell将Hadoop3.3.5安装包上传至虚拟机目录:/home/hadoop/下载
进入“/home/hadoop/下载”目录下,使用tar命令解压Hadoop3.3.5安装包至/usr/local目录下
sudo tar -zxvf hadoop-3.3.5.tar.gz -C /usr/local # 解压到/usr/local中
cd /usr/local/ #进入hadoop安装目录
使用chown命令提高hadoop用户对hadoop-3.3.5文件夹的权限
sudo chown -R hadoop /usr/local/hadoop-3.3.5 #修改文件权限
打开 ~/.bashrc 文件,添加如下代码,配置Hadoop的环境变量
保存并退出.bashrc 文件,继续执行如下命令让.bashrc文件的配置立即生效:
source ~/.bashrc #使配置文件生效
打开/usr/local/hadoop-3.3.5/etc/hadoop/hadoop-env.sh文件,添加JDK的环境变量
vim /usr/local/hadoop-3.3.5/etc/hadoop/hadoop-env.sh
然后输入如下命令来检查 Hadoop 是否可用,成功则会显示 Hadoop 版本信息:
cd /usr/local/hadoop-3.3.5/bin #进入hadoop安装目录的bin目录
./hadoop version #查看安装的hadoop版本信息
5.修改Hadoop伪分布式配置文件
Hadoop 可以在单节点上以伪分布式的方式运行,Hadoop 进程以分离的 Java 进程来运行,节点既作为 NameNode 也作为 DataNode,同时,读取的是 HDFS 中的文件。
Hadoop 的配置文件位于/usr/local/hadoop-3.3.5/etc/hadoop中,伪分布式需要修改2个配置文件 core-site.xml 和 hdfs-site.xml 。Hadoop的配置文件是 xml 格式,每个配置以声明 property 的 name 和 value 的方式来实现,使用cd命令进入配置文件所在目录:
cd /usr/local/hadoop-3.3.5/etc/hadoop
①修改配置文件 core-site.xml
<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/usr/local/hadoop-3.3.5/tmp</value>
<description>Abase for other temporary directories.</description>
</property>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
②修改配置文件 hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/usr/local/hadoop-3.3.5/tmp/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/usr/local/hadoop-3.3.5/tmp/dfs/data</value>
</property>
</configuration>
6.格式化HDFS
配置完成后,执行 NameNode 的格式化:
cd /usr/local/hadoop-3.3.5/bin/ #进入bin目录
./hdfs namenode -format #格式化
成功的话,会看到 "successfully formatted" 的提示,具体返回信息类似如下:
7.启动Hadoop集群
启动集群的程序在/usr/local/hadoop-3.3.5/sbin/目录下,由于我们配置了HDDOOP环境变量,所以可以在任意目录下输入start-dfs.sh命令启动hadoop集群,jps查看启动进程。
8.访问Web UI验证集群状态
访问Web UI:http://192.168.101.32:9870/
9.关闭Hadoop集群
输入stop-dfs.sh命令关闭hadoop集群,jps查看启动进程。