這段時間在做大數據方面的開發,使用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
將里面的配置內容修改為下面配置
net.ipv6.conf.all.disable_ipv6 = 1 net.ipv6.conf.default.disable_ipv6 = 1 net.ipv6.conf.lo.disable_ipv6 = 1 vm.swappiness = 0 net.ipv4.neigh.default.gc_stale_time=120 # see details in https://help.aliyun.com/knowledge_detail/39428.html net.ipv4.conf.all.rp_filter=0 # net.ipv4.conf.default.rp_filter=0 net.ipv4.conf.default.arp_announce = 2 net.ipv4.conf.lo.arp_announce=2 net.ipv4.conf.all.arp_announce=2 # see details in https://help.aliyun.com/knowledge_detail/41334.html # net.ipv4.tcp_max_tw_buckets = 5000 # net.ipv4.tcp_syncookies = 1 # net.ipv4.tcp_max_syn_backlog = 1024 net.ipv4.tcp_synack_retries = 2 net.ipv4.ip_forward = 0 net.ipv4.conf.default.rp_filter = 1 net.ipv4.conf.default.accept_source_route = 0 kernel.sysrq = 0 kernel.core_uses_pid = 1 net.ipv4.tcp_syncookies = 1 kernel.msgmnb = 65536 kernel.msgmax = 65536 kernel.shmmax = 68719476736 kernel.shmall = 4294967296 net.ipv4.tcp_max_tw_buckets = 6000 net.ipv4.tcp_sack = 1 net.ipv4.tcp_window_scaling = 1 net.ipv4.tcp_rmem = 4096 87380 4194304 net.ipv4.tcp_wmem = 4096 16384 4194304 net.core.wmem_default = 8388608 net.core.rmem_default = 8388608 net.core.rmem_max = 16777216 net.core.wmem_max = 16777216 net.core.netdev_max_backlog = 262144 # net.core.somaxconn = 262144 net.core.somaxconn = 2048 net.ipv4.tcp_max_orphans = 3276800 net.ipv4.tcp_max_syn_backlog = 262144 net.ipv4.tcp_timestamps = 0 net.ipv4.tcp_syn_retries = 1 net.ipv4.tcp_tw_recycle = 1 net.ipv4.tcp_tw_reuse = 1 net.ipv4.tcp_mem = 94500000 915000000 927000000 net.ipv4.tcp_fin_timeout = 1 net.ipv4.tcp_keepalive_time = 10 net.ipv4.tcp_keepalive_probes=5 net.ipv4.ip_local_port_range = 1024 65535 vm.overcommit_memory = 1 fs.file-max = 1024000
運行命令,讓配置生效
sysctl –p
6.設置打開文件數限制
輸入命令
vi /etc/security/limits.conf
添加下面代碼
root soft nofile 1024000 root hard nofile 1024000 * soft nofile 1024000 * hard nofile 1024000
輸入命令
vi /etc/rc.local
添加下面代碼
ulimit -SHn 1024000
重啟服務器輸入下面命令查看是否生效
ulimit -n
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時出錯
版權聲明:本文原創發表於 博客園,作者為 AllEmpty 本文歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,否則視為侵權。
作者博客:http://www.cnblogs.com/EmptyFS/