Centos7離線安裝Cloudera Manager 5.14.1 簡介 下載軟件包和數據包 服務器環境準備 安裝Cloudera Manager CDH啓動與關閉 安裝要點:

簡介

如果是新手,請嚴格按照步驟來做。當然還有其他安裝方式,這裏講的方式比較適合測試使用。

內容 版本
CentOS 7 64位
JDK 1.7
Cloudera Manager 5.14.1

本次安裝一共使用3臺服務器,主要用戶測試。

服務名 內網IP 用途
master 192.168.254.130 主,按照CM
slave01 192.168.254.210
slave02 192.168.254.211

可以搭建三臺虛擬機,其中master內存在8G以上,slave內存在4G以上,每個虛機的硬盤空間100G+

下載軟件包和數據包

我這裏提供兩種下載方式:

在下載的時候可以先把服務器基礎環境準備好

百度雲盤下載

推薦百度雲超級VIP賬號的用戶,裏面包含所有的安裝包和數據包

鏈接: https://pan.baidu.com/s/1JC-vpYH7SWBwju9C8DkVPw 密碼: 26v8

官方下載

這是一個漫長的過程,試過才知道爽。

下載CM和jdk軟件包

訪問:http://archive.cloudera.com/cm5/redhat/7/x86_64/cm/5.14.1/RPMS/x86_64/

把上面的所有rpm包都下載回來本地,下載速度慢可以使用axel多線程下載,如果沒有裝axel,也可以使用 wget -b後臺下載

我的相關下載都放在 /data/soft下,我的Cloudera Manager 5.14.1的下載放在 /data/soft/cm5.14.1,所以新建目錄並進入目錄:

mkdir -p /data/soft/cm5.14.1/cm-and-jdk

cd /data/soft/cm5.14.1/cm-and-jdk
wget -b http://archive.cloudera.com/cm5/redhat/7/x86_64/cm/5.14.1/RPMS/x86_64/cloudera-manager-agent-5.14.1-1.cm5141.p0.1.el7.x86_64.rpm

wget -b  http://archive.cloudera.com/cm5/redhat/7/x86_64/cm/5.14.1/RPMS/x86_64/cloudera-manager-daemons-5.14.1-1.cm5141.p0.1.el7.x86_64.rpm

wget -b http://archive.cloudera.com/cm5/redhat/7/x86_64/cm/5.14.1/RPMS/x86_64/cloudera-manager-server-5.14.1-1.cm5141.p0.1.el7.x86_64.rpm

wget -b http://archive.cloudera.com/cm5/redhat/7/x86_64/cm/5.14.1/RPMS/x86_64/cloudera-manager-server-db-2-5.14.1-1.cm5141.p0.1.el7.x86_64.rpm

wget -b http://archive.cloudera.com/cm5/redhat/7/x86_64/cm/5.14.1/RPMS/x86_64/enterprise-debuginfo-5.14.1-1.cm5141.p0.1.el7.x86_64.rpm

wget -b http://archive.cloudera.com/cm5/redhat/7/x86_64/cm/5.14.1/RPMS/x86_64/jdk-6u31-linux-amd64.rpm

wget -b http://archive.cloudera.com/cm5/redhat/7/x86_64/cm/5.14.1/RPMS/x86_64/oracle-j2sdk1.7-1.7.0+update67-1.x86_64.rpm

下載cloudera-manager安裝文件

訪問:http://archive.cloudera.com/cm5/installer/5.14.1/

下載cloudera-manager-installer.bin

cd /data/soft/cm5.14.1/

wget http://archive.cloudera.com/cm5/redhat/7/x86_64/cm/cloudera-manager.repo

下載rpm倉庫文件

wget http://archive.cloudera.com/cm5/redhat/7/x86_64/cm/cloudera-manager.repo

下載parcel

這個比較大,放下服務器慢慢下吧

mkdir -p /data/soft/cm5.14.1/parcel

cd /data/soft/cm5.14.1/parcel
wget -b http://archive.cloudera.com/cdh5/parcels/5.14.0.24/CDH-5.14.0-1.cdh5.14.0.p0.24-el7.parcel

wget -b http://archive.cloudera.com/cdh5/parcels/5.14.0.24/CDH-5.14.0-1.cdh5.14.0.p0.24-el7.parcel.sha1

服務器環境準備

修改hostname及hosts

針對所有節點操作

爲了便於安裝過程中對各個服務器的訪問更易區分、更便捷,我們需要分別對各個服務器修改hostname及hosts

