對於企業而言,通常的集羣大小規模大概是以下映射關係:java
集羣大小node
小:10~30節點python
中:100~300節點mysql
大:1000+節點linux
對應所需的zookeeper集羣規模大概是sql
小:3臺shell
中:5臺數據庫
大:7臺apache
有些同窗會說,學這玩意啥用啊?我以前集羣環境搭的可6了,咔咔咔一頓操做就OK了,老哥,你試想一下,2000臺集羣節點呢?按照咱們以前的配置方式。。。。。。請開始你的表演。json
那麼,咱們不得不使用CM或相似CM的工具來管理咱們的集羣。
官方地址:http://www.cloudera.com/
集羣管理工具:Cloudera Manager
小企業:
能夠選擇IBM System服務器
DataNode 20~30臺,不須要支持RAID冗餘,內存16~24G,對內存要求不大,主要消耗磁盤,磁盤預算:
通常都是16~18TB
天天產生20~50萬訪問量
每條日誌大小:100~500bytes
每次訪問平均產生5條日誌
一天的數據量:
20~50萬訪問量 * 5條 * 500字節 / 1024 / 1024 ≈ 1192.0928兆字節數據
通常須要存儲1年的數據:
1~5G * 365 = 365~1825G * 3副本 = 1095~5475GB
磁盤通常預留20%,因此可用空間爲80%,那麼上面獲得的數據除以80%便可。
NameNode 2臺,內存預算:
1G內存 --- 存儲100萬個元數據---100萬個文件---通常咱們須要NameNode內存爲128G
ResourceManager通常與NameNode部署在一塊兒
NodeManager通常與DataNode部署在一塊兒
Zookeeper 內存要求不高,對於磁盤的讀寫性能要求高,網絡帶寬要求很是高
HBase
HMaster 要求較高的網絡帶寬
HRegionServer 對內存要求高,分爲以下兩個開銷:
memstore
blockcache
CDH是apache hadoop發行版
CM是集羣管理工具
主從架構Master-slaves
主節點:Server一個,負責集羣部署文件的分發
從節點:Agent多個,負責收集所在服務器的資源狀態信息,監測進程運行狀態
CM
CM版本:5.7.0 cloudera-manager-centos7-cm5.7.0_x86_64.tar.gz
下載地址
http://archive.cloudera.com/cm5/cm/5/cloudera-manager-centos7-cm5.7.0_x86_64.tar.gz
CDH
CDH版本:5.7.0
CDH-5.7.0-1.cdh5.7.0.p0.45-el7.parcel
CDH-5.7.0-1.cdh5.7.0.p0.45-el7.parcel.sha1
manifest.json
下載地址
http://archive.cloudera.com/cdh5/parcels/5.7.0/
打包傳送門:
連接:http://pan.baidu.com/s/1o8v4Wiu 密碼:dghz
配置IP
# vi /etc/sysconfig/network-scripts/ifcfg-eno16777736,配置以下,具體忘記的請參看Linux網絡配置
配置主機名
# vi /etc/hostname
修改成:hadoop-senior01.zleyi.com,完成後重啓機器
在Windows中配置hosts,再也不贅述
在Linux中配置hosts
# echo"192.168.122.150 hadoop-senior01.zleyi.com z01" >> /etc/hosts
# echo"192.168.122.151 hadoop-senior02.zleyi.com z02" >> /etc/hosts
# echo"192.168.122.152 hadoop-senior03.zleyi.com z03" >> /etc/hosts
禁用IPV6
#vi /etc/default/grub
修改以下:
防火牆
# systemctl stop firewalld
# systemctl disable firewalld
# systemctl status firewalld
SELINUX
# sed -i "s/SELINUX=enforcing/SELINUX=disabled/" /etc/selinux/config
# reboot now
重啓後使用以下命令檢查一下:
# getenforce
# sestatus-v
如圖:
Step一、使用yum命令安裝java
# yum -y install java
Step二、卸載OpenJDK
# rpm -qa | grep 'java'
# rpm -e --nodeps java-1.8.0-openjdk-headless-1.8.0.131-3.b12.el7_3.x86_64
# rpm -e --nodeps java-1.8.0-openjdk-1.8.0.131-3.b12.el7_3.x86_64
完成後如圖:
Step三、安裝下載的JDK的RPM包
JDK-rpm下載地址傳送門:
連接:http://pan.baidu.com/s/1o8v4Wiu 密碼:dghz
# rpm -ivh /opt/softwares/jdk-8u131-linux-x64.rpm
首先讓另外兩臺機器變成無桌面啓動吧,至少能夠速度稍快一些,固然也能夠最小化安裝,而後自行安裝所需的工具。
# cat /etc/inittab
# systemctl set-default multi-user.target
在Server主節點配置:
$ ssh-keygen-t rsa
$ ssh-copy-id 192.168.122.150
$ ssh-copy-id 192.168.122.151
$ ssh-copy-id 192.168.122.152
Step一、首先在主節點上同步一下 時間
# ntpdate cn.pool.ntp.org
Step二、編輯配置文件
# vi /etc/ntp.conf
Server和NameNode主節點
而後,主節點:
# systemctl start ntpd.service
# systemctl enable ntpd.service
其餘節點:
# systemctl stop ntpd.service
# systemctl disable ntpd.service
在其餘節點配置定時任務,用於定時同步時間:
# crontab -e
*/10 * * * * /usr/sbin/ntpdate z01
重啓定時任務:
# systemctl restart crond.service
設置BIOS時鐘:系統關機時把內存中的系統時間寫入並修改主板時間,從新啓動系統時,系統時間會與硬件時間同步,從而保證時間的一致性。
Step一、修改ntpd文件
# vi /etc/sysconfig/ntpd
Step二、修改ntpdate文件
# vi /etc/sysconfig/ntpdate
注意3臺機器都要有這些操做。
# ulimit -a,查看當前系統的上述配置的上限,unlimited爲無上限,如圖:
修改參數:
# vi /etc/security/limits.conf
修改以下:
尖叫提示:3臺機器都須要配置重啓一下
尖叫提示:若是這個文件配置出現錯誤,重啓後,該機器節點將不能再使用。須要進入單用戶模式修復,具體請百度之。
先檢查是否有已經安裝的mysql,若是有,請刪除(參考刪除OpenJDK)
Step一、更新mysql的rpm
# rpm -Uvh /opt/softwares/mysql57-community-release-el6-8.noarch.rpm
打包傳送門:
連接:http://pan.baidu.com/s/1o8v4Wiu 密碼:dghz
# cd /etc/yum.repos.d
該目錄下,新增兩個文件:
Step二、修改這兩個文件的配置
# vi mysql-community.repo
# vi mysql-community-source.repo
Step三、更新緩存
# yum makecache
Step四、刪除預安裝的mysql
# rpm -qa | grep mysql
# rpm -e mysql57-community-release-el6-8.noarch
Step五、查看有哪些mysql包可使用yum安裝
# yum repolist enabled | grep mysql
Step六、安裝
# yum -y install mysql-community-server
Step七、啓動並初始化
# systemctl start mysqld
# mysql_secure_installation
剛開始是沒有密碼的,按照英文提示,基本上輸入個密碼,而後Y而後回車,而後Y而後回車,你懂得,最後就OK了。
# yum -y install chkconfig python bind-utils psmisc libxslt zlib sqlite cyrus-sasl-plain cyrus-sasl-gssapi fuse portmap fuse-libs redhat-lsb
Step一、解壓
將剛纔下載好的tar包解壓到cloudera-manager目錄下:
$ mkdir /opt/modules/cloudera-manager
$ tar -zxf /opt/softwares/cloudera-manager-centos7-cm5.7.0_x86_64.tar.gz -C /opt/modules/cloudera-manager/
Step二、修改配置文件並遠程分發
$ vi /opt/modules/cloudera-manager/cm-5.7.0/etc/cloudera-scm-agent/config.ini
修改內容:
修改完成後,將該cloudera-manager安裝目錄scp到其餘機器節點
$ scp -r cloudera-manager/ z02:/opt/modules/
$ scp -r cloudera-manager/ z03:/opt/modules/
Step三、建立ClouderaManager的用戶
# useradd --system --home=/opt/modules/cloudera-manager/cm-5.7.0/run/cloudera-scm-server --no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm
檢查是否建立成功:
$ cat /etc/passwd | grep cloudera-scm
Step四、初始化數據庫
建立數據庫用戶
mysql> grant all privileges on *.* to temp@'%' identified by '123456' with grant option;
mysql> flush privileges;
查看結果:
mysql> select host,user from mysql.user;
拷貝mysql驅動包
# cp /opt/softwares/mysql-connector-java-5.1.26-bin.jar /usr/share/java
重命名驅動包:
# mv /usr/share/java/mysql-connector-java-5.1.26-bin.jar /usr/share/java/mysql-connector-java.jar
執行腳本:
# /opt/modules/cloudera-manager/cm-5.7.0/share/cmf/schema/scm_prepare_database.sh mysql scm -h hadoop-senior01.zleyi.com -utemp -p123456 --scm-host hadoop-senior01.zleyi.com scm scm scm
Step一、在agent節點建立parcels目錄,在server節點建立parcel-repo目錄
# mkdir -p /opt/cloudera/parcels
# mkdir -p /opt/cloudera/parcel-repo
Step二、拷貝一下文件到parcel-repo目錄
$ cp CDH-5.7.0-1.cdh5.7.0.p0.45-el7.parcel CDH-5.7.0-1.cdh5.7.0.p0.45-el7.parcel.sha1 manifest.json /opt/cloudera/parcel-repo/
Step三、拷貝sha1到sha,最後修改全部權限
$ cp CDH-5.7.0-1.cdh5.7.0.p0.45-el7.parcel.sha1 CDH-5.7.0-1.cdh5.7.0.p0.45-el7.parcel.sha
# chown -R cloudera-scm:cloudera-scm /opt/cloudera/
Step四、建立cloudera-scm-agent文件夾
$ mkdir /opt/modules/cloudera-manager/cm-5.7.0/run/cloudera-scm-agent
Step五、scp cm-5.7.0這個目錄到其餘機器節點
$ scp -r cm-5.7.0/ hadoop-senior02.zleyi.com:/opt/modules/cloudera-manager/
$ scp -r cm-5.7.0/ hadoop-senior03.zleyi.com:/opt/modules/cloudera-manager/
Step六、啓動Server以及Agent
Server:
# /opt/modules/cloudera-manager/cm-5.7.0/etc/init.d/cloudera-scm-server start
Agent:
# /opt/modules/cloudera-manager/cm-5.7.0/etc/init.d/cloudera-scm-agent start
Step七、打開界面,端口號:7180
下一步:
下一步:
下一步:
下一步:
等待分配完成後,下一步:
注意:紅框警告內容可使用以下辦法解決:
# echo 0 > /proc/sys/vm/swappiness
# echo never > /sys/kernel/mm/transparent_hugepage/defrag
# echo "echo 0 > /proc/sys/vm/swappiness">>/etc/rc.d/rc.local
# echo "echo never > /sys/kernel/mm/transparent_hugepage/defrag">>/etc/rc.d/rc.local
下一步:
下一步:
下一步:後面的也能夠直接跳過,咱們能夠到達該頁面,而後手動添加服務
尖叫提示:有一些須要用到mysql的服務,能夠添加時,再去建立Database,好比Monitor服務
mysql> create database monitor DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
暫停一下,後續再講
我的微博:http://weibo.com/seal13
QQ大數據技術交流羣(廣告勿入):476966007
做者:Z盡際連接:https://www.jianshu.com/p/104a267f2918來源:簡書著做權歸做者全部。商業轉載請聯繫做者得到受權,非商業轉載請註明出處。