服务器规划配置服务器
修改服务器名(所有节点)
重启服务器 修改映射 hosts (所有节点)关闭防火墙(所有节点)关闭 SELinux(所有节点)配置用户 (所有节点)SSH 无密登录配置(所有节点)创建文件夹 (所有节点)安装 rsync(所有节点)安装 net-tool (所有节点)集群脚本
复制文件到集群分发 xsync 安装默认环境
安装 Java8分发 JDK分发 my_env.sh 查看集群 Java 进程
分发 jpsall
服务器规划三台云服务器 ( 有钱豪横 ) , 目前有 5 台 , 先 3 台玩玩手感
| 名 | 配置 |
|---|---|
| cpu101 | 8核 32G |
| cpu102 | 8核 32G |
| cpu103 | 8核 32G |
集群服务器规划 :
| 服务名称 | 子服务 | cpu101 | cpu102 | cpu103 |
|---|---|---|---|---|
| HDFS | NameNode | √ | ||
| DataNode | √ | √ | √ | |
| SecondaryNameNode | √ | |||
| Yarn | NodeManager | √ | √ | √ |
| Resourcemanager | √ | |||
| Zookeeper | Zookeeper Server | √ | √ | √ |
| Flume(采集日志) | Flume | √ | √ | |
| Flume(消费Kafka) | Flume | √ | ||
| Kafka | Kafka | √ | √ | √ |
| Hive | Hive | √ | ||
| MySQL | MySQL | √ | ||
| DataX | DataX | √ | ||
| Maxwell | Maxwell | √ | ||
| Presto | Coordinator | √ | ||
| Worker | √ | √ | √ | |
| DolphinScheduler | MasterServer | √ | ||
| WorkerServer | √ | √ | √ | |
| Druid | Druid | √ | √ | √ |
| Kylin | √ | |||
| Hbase | HMaster | √ | ||
| HRegionServer | √ | √ | √ | |
| Superset | √ | |||
| Atlas | √ | |||
| Solr | Jar | √ | √ | √ |
| Sqoop | ||||
| Tez | ||||
| Kerberos | ||||
| Ranger | ||||
| Flink | ||||
| Spark | ||||
| flink-sql-gateway |
修改主机名(所有节点,重启生效)
vim /etc/hostname
查看主机名称
cat /etc/hostname重启服务器
全部节点重启
reboot修改映射 hosts (所有节点)
修改 host 文件(所有节点)
注意 , 当机器不在一个网络中时 , 本机的必须配内网IP , 连接其他云服务用公网IP
在同一个网络时 , 全部配置内网IP
如 , 在 cpu101 配置映射时:
内网ip cpu101 外网ip cpu102 外网ip cpu103
vim /etc/hosts关闭防火墙(所有节点)
关闭防火墙(所有节点)
systemctl stop firewalld
关闭自启动
systemctl disable firewalld.service
查看防火墙状态
systemctl status firewalld关闭 SELinux(所有节点)
修改配置文件需要重启机器,永久生效
vim /etc/sysconfig/selinux
SELINUX=disabled
reboot
查看SELinux状态
sestatus配置用户 (所有节点)
添加 cpu 用户(所有节点,UID 最好大于1000,可能以后会有莫名其妙的问题)
useradd -m cpu -s /bin/bash -u 1050
修改密码
passwd cpu
查看各用户
cat /etc/passwd
配置 cpu 用户具有 root 权限, 方便后期加 sudo 执行 root 权限的命令
vim /etc/sudoers
修改 /etc/sudoers 文件,在 %wheel 这行下面添加一行
cpu ALL=(ALL) NOPASSWD:ALL
切换到该用户
su cpuSSH 无密登录配置(所有节点)
生成公钥和私钥 ( 所有节点 )
ssh-keygen -t rsa
将公钥拷贝到要免密登录的目标机器上 ( 所有节点 )
ssh-copy-id cpu101
ssh-copy-id cpu102
ssh-copy-id cpu103创建文件夹 (所有节点)
在 /opt 目录下创建文件夹
sudo mkdir module
sudo mkdir software
修改 module、 software 文件夹的所有者和所属组均为 cpu用户
sudo chown cpu:cpu module/
sudo chown cpu:cpu software/
cd ~
mkdir bin安装 rsync(所有节点)
离线下载
http://mirrors.163.com/centos/7/os/x86_64/Packages/
sudo rpm -ivh rsync-3.1.2-10.el7.x86_64.rpm安装 net-tool (所有节点)
工具包集合,包含 ifconfig 等命令
离线下载
http://mirrors.163.com/centos/7/os/x86_64/Packages/
sudo rpm -ivh net-tools-2.0-0.25.20131004git.el7.x86_64.rpm集群脚本
配置用户环境变量
新建 /etc/profile.d/my_env.sh 文件
sudo vim /etc/profile.d/my_env.sh
添加如下内容
#CPU_HOME export CPU_HOME=/home/cpu export PATH=$PATH:$CPU_HOME/bin
让新的环境变量 PATH 生效
source /etc/profile复制文件到集群
vim xsync
#!/bin/bash #1. 判断参数个数 if [ $# -lt 1 ] then echo Not Enough Arguement! exit; fi #2. 遍历集群所有机器 for host in cpu101 cpu102 cpu103 do echo ==================== $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:$pdir else echo $file does not exists! fi done done
修改脚本 xsync 具有执行权限
chmod 777 xsync分发 xsync
xsync ./xsync安装默认环境 安装 Java8
删除JDK
rpm -qa | grep -i java | xargs -n1 rpm -e --nodeps
xargs -n1:表示每次只传递一个参数rpm -e --nodeps:强制卸载软件
上传文件到 /opt/software目录下
到 /opt/module 目录下
tar -zxvf jdk-8u212-linux-x64.tar.gz -C /opt/module/
配置 JDK 环境变量
/etc/profile.d/my_env.sh 文件
sudo vim /etc/profile.d/my_env.sh
添加如下内容
#JAVA_HOME export JAVA_HOME=/opt/module/jdk1.8.0_212 export PATH=$PATH:$JAVA_HOME/bin
让新的环境变量 PATH 生效
source /etc/profile
测试 JDK 是否安装成功
java -version分发 JDK
xsync jdk1.8.0_212/分发 my_env.sh
sudo ~/bin/xsync /etc/profile.d/my_env.sh查看集群 Java 进程
vim jpsall
#!/bin/bash
for host in cpu101 cpu102 cpu103
do
echo =============== $host ===============
ssh $host "jps $@ | grep -v Jps"
done
修改脚本 jpsall 具有执行权限
chmod 777 jpsall分发 jpsall
xsync ~/bin/jpsall



