天天看點

CM和CDH

零、前言-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的功能

管理:對叢集進行管理,如添加、删除節點等操作。

監控:監控叢集的健康情況,對設定的各種名額和系統運作情況進行全面監控。

診斷:對叢集出現的問題進行診斷,對出現的問題給出建議解決方案。

內建:多元件進行整合。

CM和CDH

1.3 cloudera manager的架構

CM和CDH

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的資料庫

  1. 拷貝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

  1. 在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: [确定]

繼續閱讀