hostnamectl --static set-hostname master
hostnamectl --static set-hostname slave01
hostnamectl --static set-hostname slave02

修改hosts:

vim /etc/hosts

根據自己的3臺服務器IP地址,在最後面增加:

192.168.254.130 master
192.168.254.210 slave01
192.168.254.211 slave02

重啓機器

reboot

關閉防火牆和selinux

針對所有節點操作

關閉防火牆

systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall開機啓動
firewall-cmd --state #查看默認防火牆狀態(關閉後顯示notrunning,開啓後顯示running)

關閉selinux:

vim /etc/selinux/config

找到SELINUX改爲:

SELINUX=disabled

ssh無密碼登錄

針對所有節點操作

先在master上執行:

ssh-keygen -t rsa   #一路回車到完成

ssh-copy-id -i ~/.ssh/id_rsa.pub root@master   #將公鑰拷貝到本機的authorized_keys上

再在其他節點分別執行以下命令:

ssh-keygen -t rsa   #一路回車到完成

ssh-copy-id -i ~/.ssh/id_rsa.pub root@master  

#注意此處不變,將公鑰拷貝到master的authorized_keys上

在master上,將authorized_keys分發到其他節點服務器:

scp ~/.ssh/authorized_keys root@slave01:~/.ssh/

scp ~/.ssh/authorized_keys root@slave02:~/.ssh/

安裝ntp時間同步軟件

所有節點時間一致非常重要,要不然啓動Cloudera Manager服務後,後臺會報錯。

所有節點執行:

yum install ntp -y

安裝完成後,阿里雲的服務器會自動使用阿里雲的ntp服務器進行同步,故可不再進行下面的配置,直接進入2.6節,若其他沒有統一ntp服務器進行同步的,則還需要以下設置:

將master設置爲主服務器(在master節點操作):

vim /etc/ntp.conf

內容如下:

driftfile /var/lib/ntp/ntp.drift #草稿文件
# 允許內網其他機器同步時間
restrict 192.168.137.0 mask 255.255.255.0 nomodify notrap
 
# Use public servers from the pool.ntp.org project.
# 中國這邊最活躍的時間服務器 : [http://www.pool.ntp.org/zone/cn](http://www.pool.ntp.org/zone/cn)
server 210.72.145.44 perfer   # 中國國家受時中心
server 202.112.10.36             # 1.cn.pool.ntp.org
server 59.124.196.83             # 0.asia.pool.ntp.org
 
# allow update time by the upper server 
# 允許上層時間服務器主動修改本機時間
restrict 210.72.145.44 nomodify notrap noquery
restrict 202.112.10.36 nomodify notrap noquery
restrict 59.124.196.83 nomodify notrap noquery
 
# 外部時間服務器不可用時,以本地時間作爲時間服務
server  127.127.1.0     # local clock
fudge   127.127.1.0 stratum 10

重啓ntpd服務:

systemctl ntpd restart

查看同步狀態:

netstat -tlunp | grep ntp

所有子節點ntp加入開機啓動:

systemctl enable ntpd

設置slave到master 的同步(在slave節點操作):

vim /etc/ntp.conf

內容如下:

driftfile /var/lib/ntp/ntp.drift # 草稿文件

statsdir /var/log/ntpstats/
statistics loopstats peerstats clockstats
filegen loopstats file loopstats type day enable
filegen peerstats file peerstats type day enable
filegen clockstats file clockstats type day enable

# 讓NTP Server爲內網的ntp服務器
server 192.168.137.110
fudge 192.168.137.110 stratum 5

# 不允許來自公網上ipv4和ipv6客戶端的訪問
restrict -4 default kod notrap nomodify nopeer noquery 
restrict -6 default kod notrap nomodify nopeer noquery

# Local users may interrogate the ntp server more closely.
restrict 127.0.0.1
restrict ::1

重啓ntpd服務:

systemctl ntpd restart

手動同步:

ntpdate -u master

所有節點重啓服務器:

reboot

分配安裝文件

主節點和子節點分別需要的文件整理如下:

主節點master,所需文件:

