簡介
如果是新手,請嚴格按照步驟來做琼牧。當然還有其他安裝方式恢筝,這里講的方式比較適合測試使用。
內容 | 版本 |
---|---|
CentOS | 7 64位 |
JDK | 1.7 |
Cloudera Manager | 5.14.1 |
本次安裝一共使用3臺服務器巨坊,主要用戶測試撬槽。
服務名 | 內網(wǎng)IP | 用途 |
---|---|---|
master | 192.168.254.130 | 主,按照CM |
slave01 | 192.168.254.210 | 從 |
slave02 | 192.168.254.211 | 從 |
可以搭建三臺虛擬機抱究,其中master內存在8G以上恢氯,slave內存在4G以上,每個虛機的硬盤空間100G+
下載軟件包和數(shù)據(jù)包
我這里提供兩種下載方式:
在下載的時候可以先把服務器基礎環(huán)境準備好
百度云盤下載
推薦百度云超級VIP賬號的用戶鼓寺,里面包含所有的安裝包和數(shù)據(jù)包
鏈接: 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
服務器環(huán)境準備
修改hostname及hosts
針對所有節(jié)點操作
為了便于安裝過程中對各個服務器的訪問更易區(qū)分幔虏、更便捷纺念,我們需要分別對各個服務器修改hostname及hosts
hostnamectl --static set-hostname master
hostnamectl --static set-hostname slave01
hostnamectl --static set-hostname slave02
修改hosts:
vim /etc/hosts
根據(jù)自己的3臺服務器IP地址,在最后面增加:
192.168.254.130 master
192.168.254.210 slave01
192.168.254.211 slave02
重啟機器
reboot
關閉防火墻和selinux
針對所有節(jié)點操作
關閉防火墻
systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall開機啟動
firewall-cmd --state #查看默認防火墻狀態(tài)(關閉后顯示notrunning想括,開啟后顯示running)
關閉selinux:
vim /etc/selinux/config
找到SELINUX改為:
SELINUX=disabled
ssh無密碼登錄
針對所有節(jié)點操作
先在master上執(zhí)行:
ssh-keygen -t rsa #一路回車到完成
ssh-copy-id -i ~/.ssh/id_rsa.pub root@master #將公鑰拷貝到本機的authorized_keys上
再在其他節(jié)點分別執(zhí)行以下命令:
ssh-keygen -t rsa #一路回車到完成
ssh-copy-id -i ~/.ssh/id_rsa.pub root@master
#注意此處不變陷谱,將公鑰拷貝到master的authorized_keys上
在master上,將authorized_keys分發(fā)到其他節(jié)點服務器:
scp ~/.ssh/authorized_keys root@slave01:~/.ssh/
scp ~/.ssh/authorized_keys root@slave02:~/.ssh/
安裝ntp時間同步軟件
所有節(jié)點時間一致非常重要,要不然啟動Cloudera Manager服務后烟逊,后臺會報錯渣窜。
所有節(jié)點執(zhí)行:
yum install ntp -y
安裝完成后,阿里云的服務器會自動使用阿里云的ntp服務器進行同步宪躯,故可不再進行下面的配置乔宿,直接進入2.6節(jié),若其他沒有統(tǒng)一ntp服務器進行同步的访雪,則還需要以下設置:
將master設置為主服務器(在master節(jié)點操作):
vim /etc/ntp.conf
內容如下:
driftfile /var/lib/ntp/ntp.drift #草稿文件
# 允許內網(wǎng)其他機器同步時間
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
查看同步狀態(tài):
netstat -tlunp | grep ntp
所有子節(jié)點ntp加入開機啟動:
systemctl enable ntpd
設置slave到master 的同步(在slave節(jié)點操作):
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為內網(wǎng)的ntp服務器
server 192.168.137.110
fudge 192.168.137.110 stratum 5
# 不允許來自公網(wǎng)上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
所有節(jié)點重啟服務器:
reboot
分配安裝文件
主節(jié)點和子節(jié)點分別需要的文件整理如下:
主節(jié)點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
從節(jié)點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
針對所有節(jié)點操作
修改倉庫文件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 #如果列出的不是待安裝的版本氯窍,執(zhí)行下面命令重試
yum clean allyum list | grep cloudera
切換到cm-and-jdk目錄下饲常,執(zhí)行
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節(jié)點操作
進入cloudera-manager-installer.bin文件目錄,給bin文件賦予可執(zhí)行權限:
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的主機本身),點擊搜索杉适,即可加載出所有主機谎倔。全選所有主機,并繼續(xù)猿推。
這里會出現(xiàn)我們之前cp過去的CDH版本传藏,選擇并繼續(xù)。
如果之前的操作沒有問題彤守,這里將會很快完成
在選擇安裝的服務組合的時候毯侦,選擇自己需要的,如果不知道具垫,全部安裝就行
這里是最激動人心的時候
隨便找臺機器測試一下spark:
spark-shell
激動的敲了一個:
CDH啟動與關閉
CM Portal 地址:
關閉步驟:
在CM portal上關閉 cluster
在所有節(jié)點關閉CM agent:
service cloudera-scm-agent stop
在master節(jié)點關閉CM server:
service cloudera-scm-server stop
啟動步驟:
在所有節(jié)點啟動CM agent:
service cloudera-scm-agent start
在master節(jié)點啟動CM server:
service cloudera-scm-server start
在CM portal上啟動 cluster
查看啟動日志:
/var/log/cloudera-scm-server/cloudera-scm-server.log
如果是3臺機器一般會出現(xiàn)錯誤:
在CM console中將副本設為2:
dfs.replication=2
在所有的節(jié)點命令行執(zhí)行:
hadoop fs -setrep 2 /
安裝要點:
- 仔細侈离,認真,嚴格按照步驟
- 常見問題:網(wǎng)絡筝蚕,防火墻等主機設置
- 碰到問題:查看日志&官網(wǎng)&百度
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的安裝頁面顯示無法發(fā)現(xiàn)CDH ?
之前一直懷疑是流程步驟有問題绿映,其實流程本身沒有問題,問題發(fā)生在流程的實施節(jié)點上:cdh文件損壞了腐晾;本來1.5G的大小叉弦,當時只有50M,我不記得原因了藻糖,但是太坑了淹冰。
我想到了權限問題;但是忽略了文件損壞問題:sha就是干這個用的巨柒,當時應該考慮到使用sha來校驗一下文件樱拴。
如果cloudera發(fā)現(xiàn)能夠正常發(fā)現(xiàn)parcel,在server啟動后將會打出一條日志:
SearchRepositoryManager-0:com.cloudera.server.web.cmf.search.components.SearchRepositoryManager: Finished constructing repo:2017-09-27T16:19:00.763Z
安裝CDH在拷貝parcel的時候發(fā)生異常:Exhausted available authentication methods
洋满;
后來發(fā)現(xiàn)原來是因為ssh的root用戶被我設置為禁止遠程登錄晶乔;而CDH頁面向導中我還配置的用root用戶登錄
之后發(fā)現(xiàn)拷貝異常,總是聯(lián)網(wǎng)去下載agent包芦岂,但是agent都已經(jīng)在各個節(jié)點了瘪弓;后來發(fā)現(xiàn)agent的啟動是失敗的(在開始的步驟中能夠被自動發(fā)現(xiàn)的都不需要裝agent,需要通過手動輸入IP來進行發(fā)現(xiàn)的需要裝agent禽最,怎么裝腺怯?聯(lián)網(wǎng)),報錯顯示:ProtocolError: <ProtocolError for 127.0.0.1/RPC2: 401 Unauthorized>
川无;在網(wǎng)上搜索了一下呛占,如下處理:
sudo ps -ef | grep supervisord
kill -9 PID
sudo ./cloudera-scm-agent restart
未完,重啟后發(fā)現(xiàn):
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數(shù)據(jù)遷移的時候需要做的事情晾虑,需要將同目錄下的uuid進行刪除;
在安裝的過程中還有一個問題一直困擾我,就是僵尸agent帜篇,在agent經(jīng)歷如上的問題后糙捺,在自動發(fā)現(xiàn)的列表中有一些僵尸agent,會看到同hostname的多臺機器笙隙,有一個是正常通信洪灯,有的則是Unkonwn,無法刪掉竟痰,因為不勾選签钩,那么正常通信的也不會勾選上。反正后來我改了一下hosts文件坏快,莫名其妙的在勾選列表中消失了铅檩,但是遺憾的是正常通信的也沒了。安裝成功后莽鸿,在Hosts頁面才看到這些僵尸agent昧旨,此時再delete可以正常刪除。
Skipping start command because all roles are started or decommissioned or on decommissioned host.
cloudera的server停止后要稍等一會在啟動富拗,因為釋放內存需要一段時間臼予;如果停止后立即就啟動將會發(fā)生一種情況,內存沒有釋放完啃沪,JVM的內存大量釋放和JVM的大量使用將會導致JVM頻繁的進行回收和釋放粘拾,導致JVM Pause以及World Stop
JAVA_HOME is not set and Java could not be found
具體原因不太清楚烙肺,最小化安裝了一個centos7跨跨,發(fā)現(xiàn)沒有jdk,不解淹办。
在clouderea中添加了一個host追驴,然后添加了一個spark nodemanager的角色械哟,然后就悲劇了,總是抱JAVA_HOME is not set and Java could not be found的異常殿雪;即使手動拷貝了一個jdk1.8到上面暇咆,profile也配置了,仍然不好用丙曙。不解爸业。
再看日志的時候,發(fā)現(xiàn)安裝程序(cloudera的安裝程序)將會到幾個固定的地方查找亏镰,選一個扯旷,然后將jdk拷貝到該目錄下,問題解決
參考: