ClouderaManager與CDH


* ClouderaManager與CDH

集群簡述

對於企業而言,一般的集群大小規模大概是如下映射關系:

集群大小

小:10~30節點

中:100~300節點

大:1000+節點

對應所需的zookeeper集群規模大概是

小:3台

中:5台

大:7台

有些同學會說,學這玩意啥用啊?我之前集群環境搭的可6了,咔咔咔一頓操作就OK了,老哥,你試想一下,2000台集群節點呢?按照我們之前的配置方式。。。。。。請開始你的表演。

那么,我們不得不使用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

Cloudera Manager結構

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

部署Cloudera Manager

一、網絡配置

配置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

修改如下:

 
完成后重啟機器

二、防火牆與SELINUX

防火牆

# 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

如圖:

 
 

三、JDK

Step1、使用yum命令安裝java

# yum -y install java

Step2、卸載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

完成后如圖:

 
然后重啟機器,使用java -verion驗證

Step3、安裝下載的JDK的RPM包

JDK-rpm下載地址傳送門:

鏈接:http://pan.baidu.com/s/1o8v4Wiu 密碼:dghz

# rpm -ivh /opt/softwares/jdk-8u131-linux-x64.rpm

四、首先克隆出2台機器,把需要變化的東西修改一下,然后准備配置SSH無密鑰登錄

首先讓另外兩台機器變成無桌面啟動吧,至少可以速度稍快一些,當然也可以最小化安裝,然后自行安裝所需的工具。

# 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

五、NTP時間同步

Step1、首先在主節點上同步一下 時間

# ntpdate cn.pool.ntp.org

Step2、編輯配置文件

# 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時鍾:系統關機時把內存中的系統時間寫入並修改主板時間,重新啟動系統時,系統時間會與硬件時間同步,從而保證時間的一致性。

Step1、修改ntpd文件

# vi /etc/sysconfig/ntpd

 
注意注釋下邊那一行添加的內容SYNC_HWCLOCK=yes

Step2、修改ntpdate文件

# vi /etc/sysconfig/ntpdate

 

 
最后一行改為了yes

注意3台機器都要有這些操作。

六、設置用戶最大可打開文件數,進程數,內存占用

# ulimit -a,查看當前系統的上述配置的上限,unlimited為無上限,如圖:

 
 

修改參數:

# vi /etc/security/limits.conf

修改如下:

 

 
配置完成后重啟機器,*代表所有用戶,@表示對某個用戶組生效,直接寫用戶名表示對某個用戶生效

尖叫提示:3台機器都需要配置重啟一下

尖叫提示:如果這個文件配置出現錯誤,重啟后,該機器節點將不能再使用。需要進入單用戶模式修復,具體請百度之。

七、Mysql安裝

先檢查是否有已經安裝的mysql,如果有,請刪除(參考刪除OpenJDK)

Step1、更新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

該目錄下,新增兩個文件:

 
 

Step2、修改這兩個文件的配置

# vi mysql-community.repo

 
注意,如果一會下載過程中出現gpg文件下載失敗,請將gpgcheck=1改為0

# vi mysql-community-source.repo

 
注意,如果一會下載過程中出現gpg文件下載失敗,請將gpgcheck=1改為0

Step3、更新緩存

# yum makecache

 
 

Step4、刪除預安裝的mysql

# rpm -qa | grep mysql

 
 

# rpm -e mysql57-community-release-el6-8.noarch

Step5、查看有哪些mysql包可以使用yum安裝

# yum repolist enabled | grep mysql

 
 

Step6、安裝

# yum -y install mysql-community-server

Step7、啟動並初始化

# systemctl start mysqld

# mysql_secure_installation

剛開始是沒有密碼的,按照英文提示,基本上輸入個密碼,然后Y然后回車,然后Y然后回車,你懂得,最后就OK了。

八、安裝CDH依賴

# yum -y install chkconfig python bind-utils psmisc libxslt zlib sqlite cyrus-sasl-plain cyrus-sasl-gssapi fuse  portmap fuse-libs redhat-lsb

九、安裝Cloudera Manager

Step1、解壓

將剛才下載好的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/

Step2、修改配置文件並遠程分發

$ 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/

Step3、創建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

Step4、初始化數據庫

創建數據庫用戶

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

 
 

十一、真·部署

Step1、在agent節點創建parcels目錄,在server節點創建parcel-repo目錄

# mkdir -p /opt/cloudera/parcels

# mkdir -p /opt/cloudera/parcel-repo

Step2、拷貝一下文件到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/

Step3、拷貝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/

Step4、創建cloudera-scm-agent文件夾

$ mkdir /opt/modules/cloudera-manager/cm-5.7.0/run/cloudera-scm-agent

Step5、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/

Step6、啟動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

Step7、打開界面,端口號:7180

 
用戶名,密碼均為admin

下一步:

 
不必說明的下一步我會直接省去

下一步:

 
當前管理的主機

下一步:

 
 

下一步:

 
等待各個步驟完成后,才能繼續

等待分配完成后,下一步:

 
 

注意:紅框警告內容可以使用如下辦法解決:

# 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
來源:簡書
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM