linux环境配置
基础准备工作:
-
- 检测原先安装的linux的jdk配置OK:
- 要求jdk为1.8, 如果不是, 参考今天资料中 <<centos6.x 安装JDK.doc>>
-
- 检测原先安装的MySQL是否能够正常连接: 主要检测本地连接和远程连接两方面
- 如果有问题: 参考资料中《centos6.x 安装MySQL.doc》
【本地连接】
【远程连接】
1.1 软件安装目录
安装包存放的目录: /export/software
软件安装的目录: /export/servers
日志文件的目录: /export/logs
数据存储的目录: /export/data
使用一下命令创建上述目录结构:
mkdir -p /export/software
mkdir -p /export/servers
mkdir -p /export/logs
mkdir -p /export/data
注意: 后续几乎所有的软件都会安装到此目录进行存放
执行后的效果:
1.2 linux防火墙相关配置
-
- 查看防火墙规则
- vim /etc/sysconfig/iptables
-
2)防火墙相关命令:
service iptables start # 表示启动防火墙
service iptables restart # 表示重启防火墙
service iptables stop # 表示关闭防火墙,及时生效, 此关闭只是一次性的,下次开启会自动打开
chkconfig iptables off # 永久关闭, 当前不生效, 下一次启动生效
注意:在实际工作当中,大数据集群一般都是放置在内网当中,通过跳板机进行连接,所以一般都是直接关闭防火墙即可,但是在实际工作中,web服务器关闭防火墙一定要谨慎,避免服务器感染病毒
-
- 在大数据环境下, 建议linux深层防火墙selinux也一并关闭
vim /etc/selinux/config # 打开配置文件
SELINUX = enforcing 更改为 SELINUX = disabled
:wq # 保存退出
reboot # 重启linux
1.3 克隆虚拟机
需要注意: 在克隆时, 要保证被克隆的机子是关闭状态
- 1)找到虚拟机(centos)的安装目录
-
- 将这个目录复制出来一份, 改个名
-
- 打开这个新复制出来的目录, 找到一个以 vmx为后缀的文件
-
- 双击这个文件, 就会自动打开vmware, 并添加一个新的虚拟机
- 双击这个文件, 就会自动打开vmware, 并添加一个新的虚拟机
但是会发现: 新的虚拟机的名称和原有的名称是一样的, 此时可以选择这个新虚拟机, 右键重命名即可
-
- 开启新虚拟机, 选择我已复制此虚拟机
-
- 到此步, 一个新的虚拟机也就产生了, 重复执行以上步骤, 一共需要三台虚拟机
克隆完毕后, 有可能虚拟机是没有ip地址, 或者多个虚拟机的ip地址是重复的, 同时CRT也是无法连接的, 通过后续的步骤, 会进行解决
1.4 配置静态ip地址
统一要求: 三台虚拟机的ip地址分别为: 192.168.72.141 , 192.168.72.142 , 192.168.72.143
-
- 将所有虚拟机关闭
-
- 打开vmware中的网络编辑器
-
- 选择vmnet8 : 修改其 子网 和网关
-
- 打开windows中网络适配器, 找到Vmnet8这张网卡, 进行一下修改
-
- 分别打开每一台虚拟机, 分别执行以下内容:
- 5.1) 使用 ifconfig -a 查看当前使用的网卡
- 5.2) 输入 setup进入网卡编辑界面
关于 static IP 表示的就是静态的ip地址:
需要按照要求, 三台虚拟机分别修改为 192.168.72.141 , 192.168.72.142,192.168.72.143
修改完成后: 按下 ESC , 输入 :wq 保存退出
-
- 重启网卡即可
service network restart : 重启网卡
-
- 检测网络是否OK:
注意: 关于虚拟机静态ip的配置, 建议一台一台配置, 切莫不要一次性全搞, 以免搞混
1.5 修改主机名
统一要求: 三台虚拟机的主机名分别为: node01 , node02, node03
基本对应关系:
192.168.72.141 node01
192.168.72.142 node02
192.168.72.143 node03
-
- 分别打开三台虚拟机
-
- 分别在每个虚拟机中执行:
vi /etc/sysconfig/network
按照对应关系,分别修改每个虚拟机中红框标中的地方即可
-
- 修改完成后, 如果要生效, 需要重启服务器, 重启后, 观察主机名是否修改
观察红框的位置即可…
做完此步, 即**可通过CRT软件, 来远程连接虚拟机**
### 1.6 配置映射关系
* 1) 分别打开三台虚拟机
* 2) 输入命令 : vi /etc/hosts

