简介
Hadoop伪分布式模式在实际应用中并没有什么意义,但是在程序的测试和调试过程中,还是很有意义的。本文介绍了在Ubuntu 16.04 TLS系统上,如何安装和配置Hadoop 2.7.3的伪分布式模式。
创建Hadoop用户
创建hadoop用户,设置用户密码,并增加管理员权限。
bob@bob-virtual-machine:~$ sudo useradd -m hadoop -s /bin/bash # 创建hadoop用户
bob@bob-virtual-machine:~$ sudo passwd hadoop # 修改密码
bob@bob-virtual-machine:~$ sudo adduser hadoop sudo # 增加管理员权限
ssh安装和配置
Hadoop控制脚本(并非守护进程)依赖SSH来执行针对整个集群的操作,如通过ssh来启动或终止slave列表中各台主机的守护进程。为了支持无缝式工作, SSH安装好之后,需要允许hadoop用户无需键入密码即可登录集群内的机器。最简单的方法是创建一个公钥/私钥对,存放在NFS之中,让整个集群共享该密钥对。
首先,以hadoop用户帐号登录后,键入以下指令来产生一个RSA密钥对。
%ssh-keygen -t rsa -f ~/.ssh/id_rsa
尽管期望无密码登录,但无口令的密钥并不是一个好的选择(运行在本地伪分布集群上时,倒也不妨使用一个空口令)。因此,当系统提示输入口令时,用户最好指定一个口令。可以使用ssh-agent以免为每个连接逐一输入密码。
私钥放在由-f选项指定的文件之中,例如~/.ssh/id rsa。存放公钥的文件名称与私钥类似,但是以“.pub”作为后缀,例如~/.ssh/id_rsa.pub。
接下来,需确保公钥存放在用户打算连接的所有机器的~,=./ssh/authorized_keys文件中。
下面是具体配置方法:
hadoop@bob-virtual-machine:~$ sudo apt-get install openssh-server
hadoop@bob-virtual-machine:~$ cd .ssh/
hadoop@bob-virtual-machine:~/.ssh$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/hadoop/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/hadoop/.ssh/id_rsa.
Your public key has been saved in /home/hadoop/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:aXkPbR3dXlg/iNQtk0nCHeo/9aUE8x9PR4PMhz3umb4 hadoop@bob-virtual-machine
The key's randomart image is:
+---[RSA 2048]----+
| .o+o= .|
| ..*B==o|
| oo*=**|
| o.. =o+=|
| S o.o ++=|
| . . +..o+O|
| .o.++|
| o |
| E.|
+----[SHA256]-----+
hadoop@bob-virtual-machine:~/.ssh$ ls
id_rsa id_rsa.pub known_hosts
hadoop@bob-virtu