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

java 如何实现服务器不停机更新_java 如何实现服务器不停机更新

  • 配置环境变量
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集群。