零、前言-CM和CDH的差別
1.Cloudera Manager包括server端和agent;server端主要作用是監控叢集,分發配置叢集等,agent端主管叢集各節點
2.CDH是CM的安裝包,本地或者雲端,其中包括hadoop的生态系統需要的所有元件,通過Cloudera Manager統一管理和安裝
3.CDH除了可以通過cm安裝也可以通過yum,tar,rpm安裝
一、Cloudera Manager
1.1 cloudera manager的概念
簡單來說,Cloudera Manager是一個擁有叢集自動化安裝、中心化管理、叢集監控、報警功能的一個工具(軟體),使得安裝叢集從幾天的時間縮短在幾個小時内,運維人員從數十人降低到幾人以内,極大的提高叢集管理的效率。
1.2 cloudera manager的功能
管理:對叢集進行管理,如添加、删除節點等操作。
監控:監控叢集的健康情況,對設定的各種名額和系統運作情況進行全面監控。
診斷:對叢集出現的問題進行診斷,對出現的問題給出建議解決方案。
內建:多元件進行整合。
1.3 cloudera manager的架構
Server:負責軟體安裝、配置,啟動和停止服務,管理服務運作的群集。
Agent:安裝在每台主機上。負責啟動和停止的過程,配置,監控主機。
Management Service:由一組執行各種監控,警報和報告功能角色的服務。
Database:存儲配置和監視資訊。
Cloudera Repository:軟體由Cloudera 管理分布存儲庫。(有點類似Maven的中心倉庫)
Clients:是用于與伺服器進行互動的接口(API和Admin Console)
二、環境要求
1.1 記憶體配置設定
将3台虛拟機配置設定好記憶體 建議8G、8G、8G
1.2 本次安裝需要的jar包
#注意:必須是Oracle JDK、不要使用OpenJDK
jdk-8u144-linux-x64.tar.gz
CDH-5.12.1-1.cdh5.12.1.p0.3-el7.parcel
CDH-5.12.1-1.cdh5.12.1.p0.3-el7.parcel.sha
cloudera-manager-centos7-cm5.12.1_x86_64.tar.gz
manifest.json
mysql5.7
1.3 更改Yum源
在三台節點(所有agent的節點)上執行下載下傳第三方依賴
更改為阿裡yum源
wget -O /etc/yum.repos.d/CentOS-Base.repo [http://mirrors.aliyun.com/repo/Centos-7.repo](http://mirrors.aliyun.com/repo/Centos-7.repo)
yum clean all
yum makecache
1.4 安裝JDK
#建議放在在這個目錄下
tar -zxvf jdk-8u144-linux-x64.tar.gz -C /usr/java/
#有時候會有權限問題的坑
chown -R root:root /usr/java/
1.5 關閉SELINUX和防火牆
臨時關閉:
setenforce 0
修改配置檔案/etc/selinux/config(重新開機生效)
#将SELINUX=enforcing 改為 SELINUX=disabled
#關閉防火牆
systemctl stop firewalld
#禁用防火牆
systemctl disable firewalld
#檢視防火牆是否關閉
systemctl status firewalld
1.6 hosts映射
vi /etc/hosts
192.168.1.111 bigdata111
192.168.1.112 bigdata112
192.168.1.113 bigdata113
1.7 下載下傳第三方依賴
在三台節點(所有agent的節點)上執行下載下傳第三方依賴
yum -y install chkconfig python bind-utils psmisc libxslt zlib sqlite cyrus-sasl-plain cyrus-sasl-gssapi fuse fuse-libs redhat-lsb
1.8 ssh免密登入
#生成公鑰
ssh-keygen -t rsa
#拷貝公鑰到其他節點(九遍)
ssh-copy-id bigdata111
ssh-copy-id bigdata112
ssh-copy-id bigdata113
1.9 NTP時間和時鐘同步服務
#檢視時間幫助
timedatectl --help
#設定為上海的時區
timedatectl set-timezone Asia/Shanghai
#生産環境中一般會手動安裝NTP服務(自己練習一下步驟可以省略)
yum -y install ntp
vi /etc/ntp.conf
添加如下
#time 前四行是使用網絡時間
server 0.asia.pool.ntp.org
server 1.asia.pool.ntp.org
server 2.asia.pool.ntp.org
server 3.asia.pool.ntp.org
#生産中不能使用聯網的話, 使用本地時間
server 192.168.1.0 iburst local clock
#可以讓192.168.1網段下所有IP都可以同步
restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap
#啟動ntpd (僅在主節點)
systemctl start ntpd
#檢視ntpd的狀态
systemctl status ntpd
#關閉從節點時間同步
systemctl stop ntpd
systemctl disable ntpd
#查詢ntpdate
which ntpdate
#讓所有從節點與主節點同步 \ 注:叢集中會每幾個小時同步一次,保證時間一緻
/usr/sbin/ntpdate bigdata111
#列出所有的時區
timedatectl list-timezones
1.10 安裝配置mysql
注意點:此處用的是5.7的版本,遠端使用時,記得更改給root改為"%"權限
(1)叢集監控資料庫
create database amon DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
grant all on amon.* TO 'amon'@'%' IDENTIFIED BY 'amon';
(2)hive資料庫
create database hive DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
grant all on hive.* TO 'hive'@'%' IDENTIFIED BY 'hive';
(3)oozie資料庫
create database oozie DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
grant all on oozie.* TO 'oozie'@'%' IDENTIFIED BY 'oozie';
(4)hue資料庫
create database hue DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
grant all on oozie.* TO 'hue'@'%' IDENTIFIED BY 'hue';
三、CM安裝部署
CM下載下傳位址
離線庫下載下傳位址
注:以下所有操作均使用root使用者
2.1 解壓cloudera-manager-centos7-cm5.12.1_x86_64.tar.gz
tar -zxvf cloudera-manager-centos7-cm5.12.1_x86_64.tar.gz -C /opt
2.2 建立使用者cloudera-scm(所有節點)
[[email protected] cloudera-scm-server]# useradd --system --home=/opt/cm-5.12.1/run/cloudera-scm-server --no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm
--system 建立一個系統賬戶
--home 指定使用者登入時的主目錄,替換系統預設值/home/<使用者名>
--no-create-home 不要建立使用者的主目錄
--shell 使用者的登入 shell 名
--comment 使用者的描述資訊
注意:
Cloudera Manager預設使用者為cloudera-scm,建立具有此名稱的使用者是最簡單的方法。 安裝完成後,将自動使用此使用者。
2.3 配置CM Agent
vi /opt/cm-5.12.1/etc/cloudera-scm-agent/config.ini
#修改CM所在位址(所有節點)
server_host=bigdata111
2.4 配置CM的資料庫
- 拷貝mysql jar檔案到目錄 /usr/share/java/
[[email protected] share]# mkdir /usr/share/java/
[[email protected] cm-5.12.1]# cp /opt/software/mysql-libs/mysql-connector-java-5.1.27/mysql-connector-java-5.1.27-bin.jar /usr/share/java/
[[email protected] share]# mv /usr/share/java/mysql-connector-java-5.1.27-bin.jar /usr/share/java/mysql-connector-java.jar
• 注意jar包名稱要修改為mysql-connector-java.jar
- 在mysql中建立cm庫
[[email protected] cm-5.12.1]# /opt/cm-5.12.1/share/cmf/schema/scm_prepare_database.sh mysql cm -hbigdata111 -uroot -p000000 --scm-host bigdata111 scm scm scm
-h:Database host
-u:Database username
-p:Database Password
--scm-host:SCM server's hostname
2.5 分發cloudera-manager
[[email protected] module]# scp -r /opt/ bigdata112:/opt/
[[email protected] module]# scp -r /opt/ bigdata113:/opt/
2.6 建立Parcel-repo 目錄
1. Servre 節點建立目錄/opt/cloudera/parcel-repo
[[email protected] module]# mkdir -p /opt/cloudera/parcel-repo
[[email protected] module]# chown cloudera-scm:cloudera-scm /opt/cloudera/parcel-repo
2.拷貝下載下傳檔案到/opt/cloudera/parcel-repo
(1)CDH-5.12.1-1.cdh5.12.1.p0.3-el6.parcel
(2)CDH-5.12.1-1.cdh5.12.1.p0.3-el6.parcel.sha1:需改名為CDH-5.12.1-1.cdh5.12.1.p0.3-el6.parcel.sha
(3)manifest.json
3.在Agent 節點(bigdata111,bigdata112,bigdata113)建立目錄/opt/cloudera/parcels
[[email protected] module]# mkdir -p /opt/cloudera/parcels
[[email protected] module]# chown cloudera-scm:cloudera-scm /opt/cloudera/parcels
2.7 關閉交換空間 & 大頁面空間
#Cloudera建議将交換空間設定為0,過多的交換空間會引起GC耗時的激增,是以還是關閉的為好 echo "vm.swappiness = 0" >> /etc/sysctl.conf
#
echo "10" > /proc/sys/vm/swappiness
#關閉大頁面壓縮 echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo never > /sys/kernel/mm/transparent_hugepage/defrag
2.8 啟動和關閉CM Server&Agent 服務
服務節點:bigdata111
[[email protected] init.d]# /opt/cm-5.12.1/etc/init.d/cloudera-scm-server start
Starting cloudera-scm-server: [确定]
工作節點:bigdata111\bigdata112\bigdata113
[[email protected] init.d]# /opt/cm-5.12.1/etc/init.d/cloudera-scm-agent start
正在啟動 cloudera-scm-agent: [确定]
[[email protected] module]# /opt/cm-5.12.1/etc/init.d/cloudera-scm-agent start
正在啟動 cloudera-scm-agent: [确定]
[[email protected] module]# /opt/cm-5.12.1/etc/init.d/cloudera-scm-agent start
正在啟動 cloudera-scm-agent: [确定]
注意:啟動過程非常慢,Manager 啟動成功需要等待一段時間,過程中會在資料庫中建立對應的表需要耗費一些時間。
[[email protected] init.d]# netstat -anp | grep 7180
tcp 0 0 0.0.0.0:7180 0.0.0.0:* LISTEN 5498/java
檢視被占用則表示安裝成功了!!!
通路http://bigdata111:7180,(使用者名、密碼:admin)
關閉:
服務節點:bigdata111
[[email protected] init.d]# /opt/cm-5.12.1/etc/init.d/cloudera-scm-server stop
停止 cloudera-scm-server: [确定]
工作節點:bigdata111\bigdata112\bigdata113
[[email protected] init.d]# /opt/cm-5.12.1/etc/init.d/cloudera-scm-agent stop
Stopping cloudera-scm-agent: [确定]