集群规划

| 机器 | linux100 | linux102 | linux103 | linux104 |
|---|---|---|---|---|
| Hadoop | √ | √ | √ | |
| Zookeeper | √ | √ | √ | |
集群配置
| centos version | 7.5 |
|---|---|
| 安装模式 | 最小安装模式(参考:centos安装配置参考)![]() 磁盘分区: ![]() centos init```shell |
cd /etc/sysconfig/network-scripts
vi ifcfg-ens33
DEVICE=ens33 TYPE=Ethernet NOBOOT=yes BOOTPROTO=static NAME=ens33 IPADDR=192.168.10.100 PREFIX=24 GATEWAY=192.168.10.2 DNS1=192.168.10.2
yum update yum install vim # vim yum install rsync # rsync yum install net-tools # ifconfig, 也可以使用原生的ip addr
|| 网关 | 192.168.10.0 (掩码:255.255.255.0) || root用户 | 账号:root 密码:root || 访问用户 | 账号:linux 密码:000000 || 主机名 | ```shellvim /etc/hostnamelinux100 # 根据集群的规划来分配名称
| | linux主机名称映射 | ```shell vim /etc/hosts
根据网关下的ip地址与主机名进行映射
192.168.10.100 linux100 192.168.10.101 linux101 192.168.10.102 linux102 192.168.10.103 linux103 192.168.10.104 linux104 192.168.10.105 linux105 192.168.10.106 linux106 192.168.10.107 linux107 192.168.10.108 linux108
|| windows主机文件映射 | ```shellvim C:\Windows\System32\drivers\etc192.168.10.100 linux100192.168.10.101 linux101192.168.10.102 linux102192.168.10.103 linux103192.168.10.104 linux104192.168.10.105 linux105192.168.10.106 linux106192.168.10.107 linux107192.168.10.108 linux108
| | 创建工作文件夹 | ```shell mkdir /opt/module mkdir /opt/software
chown linux:linux /opt/module chown linux:linux /opt/module
|| 卸载虚拟机自带的JDK | ```shellrpm -qa | grep -i java | xargs -n1 rpm -e --nodeps
- rpm -qa查询所安装的所以rpm软件包
- grep -i忽略大小写
- xargs -n1表示每次只传递一个参数
- rpm -e --nodeps强制卸载软件
|
| 解压.tar.gz | ```shell
tar -zxvf xxx.tar.gz -C /opt/module/
|| 配置环境变量 | ```shellvim /etc/profile.d/my_env.sh # 新建my_env.sh文件# JAVA_HOMEexport JAVA_HOME=/opt/module/jdk1.xxxexport PATH=$PATH:$JAVA_HOME/bin# HADOOP_HOMEexport HADOOP_HOME=/opt/module/hadoop-3.1.3export PATH=$PATH:$HADOOP_HOME/binexport PATH=$PATH:$HADOOP_HOME/sbin# 让新的环境变量path生效source /etc/profile
|
| 集群文件分发脚本 |
- 前提知识
```shell
scp —help # scp(secure copy)安全拷贝
unknown option — -
usage: scp [-12346BCpqrv] [-c cipher] [-F ssh_config] [-i identity_file]
[-l limit] [-o ssh_option] [-P port] [-S program]
[[user@]host1:]file1 … [[user@]host2:]file2
scp 可以实现服务器与服务器之间的数据拷贝。(from server1 to server2)
基本语法
scp -r $pdir/$fname $user@$host:$pdir/$fname -r 递归
也可以在目标机器使用命令,将原来机器的文件拷贝过来
rsync远程同步工具
rsync主要用于备份和镜像。具有速度快、避免复制相同内容和支持符号链接额优点
rsync和scp区别:用rsync做文件的复制要比scp速度快,rsync只对差异文件做更新,scp是吧所有文件都复制过去。
基本语法
rsync -av $pdir/$fname $user@$host:$pdir/$fname -a 归档拷贝 -v 显示复制过程
<br />- 分发脚本<br /> - 创建文件`cd ~`,`touch xsync`<br /> - 写入脚本<br /> - 修改xsync执行权限`chmod +x xsync`<br /> - 测试脚本<br /> - 将脚本复制到`/bin`中,方便全局调用`cp xsync /bin/`<br /> - 注意:如果用sudo,那么xsync一定要给他的路径不全。<br />```shell#!/bin/bash# 1.判断参数的个数if [ $# -lt 1 ]thenecho Not Enough Arguement!exit;fi# 2.遍历集群所有机器for host in xxx # xxx代表要分发的机器的集合doecho ======================= $host =======================# 3.遍历所有目录,挨个发送for file in $@do# 4.判断文件是否存在if [ -e $file ]then# 5.获取父目录pdir=$(cd -P $(dirname $file); pwd)# 6.获取当前文件的名称fname=$(basename $file)ssh $host "mkdir -p $pdir"rsync -av $pdir/$fname $host:$pdirelseecho $file does not exists!fidonedone
|
| SSH无秘登录 |
- 原理

- 生成公钥和私钥
```shell
cd /home/xxx/.ssh
ssh-keygen -t rsa
生成三个文件,id_rsa(私钥)、id_rsa.pub(公钥)
<br />- 将公钥拷贝到要免密登录的机器上 `ssh-copy-id 机器名`<br />- 注意:在集群使用的时候,我们要给普通账号分别在其他机器上配置无秘登录。还需要给master的root账户配置无秘登录<br />- 注意:.ssh目录权限需要是700. `chmod 700 .ssh`;authorized-key权限为600<br /> |
| jpsall | ```shell
#!/bin/bash
for host in linux102 linux103 linux104
do
echo ======================= $host =======================
ssh $host "jps; exit"
done
| | 关闭防火墙 | ```shell systemctl stop firewalld systemctl disable firwalld.service
|
| 配置atguigu用户拥有root权限 | ```shell
[root@linux102 etc]# vim /etc/sudoers
# 修改/etc/sudoers文件,在%wheel这行下面添加一行,如下:
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
## Allows members of the 'sys' group to run networking, software,
## service management apps and more.
# %sys ALL = NETWORKING, SOFTWARE, SERVICES, STORAGE, DELEGATING, PROCESSES, LOCATE, DRIVERS
## Allows people in group wheel to run all commands
%wheel ALL=(ALL) ALL
linux ALL=(ALL) NOPASSWD:ALL
注意:linux这一行不要直接放到root下面,因为所有用户都属于%wheel组,你先配置了linux具有免密功能,但是程序执行到%wheel行时,该功能又被覆盖回需要密码。所以linux要放到%wheel这行下面。 |


