CM是由cloudera公司提供的大數據組件自動部署和監控管理工具,相應的和CDH是cloudera公司在開源的hadoop社區版的基礎上作了商業化的封裝的大數據平臺。java
採用離線安裝模式,雖然在線安裝比較簡單,可是速度感人,緣由你們都懂,這裏我使用的各軟件版本信息爲:node
操做系統:CentOS6.8mysql
CDH版本:5.7.1:CDH-5.7.1-1.cdh5.7.1.p0.11-el5.parcel.shalinux
CDH-5.7.1-1.cdh5.7.1.p0.11-el6.parcelweb
manifest.jsonsql
vim /etc/hosts數據庫 |
**注意127.0.0.1對應的node2要刪掉,不然後面mysql的登陸會有問題json
關閉防火牆vim |
暫時關閉緩存 |
service iptables stop |
永久關閉 |
chkconfig iptables off |
|
關閉SELINUX |
臨時關閉 |
setenforce 0 |
永久關閉 |
vim /etc/selinux/config 修改SELINUX=enforcing 改成 SELINUX=disabled |
全部節點安裝NTP |
yum install ntp |
配置開機自動啓動 |
chkconfig ntpd on |
檢查是否開啓成功 |
chkconfig --list ntpd(2-5爲on則開啓成功) |
設置同步 |
ntpdate -u ntp.sjtu.edu.cn |
**遇到問題noserver suitable for synchronization found
**解決方案:cmd裏輸入nslookup cn.pool.ntp.org,找到ping的通的IP,將這個IP地址替換到ntpdata -u後面
將xxxx.repo拷貝到各臺機器的/etc/yum.repo.d下(這裏的repo是公司本身部署的,我就直接拿過來用了) |
|
清理元數據緩存 |
yum clean all |
從新創建元數據緩存 |
yum makecache |
2.6 在管理節點上安裝mysql
安裝mysql的yum源 |
rpm -ivh http://repo.mysql.com/yum/mysql-5.5-community/el/6/x86_64/mysql-community-release-el6-5.noarch.rpm |
修改安裝好的yum源 |
vim /etc/yum.repos.d/mysql-community.repo 將5.5的enabled改成1,5.6的enabled改成0 |
安裝mysql |
yum install mysql-server |
添加自啓動 啓動mysql 修改root密碼 進入mysql |
chkconfig mysqld on service mysqld start mysqladmin -u root password '123456' mysql -uroot -p123456 |
2.7 在mysql中建立相關庫並受權
建庫 |
mysql> create database amon default character set utf8 ; mysql> create database rman default character set utf8; mysql> create database metastore default character set utf8; mysql> create database sentry default character set utf8; mysql> create database hue default character set utf8; mysql> create database nav default character set utf8; mysql> create database navms default character set utf8; mysql> create database oozie default character set utf8; |
受權 |
mysql> grant all privileges on amon.* to 'amon'@'192.168.%' identified by 'amon'; mysql> grant all privileges on hue.* to 'hue'@'192.168.%' identified by 'hue'; mysql> grant all privileges on rman.* to 'rman'@'192.168.%' identified by 'rman'; mysql> grant all privileges on metastore.* to 'hive'@'192.168.%' identified by 'hive'; mysql> grant all privileges on sentry.* to 'sentry'@'192.168.%' identified by 'sentry'; mysql> grant all privileges on nav.* to 'nav'@'192.168.%' identified by 'nav'; mysql> grant all privileges on navms.* to 'navms'@'192.168.%' identified by 'navms'; mysql> grant all privileges on oozie.* to 'oozie'@'192.168.%' identified by 'oozie'; mysql> flush privileges; |
各臺機器上添加cmadmin用戶 |
groupadd cmadmin useradd cmadmin -g cmadmin passwd cmadmin(cmadmin123.) |
分別添加sudo權限 |
visudo cmadmin ALL=(ALL) ALL |
切換到cmadmin用戶 |
su cmadmin |
Ssh免祕鑰設置
注意調整/etc/hosts.all中的sshd訪問權限,增長cm server的ip
sshd:192.168.8.20#cloudera manager server's ip
切換到cmadmin用戶,執行下面命令
全部機器 |
ssh-keygen -t rsa |
管理端 |
ssh-keygen -t rsa cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys chmod 600 .ssh/authorized_keys scp -P 20022 ~/.ssh/authorized_keys cmadmin@tk-dat-hadoop179:~/.ssh/(根據具體ip變化) |
sudo yum install cloudera-manager-daemons cloudera-manager-server --enablerepo=jjmatch //這裏的repo是剛纔配置的本地yum源 |
(node2替換爲主機名)
mysql -uroot -p123456 grant all privileges on *.* to 'temp'@'node2' identified by 'temp' with grant option; grant all privileges on *.* to scm@'node2' identified by scm with grant option; |
/usr/share/cmf/schema/scm_prepare_database.sh mysql -h node2 -utemp -ptemp --scm-host node2 scm scm scm |
*****問題1:提示找不到JAVA_HOME
故障緣由:CM server找不到javahome
解決方案:將/usr/share/cmf/schema/scm_prepare_database.sh打開,在對應java版本的java_home_candidates里加上本機的java_home位置
*****問題2:mysql一直提示Accessdenied for user 'root'@'node2
故障緣由:hosts文件中的地址解析和mysql有衝突
解決辦法:刪除host文件中主機名對應的IP,重裝mysql或在其餘機器上安裝mysql。
sudo service cloudera-scm-server start |
yum -y install cloudera-manager-agent cloudera-manager-daemons |
一、從網上下載相關parcels至manager機器上的parcels目錄(默認是/opt/cloudera/parcel-repo)
二、打開manifest.json文件,找到"parcelName":"CDH-5.7.1-1.cdh5.7.1.p0.11-el6.parcel"對應的hash值(e24f56882ecdcf6837636abc8298c629c0f9d109),並將它複製下來,將CDH-5.4.3-1.cdh5.4.3.p0.6-el6.parcel.sha1 重命名爲
CDH-5.4.3-1.cdh5.4.3.p0.6-el6.parcel.sha
mv CDH-5.4.3-1.cdh5.4.3.p0.6-el6.parcel.sha1 CDH-5.4.3-1.cdh5.4.3.p0.6-el6.parcel.sha |
三、而後打開CDH-5.7.1-1.cdh5.7.1.p0.11-el6.parcel,把複製的hash值替換掉裏面的值,正常狀況下這個文件裏的hash值是一致的。這樣,本地源製做就完成了。
*****問題1:web頁面找不到我所下載版本parcel包
故障緣由:一、parcel包與parcel.sha1包對應的文件名不同,一個是el5,一個是el6
二、沒看清楚安裝文檔,直接將mainfest.json中最末尾的hash值複製到parcel.sha中,應該是找到版本對應的hash值開始登錄clouderamanager管理控制檯http://192.168.159.11:7180(cloudera manager server所在主機ip:7180)
初始帳號:amdin 密碼:admin,選擇Express版本,指定主機的時候,輸入本身的機器的網段192.168.159.[11-13]。
選擇本身提早下載好的parcel包對應的版本。
*****問題1:在本頁面中找不到「當前管理的主機」的Tab欄,
故障緣由:沒有在agent中配置server的主機名
解決辦法:在/etc/cloudera-scm-agent/config.ini中配置CM的主機名,此處改爲node2.
JDK安裝 |
不勾選,使用咱們以前安裝好的jdk,點擊繼續 |
單用戶模式 |
不勾選,點擊繼續 |
SSH憑據 |
爲系統提供ssh密碼,點擊繼續 |
*****問題1:node4沒法接收Agent發出的檢測信號,
故障緣由:node4上的hosts文件中的127.0.0.1對應的node4沒有刪除
解決辦法:刪除hosts文件中對應的node4
點擊繼續
*****問題1:檢查器在node[3-4]上未啓動
故障緣由:clouderamanager 不會自動去系統環境變量裏尋找jdk,而會用本身的bigtop管理jdk
解決辦法:修改/usr/lib64/cmf/service/common/cloudera-config.sh中對應版本的jdk_candidates,添加本身安裝的jdk
*****注意:路徑前有斜槓,千萬不要漏掉!千萬不要漏掉!千萬不要漏掉!以前漏掉了一次,排查了很久
****問題2:Cloudera建議將 /proc/sys/vm/swappiness 設置爲 0
# vi /etc/sysctl.conf vm.swappiness = 0 |
*****問題3:已啓用「透明大頁面
echo never > /sys/kernel/mm/transparent_hugepage/enabled echo never > /sys/kernel/mm/transparent_hugepage/defrag(暫時生效) vim /etc/rc.local(將上面兩行添加進來,永久生效) |
注意zookeeper至少三臺,其餘設置保持默認便可,一路下一步
一個如此簡單的平臺部署工做,對於我這個新手來講卻折騰了大半天,一些經常使用的linux命令也不熟悉,各個文件的默認安裝目錄也不知道,什麼事都要問百度,CDH和CM解決了大規模的集羣的部署工做,簡化了無數的手工操做,簡直是中小公司快速部署大數據集羣的福音,官方文檔也十分詳盡,裏面有數不清的寶藏,你們有空能夠多去看看,就當練習英語了均可以。可是CDH被詬病的地方也是其中各個組件的版本綁定太厲害,對於定製化開發需求很大的公司來講,是一個不能忍受的弊端。
https://blog.csdn.net/sinat_32176947/article/details/79591583