cloudera-manager-agent-5.14.1-1.cm5141.p0.2.el7.x86_64.rpm
cloudera-manager-daemons-5.14.1-1.cm5141.p0.2.el7.x86_64.rpm
cloudera-manager-server-5.14.1-1.cm5141.p0.2.el7.x86_64.rpm
cloudera-manager-server-db-2-5.14.1-1.cm5141.p0.2.el7.x86_64.rpm
enterprise-debuginfo-5.14.1-1.cm5141.p0.2.el7.x86_64.rpm
cloudera-manager-installer.bin
cloudera-manager.repo
CDH-5.14.1-1.cdh5.14.1.p0.2-el7.parcel
CDH-5.14.1-1.cdh5.14.1.p0.2-el7.parcel.sha1

從節點slave01、slave02,所需文件:

cloudera-manager-agent-5.14.1-1.cm5141.p0.2.el7.x86_64.rpm
cloudera-manager-daemons-5.14.1-1.cm5141.p0.2.el7.x86_64.rpm
cloudera-manager.repo

使用scp命令分配所需要的安裝文件

安裝Cloudera Manager

至此,所有設置完成。開始Cloudera Manager安裝吧!

安裝 cm-and-jdk

針對所有節點操作

修改倉庫文件cloudera-manager.repo,把版本號加上

[cloudera-manager]
name = Cloudera Manager
baseurl = https://archive.cloudera.com/cm5/redhat/7/x86_64/cm/5.14.1/  #主要改這裏的版本號
gpgkey = https://archive.cloudera.com/redhat/cdh/RPM-GPG-KEY-cloudera
gpgcheck = 1

驗證repo文件是否起效

yum list | grep cloudera #如果列出的不是待安裝的版本,執行下面命令重試

yum clean allyum list | grep cloudera

切換到cm-and-jdk目錄下,執行

yum localinstall --nogpgcheck *.rpm

設置java路徑:

vi /etc/profile

在該文件末尾添加以下行

JAVA_HOME=/usr/java/jdk1.7.0_67-cloudera
PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOME PATH

檢查安裝:

java -version

下面針對master節點操作

進入cloudera-manager-installer.bin文件目錄,給bin文件賦予可執行權限:

chmod +x ./cloudera-manager-installer.bin

運行:

./cloudera-manager-installer.bin --skip_repo_package=1

如果提示需要刪除配置文件,則刪除該文件

rm -rf /etc/cloudera-scm-server/db.properties

相同配置下順利安裝時間在1分鐘內即可完成。
然後我們在web瀏覽器訪問 http://192.168.254.130:7180/,看是否能打開頁面即可,先不要進行登錄操作。

注意:chd server服務器啓動需要一些時間,等1分鐘左右。

如果能訪問,那證明 cloudera manager安裝正常。

安裝CDH

製作本地parcel

前面完成cloudera manager安裝之後master會在/opt目錄下生成cloudera文件夾,將之前下載好的CDH-*文件移動到parcel-repo文件夾中

cp CDH-5.14.0-1.cdh5.14.0.p0.24-el7.parcel /opt/cloudera/parcel-repo/
cp CDH-5.14.0-1.cdh5.14.0.p0.24-el7.parcel.sha1 /opt/cloudera/parcel-repo/CDH-5.14.0-1.cdh5.14.0.p0.24-el7.parcel.sha  #注意這裏有重命名

將cloudera manager的用戶授權給/opt和日誌目錄:

chown -R cloudera-scm.cloudera-scm /var/lib/cloudera-scm-server
chown cloudera-scm.cloudera-scm  /opt  -R
chown cloudera-scm.cloudera-scm  /var/log/cloudera-scm-agent -R

重啓cloudera-scm-server(重要)

/etc/init.d/cloudera-scm-server restart

重啓速度較慢,約1分鐘後訪問 http://192.168.254.130:7180/ 登陸,賬號密碼 admin
選擇免費版本,一路next開始安裝。

基本默認就行

在爲CDH集羣安裝指定主機的時候寫

master
slave01
slave02

這裏需要填寫我們集羣定義的ip或者服務器名稱(包括安裝CM的主機本身),點擊搜索,即可加載出所有主機。全選所有主機,並繼續。

這裏會出現我們之前cp過去的CDH版本,選擇並繼續。

如果之前的操作沒有問題,這裏將會很快完成

在選擇安裝的服務組合的時候,選擇自己需要的,如果不知道,全部安裝就行

這裏是最激動人心的時候

隨便找臺機器測試一下spark:

spark-shell

激動的敲了一個:

CDH啓動與關閉

CM Portal 地址:

http://master:7180/cmf/home

關閉步驟:

在CM portal上關閉 cluster

在所有節點關閉CM agent:

service cloudera-scm-agent stop

在master節點關閉CM server:

service cloudera-scm-server stop