* 3) 在这个文件中添加以下内容:
192.168.72.141 node01
192.168.72.142 node02
192.168.72.143 node03
添加后效果如下: 每个文件都是一样的

### 1.7 时钟同步
> 后期集群搭建以后, 根据每一台的服务器的时间, 做同步操作, 如果时间都不一致, 同步的方式就会发生改变, 导致各个节点上的数据都不一样
- 同步的方式非常简单, 三台虚拟机联网同步即可
ntpdate us.pool.ntp.org # 此命令即可和时钟服务器进行同步
- 配置定时, 让服务器定时到时钟服务器上同步自己的时间
crontab -e # 设置定时任务, 输入此命令, 会弹出一个本文, 用于编辑定时任务
输入 “i” , 进入编辑模式
#添加如下内容: 表示每分钟进行一次同步, 使用的是crontab表达式
*/1 * * * * /usr/sbin/ntpdate us.pool.ntp.org;
- crontab表达式说明 :

### 1.8 ssh免密登录
ssh : 远程登录协议, 是一个比较安全可靠的协议, 同时使用ssh可以远程登录后执行相关命令
- 使用ssh远程登录格式 : ssh 用户名@ip地址(主机名)
- 例如: ssh root@192.168.72.142
- 如果没有配置ssh免密登录, 回车后会让输入远程登录的密码

如何配置免密登录:
- 1) 为每一台虚拟机生成公钥和私钥
ssh-keygen -t rsa # 使用非对称加密生成公钥和私钥, 一直回车或就会在家目录下生成一个.ssh目录文件

> 带.pub 的 即为公钥文件

- 2) 选择某一台虚拟机, 进入.ssh 目录, 创建authorized_keys文件
- 注意 : 如果当前已经存在此文件, 就不需要执行此命令
touch authorized_keys # 创建一个空文件
- 3) 将三台服务器(包括当前这一台)上的公钥文件中的内容都存储到这个文件中
此命令为例子, 将远程主机名更改为三台服务器的ip地址或者主机名即可, 然后输入密码即可拷贝
ssh root@远程主机名 cat /root/.ssh/id_rsa.pub >> authorized_keys
- 4) 将 authorized_keys这个文件发给其他的两台服务器
此命令为一个格式, 需要将主机名分别设置为其他两台服务器的主机名或ip, 并分别执行即可
scp authorized_keys root@主机名:/root/.ssh/
或者使用:
scp authorized_keys root@主机名:$PWD
- 5) 测试: 是否OK

### 1.9 权限管理
[外链图片转存失败(img-1nKNMocd-1562852417787)(assets/1558886513130.png)]
* chmod命令 : 变更文件或目录的权限
* 语法 : chmod [参数]\[<权限范围><符号><权限代号>] [xxx文件]
* 参数 : -R 递归处理, 将指定目录下所有的文件及子目录一并处理
* 权限范围 :
* u : user 即文件或目录的拥有者
* g : group 即文件或目录的所属群组
* o : Other ,除了文件或目录拥有者或所属群组之外,其他用户皆属于这个范围
* a : all , 即全部的用户,包含拥有者,所属群组以及其他用户
* 符号 :
* \+ : 添加权限
* \- : 取消权限
* 权限代号 :
* r : 读取权限, 数字代码为 "4"
* w : 写入权限, 数字代号为 "2"
* x : 执行或进入目录的权限, 数字代号为 "1"
* \- : 不具备任何权限, 数字代号为"0"
* 常用操作:
```shell
mkdir xxx
ll | grep xxx
chmod u-rwx xxx #取消xxx目录,用户“读写执行”权限
chmod g-rwx xxx #取消xxx目录,组“读写执行”权限
chmod 777 xxx #给xxx目录添加所有权限
* \+ : 添加权限
* \- : 取消权限
- 权限代号 :
- r : 读取权限, 数字代码为 “4”
- w : 写入权限, 数字代号为 “2”
- x : 执行或进入目录的权限, 数字代号为 “1”
- - : 不具备任何权限, 数字代号为"0"
- 常用操作:
mkdir xxx
ll | grep xxx
chmod u-rwx xxx #取消xxx目录,用户“读写执行”权限
chmod g-rwx xxx #取消xxx目录,组“读写执行”权限
chmod 777 xxx #给xxx目录添加所有权限