Spark学习记录(四):Hadoop安装之一
2022-03-07 21:44:17

决定了安装的版本后(见上文),就是愉快的安装环节了。

但在开始安装Hadoop前,参考教程,发现还有几个准备工作需要完成。

第一步,在Linux系统中添加hadoop用户。

以下流程均以Ubuntu系统为例。其他发行版类似操作,略微调整即可。打开终端输入:

1
sudo useradd -m hadoop -s /bin/bash

即创建了一个hadoop用户,并以bash作为自己的shell。然后为hadoop用户设置密码:

1
sudo passwd hadoop

输入两遍想设置的密码即可,密码不会在终端中显示,不要因为看不到自己输入了什么就随便输(还真有这种事)。记住自己设置的密码。接下来赋予hadoop用户管理员权限,终端提示成功便可:

1
sudo adduser hadoop sudo

第二步,配置ssh免密登陆。看教程需要这一步,那就配置一下。登录hadoop用户,首先更新一下系统,然后安装ssh server(Ubuntu默认安装了ssh client):

1
sudo apt-get install openssh-server

完成后再终端中输入下列命令登陆本机:(会有第一次登陆提示,输入yes后输入账户密码即可)

1
ssh localhost

接下来配置ssh免密登录。在终端中输入下列代码即可(先exit退出ssh)。之后再使用ssh localhost登录时就不用输入密码了。

1
2
3
cd ~/.ssh/
ssh-keygen -t rsa
cat ./id_rsa.pub >> ./authorized_keys

经过上述操作后,查看教程发现下一步是安装Java。好在之前已经安装,然而当我在终端中输入java -version时,我惊奇的发现终端告诉我它找不到(结果如下):

1
2
3
4
5
6
7
8
Command 'java' not found, but can be installed with:

sudo apt install openjdk-11-jre-headless # version 11.0.13+8-0ubuntu1~20.04, or
sudo apt install default-jre # version 2:1.11-72
sudo apt install openjdk-13-jre-headless # version 13.0.7+5-0ubuntu1~20.04
sudo apt install openjdk-16-jre-headless # version 16.0.1+9-1~20.04
sudo apt install openjdk-17-jre-headless # version 17.0.1+12-1~20.04
sudo apt install openjdk-8-jre-headless # version 8u312-b07-0ubuntu1~20.04

可把我整乐了。

输入vim ~/.bashrc,拉到最底下一看,原来是因为在hadoop用户的bash配置文件里没有Java的环境变量,加上即可(环境变量可参考之前Java安装一文)。

至此,安装Hadoop前的准备工作完成了。

但仔细想想还没有。之前还安装过Scala,需要给hadoop用户操作权限(虽然不清楚这一步是否必需,还是弄一下比较好)。打开之前Scala安装的目录,输入下列代码即可:

1
2
cd /usr/local
sudo chown -R hadoop ./scala

然后在~/.bashrc中添加Scala的环境变量(具体可见之前Scala安装一文)。最后在终端中输入scala检查。

现在,就来开始Hadoop的安装了。本文是在hadoop用户下进行操作的。到官网下载Hadoop的安装包(本文采用hadoop-3.3.1.tar.gz)。首先将安装包解压至想安装的位置,并重命名文件夹(在终端中输入),赋予权限:

1
2
3
4
sudo tar -zxf hadoop-3.3.1.tar.gz -C /usr/local
cd /usr/local
sudo mv ./hadoop-3.3.1 ./hadoop
sudo chown -R hadoop ./hadoop

然后检查Hadoop是否可用,在终端中输入:

1
2
cd /usr/local/hadoop
./bin/hadoop version

得到下列输出:

1
2
3
4
5
6
Hadoop 3.3.1
Source code repository https://github.com/apache/hadoop.git -r a3b9c37a397ad4188041dd80621bdeefc46885f2
Compiled by ubuntu on 2021-06-15T05:13Z
Compiled with protoc 3.7.1
From source with checksum 88a4ddb2299aca054416d6b7f81ca55
This command was run using /usr/local/hadoop/share/hadoop/common/hadoop-common-3.3.1.jar

到这一步还没有什么问题,之后将进行Hadoop的详细配置(单机配置与伪分布式配置)。