这段时间在做大数据方面的开发,使用Hadoop、HBase、Spark、Spart Streaming、Kafka、Docker、Kubernetes等等平台与组件,在服务器运维方面也在模仿着别人重复造轮子。要基于这些系统进行开发,就必须搭建一套稳定的服务器环境,虽然网上有大量的文章与教程,但在学习使用的过程中,还是踩了无数个坑,熬了不知多少个夜晚与周末,直到现在才算是真正上手,能快速搭建好平台,对出现的问题也能快速响应做出处理,当然,现在的积累还是远远不够,还需要继续努力,深入研究这些系统的内核与运行机制。
接下来这些章节就是这段时间的学习成绩,记录下来,以后有需要时方便查看。
1. 集群部署规划(5节点)
在本地创建了5台虚拟机,每台分配2核CPU、2G内存和20G硬盘
IP分别为:
192.168.10.90 192.168.10.91 192.168.10.93 192.168.10.95 192.168.10.96
具体的安装规划如下
服务 | master | master_backup | node1 | node2 | node3 | 备注 |
---|---|---|---|---|---|---|
IP | 192.168.10.90 | 192.168.10.91 | 192.168.10.93 | 192.168.10.95 | 192.168.10.96 | 各服务器ip地址 |
JDK | ✔ | ✔ | ✔ | ✔ | ✔ | java运行环境 |
QuorumPeerMain | ✔ | ✔ | ZooKeeper集群管理调度工具 | |||
DFSZKFailoverController | ✔ | ✔ | ZooKeeper集群容灾控制器 | |||
JournalNode | ✔ | ✔ | 集群容灾控制器数据节点 | |||
NameNode | ✔ | ✔ | Hadoop NameNode | |||
ResourceManager | ✔ | ✔ | Hadoop节点资源管理 | |||
SecondaryNameNode | ✔ | ✔ | Hadoop SecondaryNameNode | |||
NodeManager | ✔ | ✔ | ✔ | Hadoop节点管理 | ||
DataNode | ✔ | ✔ | ✔ | Hadoop节点存储 | ||
HMaster | ✔ | ✔ | HBase Master | |||
HRegionServer | ✔ | ✔ | ✔ | HBase存储节点 | ||
Master | ✔ | ✔ | Spark Master | |||
Worker | ✔ | ✔ | ✔ | Spark工作节点 | ||
Kafka | ✔ | ✔ | Kafka分布式队列 |
2. 关闭防火墙
systemctl stop firewalld systemctl disable firewalld
3. 禁用SELinux安全策略
setenforce 0 vi /etc/selinux/config
将SELINUX值修改为disable
重启服务器使其生效
4. 安装常用工具包
yum install pcre-devel -y yum install openssl openssl-devel -y yum install gcc gcc-c++ ncurses-devel perl -y yum install zlib zlib-devel rsync xinetd -y yum install wget lrzsz libxml2 -y yum install kernel-devel libxslt-devel libpqxx-devel libffi-devel python-devel libpq-dev -y
5. 优化服务器网络环境配置
vi /etc/sysctl.conf
将里面的配置内容修改为下面配置
View Code
运行命令,让配置生效
sysctl –p
6. 更新yum
yum update
可以完成以上安装后,再从虚拟机上克隆出服务器,完成克隆后,记得重置虚拟网卡MAC地址
7. 修改Hosts设置
所有服务器都做以下操作:
vi /etc/hosts
添加下面内容
192.168.10.90 master 192.168.10.91 master-backup 192.168.10.93 node1 192.168.10.95 node2 192.168.10.96 node3
服务器分别运行下面命令,修改对应的主机名称
hostnamectl set-hostname master hostnamectl set-hostname master-backup hostnamectl set-hostname node1 hostnamectl set-hostname node2 hostnamectl set-hostname node3
PS:服务器设置的hostname不能有下划线,会影响hadoop集群配置格式化namenode时出错