1、服务器准备
Linux CentOS 7
服务器管理工具:FinalShell
FinalShell官方网站:http://www.hostbuf.com/
- 选择三台服务器做集群(本方案用的是阿里云的服务器)配置分别是1核4G 20Gb+2*1核2G 20Gb
- 更改服务器主机名为node1,node2,node3
hostnamectl set-hostname node1
init 6
- 添加host
/etc/hosts
192.168.88.101 node1 node1
192.168.88.102 node2 node2
192.168.88.103 node3 node3
- 配置ssh免密登录
将购买阿里云服务器时生成的.pem文件上传到
.ssh/目录,并重新更名为id_rsa
mv **.pem id_rsa
chmod 400 id_rsa
三台服务器均这么执行后,就可以进行相互访问了。
- 创建hadoop用户,并为其创建ssh免密登录
后续我们的服务都是用hadoop用户进行启动,而不会直接用root账户启动,也是为了安装考虑。
useradd hadoop
passwd hadoop
切换到hadoop用户,为3个服务器依次创建秘钥:
ssh-keygen -t rsa -b 4096
后面直接回车即可。
ssh-copy-id node1
ssh-copy-id node2
ssh-copy-id node3
这里有一个重点,在实际操作过程中,执行ssh-copy-id后报错
Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password)
====以下是坑=
这里花了很多时间解决,最终的解决方案是在每一台下面通过ssh-keygen生成秘钥文件后,在.ssh/目录下将id_rsa.pub文件下载下来,并依次拷贝到其余需要互相访问的目录下,因为名字都一样,所以建议下载后将id_rsa.pub更名为id_rsa+主机名.pub
然后在每台服务器的.ssh目录下
touch authorized_keys
cat id_rsa+主机名.pub >> authorized_keys
将所有公钥都放到authorized_keys文件中,即可实现ssh无秘钥访问了。
2、安装jdk
- 下载jdk1.8
下载地址:https://download.oracle.com/otn/java/jdk/8u381-b09/8c876547113c4e4aab3c868e9e0ec572/jdk-8u381-linux-x64.tar.gz - 在服务器新建目录,用于安装应用
mkdir -p /export/server
- 上传jdk安装包到/export/server目录
- 解压安装包
tar -zxvf jdk-8u381-linux-x64.tar.gz
- 建立软连接
ln -s jdk1.8.0_381 jdk
- 配置环境变量
vi /etc/profile
export JAVA_HOME=/export/server/jdk
export PATH=$PATH:$JAVA_HOME/bin
- 生效环境变量
source /etc/profile
- 验证
java -version
javac -version
- 修改本机默认Java
rm -rf /usr/bin/java
ln -s /export/server/jdk/bin/java /usr/bin/java
- 复制jdk包到另外两台
scp /export/server/jdk1.8.0_381 node2:/export/server/
scp /export/server/jdk1.8.0_381 node3:/export/server/
- 分别在node2和node3上进行环境变量配置即可。
以上就完成了服务器及Java环境变量的基本准备。
注意:如果是本地部署的虚拟机服务器,那么还需要关闭服务器的防火墙及端口限制,以及安装NTP时间同步服务。
防火墙等在正式发布后由专门的服务器运维进行管理,那时再进行开启。
下一篇我们就介绍如何安装Hadoop集群。