Hadoop 伪分布式安装(1)
在 Ubuntu 20.04.2.0 中进行 Hadoop 伪分布式安装,Centos的Hadoop 伪分布式安装在之后的章节。
在安装 Hadoop 之前,需要先安装两个程序,分别为:
(1) JDK。Hadoop 使用的是 Java 写的程序,Hadoop 的编译及 MapReduce 的运行都需要使用 JDK。因此在安装 Hadoop 之前,必须先安装 JDK。
(2) SSH(安全外壳协议),推荐安装 OpenSSH。Hadoop 需要通过 SSH 无密码连接 Slave 列表中各台主机的守护进程,因此 SSH 也是必须安装的。
本节介绍 JDK 的检查与安装。
1、Ubuntu 20.04.2.0 安装 jdk
在安装 JDK 之前,可以首先检查一下系统是否安装了 JDK,检查方法如下。打开终端,输入以下内容,来检查 JDK 是否可用:
javac
如果没有安装 JDK 的话,执行结果如下图所示:
如果上述命令返回 Command 'java' not found 或者类似的错误,这时需要下载并安装 JDK。本篇博文用的 jdk 版本为:jdk-8u202-linux-x64.tar.gz。如果读者要安装其他版本的 jdk,可以自行到官网进行下载,jdk 下载比较简单。
(1) 将下载好的 JDK 安装包放到共享文件夹中 (在 2021年全网最细 VirtualBox 虚拟机安装 Ubuntu 20.04.2.0 LTS及Ubuntu的相关配置 一文中详细介绍了如何设置了共享文件夹,博主 Windows 10 系统的共享文件夹路径为 D:\VirtualBox-Share,Ubuntu 系统中的共享文件夹名为 sf_VirtualBox-Share)
然后在 Ubuntu 系统的 home 目录(也称为主目录)下,新建文件夹名为 JDK,将 JDK 安装包复制此 JDK 文件夹中。复制好之后,在此文件夹空白处单击鼠标右键,选择 在终端打开,打开终端,如下图所示:
(2) 解压 JDK 安装包。将安装包 jdk-8u202-linux-x64.tar.gz 解压到当前文件夹,命令如下:
tar -zxvf jdk-8u202-linux-x64.tar.gz 1
命令及执行结果如下图所示:
解压完成后,在当前文件夹中,得到名为 jdk1.8.0_191 的文件夹,为了后期设置环境变量更加方便,将名字重命名为 jdk1.8,如下图所示:
说明:解压即安装。
(3) 设置环境变量。编辑配置文件,首先需要打开配置文件,然后将环境变量添加到文件末尾。
在终端输入如下命令,打开配置文件。
sudo gedit /etc/profile
然后按照提示,输入 root 用户的密码,输入密码后,敲击回车进入文档编辑界面,如下图所示:
将下面的命令输入到配置文件中:
export JAVA_HOME=/home/bigdata01/JDK/jdk1.8 export JRE_HOME=${JAVA_HOME}/jre export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib export PATH=${JAVA_HOME}/bin:$PATH
注意,JAVA_HOME 后面的为解压后的 JDK 文件夹,读者需要根据实际情况进行修改。配置文件修改完成后,Ctrl + s 即可保存然后退出。重新加载配置文件,命令如下:
source /etc/profile
验证是否安装 JDK 成功,输入如下命令查询 JDK 版本:
java -version
执行结果如下图所示:
如上图所示的执行结果中,显示了 JDK 的版本信息,则说明 JDK 安装成功。
说明:也可以使用 sudo vi /etc/profile 命令打开配置文件,然后按照提示,输入 root 用户的密码,输入密码后,敲击回车进入文档编辑界面。使用快捷键 将光标移到文件末尾,按 i 键进入编辑状态,将上面的命令输入到配置文件中,配置文件修改完成后,按 Esc 退出编辑状态,输入 :wq 命令,敲击回车之后即可保存并退出。最后重新加载配置文件即可。
2、配置 SSH 无密码登录
SSH 为 Secure Shell 的缩写,即安全外壳协议,为建立在应用层基础上的安全协议。Hadoop 使用 SSH 连接,这是目前较为可靠,专为远程登录其他服务器提供的安全性协议。通过 SSH 会对所有传输的数据进行加密,利用 SSH 协议可以防止远程管理系统时信息外泄的问题。
Hadoop 是由很多台服务器组成的,当启动 Hadoop 时,NameNode 必须与 DataNode 连接并管理这些节点(DataNode),此时系统会要求用户输入密码。为了让系统顺利运行而不用手动输入密码,可以将 SSH 设置为无密码登录。
注意:无密码登录不是不需要密码,而是使用 SSH Key 来进行身份验证。
1、安装SSH
打开终端,输入命令:sudo apt-get install ssh
在输入 Y 或 y 后,系统会自动安装 SSH,安装完成如下图所示:
2、SSH 无密码登录的原理
在配置 SSH 之前,首先介绍一下 SSH 免密登录的原理,以 Server A 要免密登录 Server B 为例,如下图所示:
3、配置 SSH 无密码登录
产生 SSH Key。接着在终端输入命令:ssh-keygen -t rsa。注意:注意ssh-keygen后参数的大小写,比如“-t”与“-T”表示不同意思。其中,ssh-keygen代表生成密钥;-t表示生成指定类型的密钥类型;rsa是rsa密钥认证。
此条命令运行后出现暂停时,按回车键即可。并且会产生两个密钥文件,即在 .ssh 文件夹(此文件夹在用户的根目录下,即 /home/bigdata01) 下创建 id_rsa 和 id_rsa.pub 两个文件,这是 SSH 的一对私钥和公钥,类似于钥匙和锁,下面要做的就是把 id_rsa.pub(公钥)放到许可证文件中去。
- 使用 ll ~/.ssh 查看产生的 SSH Key(密钥):
- 将 id_rsa.pub(公钥) 放到许可证文件(authorized_keys)中,命令:cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
- 更改权限,命令如下:
chmod 755 ~ chmod 700 ~/.ssh chmod 600 ~/.ssh/authorized_keys
验证 SSH 是否安装成功,以及是否可以免密码登录本机。首先,验证SSH是否安装成功,输入命令:ssh -Version。执行结果如图所示:
出现上图所示的执行结果,则表示 SSH 安装成功。注意:命令“ssh -Version”中的V是大写的
接下来,验证是否可以免密码登录本机,命令:ssh bigdata01-VirtualBox。执行结果如下图所示:
说明:bigdata01-VirtualBox 为笔者的主机名,读者可以使用 hostname 命令查看自己的主机名。如上图所示,没有要求输入登录密码,则表示 SSH 已经成功实现无密码登录了。
退出 SSH 连接,代码如下:exit。执行结果如下图所示:
说明:在 Hadoop 的安装过程中,是否无密码登录不是特别重要的,但是如果不配置无密码登录,每次启动 Hadoop 都需要输入密码来登录到每台机器的 DataNode 上,但是 Hadoop 集群动辄拥有数百或上千台机器,因此一般来说都会配置 SSH 的无密码登录。
下一节我们继续安装Hadoop