Linux中安装JDK
1. 软件准备
JDK安装包
下载地址:http://www.oracle.com/technetwork/java/javase/archive-139210.html
我这里使用 jdk-8u73-linux-x64.tar.gz
2. 手动安装JDK的步骤
(0) 查看系统中是否已经安装了JDK,如果有就卸载掉
[root@node01 ~]# rpm -qa | grep jdk
java-1.6.0-openjdk-1.6.0.35-1.13.7.1.el6_6.x86_64
java-1.7.0-openjdk-1.7.0.79-2.5.5.4.el6.x86_64
[root@node01 ~]# rpm -e --nodeps java-1.6.0-openjdk-1.6.0.35-1.13.7.1.el6_6.x86_64
[root@node01 ~]# rpm -e --nodeps java-1.7.0-openjdk-1.7.0.79-2.5.5.4.el6.x86_64
(1) 把JDK安装包上传到服务器并解压
[root@node01 ~]# tar -zxvf jdk-8u73-linux-x64.tar.gz -C /usr/local/
(2) 配置环境变量
系统级别的环境变量配置文件为/etc/profile
普通用户的环境变量配置文件为/home/用户名/.bashrc
或者/home/用户名/.bash_profile
我是用root用户安装的JDK,所以修改/etc/profile
文件,添加JDK的环境变量:
[root@node01 ~]# vim /etc/profile
# 在文件末尾追加以下内容
export JAVA_HOME=/usr/local/jdk1.8.0_73
export PATH=$PATH:$JAVA_HOME/bin
(3) 重新加载环境变量配置文件
[root@node01 ~]# source /etc/profile
(4) 验证
[root@node01 ~]# java -version
java version "1.8.0_73"
Java(TM) SE Runtime Environment (build 1.8.0_73-b02)
Java HotSpot(TM) 64-Bit Server VM (build 25.73-b02, mixed mode)
安装成功!
3. 使用脚本批量安装JDK
我们现在有一个JDK安装包在一台服务器上(node01),那我们要实现JDK自动批量安装到node02、node03、node04上
(1) 实现思路
需要以下几个步骤:
- node01把包传到其他服务器,或者其他服务器通过本地yum源的方式去node01中取(我这里实现的是后者)
- 给每一台机器发送一个安装脚本,并且让脚本自己执行
- 要写一个启动脚本,用来执行以上两步操作
(2) 编写一个安装脚本 installJDK.sh
作用:
- 负责从远程软件库(node01)下载 JDK 安装包
- 负责 JDK 的安装
- 负责 JDK 的环境变量配置
脚本内容:
#!/bin/bash
## 远程软件安装源(你可能需要修改这里)
BASE_SERVER=node01
## 为了防止系统没有安装 wget 工具,所以安装
yum install -y wget
## 远程下载(你可能需要修改这里的安装包所在的路径)
## 我的安装包放在/var/www/html/soft/下,所以我就写$BASE_SERVER/soft/
wget $BASE_SERVER/soft/jdk-8u73-linux-x64.tar.gz
## 解压到对应安装目录
tar -zxvf jdk-8u73-linux-x64.tar.gz -C /usr/local
## 配置环境变量
cat >> /etc/profile << EOF
export JAVA_HOME=/usr/local/jdk1.8.0_73
export PATH=\$PATH:\$JAVA_HOME/bin
EOF
## 删除安装包
rm -rf /root/jdk-8u73-linux-x64.tar.gz
## 检测安装是否成功
source /etc/profile
java -version
(3) 编写一个安装启动脚本 startInstallJDK.sh
作用:
- 负责安装脚本 installJDK.sh 的分发
- 负责安装脚本 installJDK.sh 的自动执行
脚本内容:
#!/bin/bash
## 要安装 JDK 的服务器目录列表
SERVERS=$*
## 密码(你可能需要修改)
PASSWORD=hadoop
## 软件源(你可能需要修改)
BASE_SERVER=node01
## 启动安装 installJDK.sh 脚本分发程序 和 自动安装
for SERVER in $SERVERS
do
# (你可以自定义这个路径)
scp installJDK.sh root@$SERVER:/root/
ssh root@$SERVER chmod 755 installJDK.sh
ssh root@$SERVER /root/installJDK.sh
done
(4) 运行演示
[root@node01 ~]# sh startInstallJDK.sh node02 node03 node04
该命令表示:在 node01 服务器上,用户 root 执行脚本 startInstallJDK.sh 在集群其他3个节点 node02 node03 node04 中安装了JDK
注意:
以上脚本执行需要配置集群各节点之间免秘钥登录,参考:
配置各台虚拟机之间免秘钥登录node01服务器必须安装httpd服务,并且启动该服务
安装httpd服务:
yum install httpd -y
启动httpd服务:
service httpd start
- 在node01的/var/www/html目录下放置安装包
我在其中又创建了soft目录,然后在soft目录下放置了JDK安装包,所以在我的installJDK.sh中,从node01下载JDK安装包的路径是这么写的:
wget $BASE_SERVER/soft/jdk-8u73-linux-x64.tar.gz
如果你直接放在了/var/www/html目录下,你的路径应该是:
wget $BASE_SERVER/jdk-8u73-linux-x64.tar.gz
(5) 验证
[root@node02 ~]# java -version
java version "1.8.0_73"
Java(TM) SE Runtime Environment (build 1.8.0_73-b02)
Java HotSpot(TM) 64-Bit Server VM (build 25.73-b02, mixed mode)
[root@node03 ~]# java -version
java version "1.8.0_73"
Java(TM) SE Runtime Environment (build 1.8.0_73-b02)
Java HotSpot(TM) 64-Bit Server VM (build 25.73-b02, mixed mode)
[root@node04 ~]# java -version
java version "1.8.0_73"
Java(TM) SE Runtime Environment (build 1.8.0_73-b02)
Java HotSpot(TM) 64-Bit Server VM (build 25.73-b02, mixed mode)