啓動步驟:

在所有節點啓動CM agent:

service cloudera-scm-agent start

在master節點啓動CM server:

service cloudera-scm-server start

在CM portal上啓動 cluster

查看啓動日誌:

/var/log/cloudera-scm-server/cloudera-scm-server.log

如果是3臺機器一般會出現錯誤:

在CM console中將副本設爲2:

dfs.replication=2

在所有的節點命令行執行:

hadoop fs -setrep 2 /

安裝要點:

  • 仔細,認真,嚴格按照步驟
  • 常見問題:網絡,防火牆等主機設置
  • 碰到問題:查看日誌&官網&百度
cloudera JDBC Driver com.mysql.jdbc.Driver not found.

將oracle的mysql的jar包放置到/usr/share/java/mysql-connector-java.jar路徑下即可,注意修改jar包名稱;

切記除了要下載parcel文件之外,還有manifest.json文件,否則在選擇安裝版本界面,cloudera無法識別parcel的版本。

還有需要對於sha1文件進行改名:*.parcel.sha1 -> *.parcel.sha

爲什麼CDH的安裝頁面顯示無法發現CDH ?

之前一直懷疑是流程步驟有問題,其實流程本身沒有問題,問題發生在流程的實施節點上:cdh文件損壞了;本來1.5G的大小,當時只有50M,我不記得原因了,但是太坑了。

我想到了權限問題;但是忽略了文件損壞問題:sha就是幹這個用的,當時應該考慮到使用sha來校驗一下文件。

如果cloudera發現能夠正常發現parcel,在server啓動後將會打出一條日誌:

SearchRepositoryManager-0:com.cloudera.server.web.cmf.search.components.SearchRepositoryManager: Finished constructing repo:2017-09-27T16:19:00.763Z

安裝CDH在拷貝parcel的時候發生異常:Exhausted available authentication methods

後來發現原來是因爲ssh的root用戶被我設置爲禁止遠程登錄;而CDH頁面嚮導中我還配置的用root用戶登錄

之後發現拷貝異常,總是聯網去下載agent包,但是agent都已經在各個節點了;後來發現agent的啓動是失敗的(在開始的步驟中能夠被自動發現的都不需要裝agent,需要通過手動輸入IP來進行發現的需要裝agent,怎麼裝?聯網),報錯顯示:ProtocolError: <ProtocolError for 127.0.0.1/RPC2: 401 Unauthorized>;在網上搜索了一下,如下處理:

sudo ps -ef | grep supervisord

kill -9 PID

sudo ./cloudera-scm-agent restart

未完,重啓後發現:

Error, CM server guid updated, expected d6c22714-0175-4a40-ace6-db92b7417a40, received 613b2c09-88f6-41fe-9424-41601be40310

原來還需要將cm/lib/cloudera-scm-agent/下面的cm_guid進行清除;這一點讓我想到了cloudera數據遷移的時候需要做的事情,需要將同目錄下的uuid進行刪除;

在安裝的過程中還有一個問題一直困擾我,就是殭屍agent,在agent經歷如上的問題後,在自動發現的列表中有一些殭屍agent,會看到同hostname的多臺機器,有一個是正常通信,有的則是Unkonwn,無法刪掉,因爲不勾選,那麼正常通信的也不會勾選上。反正後來我改了一下hosts文件,莫名其妙的在勾選列表中消失了,但是遺憾的是正常通信的也沒了。安裝成功後,在Hosts頁面纔看到這些殭屍agent,此時再delete可以正常刪除。


Skipping start command because all roles are started or decommissioned or on decommissioned host.

cloudera的server停止後要稍等一會在啓動,因爲釋放內存需要一段時間;如果停止後立即就啓動將會發生一種情況,內存沒有釋放完,JVM的內存大量釋放和JVM的大量使用將會導致JVM頻繁的進行回收和釋放,導致JVM Pause以及World Stop

JAVA_HOME is not set and Java could not be found

具體原因不太清楚,最小化安裝了一個centos7,發現沒有jdk,不解。

在clouderea中添加了一個host,然後添加了一個spark nodemanager的角色,然後就悲劇了,總是抱JAVA_HOME is not set and Java could not be found的異常;即使手動拷貝了一個jdk1.8到上面,profile也配置了,仍然不好用。不解。

再看日誌的時候,發現安裝程序(cloudera的安裝程序)將會到幾個固定的地方查找,選一個,然後將jdk拷貝到該目錄下,問題解決

參考:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章