Linux
创建用户
-
输入如下命令创建新用户 :
sudo useradd -m hadoop -s /bin/bash
这条命令创建了可以登陆的 hadoop 用户,并使用 /bin/bash 作为 shell
-
接着使用如下命令设置密码,按提示输入两次密码:
sudo passwd hadoop
-
可为 hadoop 用户增加管理员权限,方便部署,避免一些对新手来说比较棘手的权限问题:
sudo adduser hadoop sudo
-
用 hadoop 用户登录后,我们先更新一下 apt,后续我们使用 apt 安装软件,如果没更新可能有一些软件安装不了:
sudo apt-get update
若出现如 “Hash校验和不符” 的提示,可通过更改软件源来解决。若没有该问题,则不需要更改
Ubuntu终端复制粘贴快捷键: 在Ubuntu终端窗口中,复制粘贴的快捷键需要加上 shift,即粘贴是 ctrl+shift+v
安装SSH,配置SSH无密码登录
-
Ubuntu 默认已安装了 SSH client,此外还需要安装 SSH server:
sudo apt-get install openssh-server
-
安装后,可以使用如下命令登陆本机:
ssh localhost
-
此时会有如下提示(SSH首次登陆提示),输入 yes ,然后按提示输入密码,这样就登陆到本机了
-
但这样登陆是需要每次输入密码的,我们需要配置成SSH无密码登陆比较方便。首先退出刚才的 ssh,就回到了原先的终端窗口,然后利用 ssh-keygen 生成密钥,并将密钥加入到授权中:
exit # 退出刚才的 ssh localhost cd ~/.ssh/ # 若没有该目录,请先执行一次ssh localhost ssh-keygen -t rsa # 会有提示,都按回车就可以 cat ./id_rsa.pub >> ./authorized_keys # 加入授权
-
此时再用
ssh localhost
命令,无需输入密码就可以直接登陆了,如下图所示。
安装Java环境
-
下载JDK安装包,根据所需版本选择名字中带有linux-x64和.tar.gz的
-
在Linux命令行界面中,执行如下Shell命令:
cd /usr/lib sudo mkdir jvm #创建/usr/lib/jvm目录用来存放JDK文件 cd ~ #进入hadoop用户的主目录 cd Downloads #注意区分大小写字母,刚才已经通过FTP软件把JDK安装包jdk-8u162-linux-x64.tar.gz上传到该目录下 sudo tar -zxvf ./jdk-8u162-linux-x64.tar.gz -C /usr/lib/jvm #把JDK文件解压到/usr/lib/jvm目录下
-
JDK文件解压缩以后,可以执行如下命令到/usr/lib/jvm目录查看一下:
cd /usr/lib/jvm ls
可以看到,在/usr/lib/jvm目录下有个对应版本的JDK目录
-
下面继续执行如下命令,设置环境变量:
cd ~ vim ~/.bashrc
上面命令使用vim编辑器打开了当前用户的环境变量配置文件
-
请在这个文件的开头位置,添加如下几行内容:
export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_162 export JRE_HOME=${JAVA_HOME}/jre export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib export PATH=${JAVA_HOME}/bin:$PATH
保存.bashrc文件并退出vim编辑器
-
执行如下命令让.bashrc文件的配置立即生效:
source ~/.bashrc
-
可以使用如下命令查看是否安装成功:
java -version
如果能够在屏幕上返回如下信息,则说明安装成功:
hadoop@ubuntu:~$ java -version java version "1.8.0_162" Java(TM) SE Runtime Environment (build 1.8.0_162-b12) Java HotSpot(TM) 64-Bit Server VM (build 25.162-b12, mixed mode)
屏幕上会显示安装的对应版本
注意:只是为当前用户配置了Java环境,如果以root用户登录(假设刚才配置的不是root用户),则没有Java环境
网络配置
-
使用集群时,虚拟机的网络连接方式要更改为“桥接网卡”模式才能实现多个节点互连,一定要确保各个节点的Mac地址不能相同,否则会出现 IP冲突
-
修改主机名:
sudo vim /etc/hostname
需要重启Linux系统才能看到主机名的变化
-
修改hosts文件:
sudo vim /etc/hosts
注意:一般hosts文件中只能有一个127.0.0.1,其对应主机名为localhost,如果有多余127.0.0.1映射,应删除,修改后需要重启Linux系统
可以使用ping命令查看是否修改成功
SSH无密码登录其他虚拟机
设登录主机为Master节点,被登录主机为Salve节点
-
生成Master节点的公匙,如果之前已经生成过公钥,必须要删除原来生成的公钥,重新生成一次,因为前面我们对主机名进行了修改。具体命令如下:
cd ~/.ssh # 如果没有该目录,先执行一次ssh localhost rm ./id_rsa* # 删除之前生成的公匙(如果已经存在) ssh-keygen -t rsa # 执行该命令后,遇到提示信息,一直按回车就可以
-
为了让Master节点能够无密码SSH登录本机,需要在Master节点上执行如下命令:
cat ./id_rsa.pub >> ./authorized_keys
完成后可以执行命令“ssh Master”来验证一下,可能会遇到提示信息,只要输入yes即可,测试成功后,请执行“exit”命令返回原来的终端
-
在Master节点将上公匙传输到Slave节点:
# 例如scp ~/.ssh/id_rsa.pub hadoop@Slave:/home/hadoop/ scp ~/.ssh/id_rsa.pub 用户名@主机名:/home/用户名/
如果Master的用户名和Slave的用户名相同,则第一个用户名可以省略
上面的命令中,scp是secure copy的简写,用于在 Linux下进行远程拷贝文件,类似于cp命令,不过,cp只能在本机中拷贝。执行scp时会要求输入Slave上用户的密码,输入完成后会提示传输完毕,如下图所示:
-
接着在Slave节点上,将SSH公匙加入授权:
mkdir ~/.ssh # 如果不存在该文件夹需先创建,若已存在,则忽略本命令 cat ~/id_rsa.pub >> ~/.ssh/authorized_keys rm ~/id_rsa.pub # 用完以后就可以删掉
如果有其他Slave节点,也要执行将Master公匙传输到Slave节点以及在Slave节点上加入授权这两步操作
-
在Master节点上就可以无密码SSH登录到各个Slave节点了,可在Master节点上执行如下命令进行检验:
# 例如ssh Slave ssh 用户名@主机名
如果Master的用户名和Slave的用户名相同,则用户名可以省略
执行该命令的效果如下图所示:
公匙传输到Slave节点以及在Slave节点上加入授权这两步操作 -
在Master节点上就可以无密码SSH登录到各个Slave节点了,可在Master节点上执行如下命令进行检验:
# 例如ssh Slave ssh 用户名@主机名
如果Master的用户名和Slave的用户名相同,则用户名可以省略
执行该命令的效果如下图所示: