Cloudera Manager和CDH5.8离线安装
https://blog.csdn.net/zzq900503/article/details/52982828
簡(jiǎn)介
我們?cè)谏掀恼轮幸呀?jīng)了解了CDH,為了后續(xù)的學(xué)習(xí),我們本章就來安裝CDH5.8。CDH5.8是目前比較新的版本,自帶hadoop2.0以上的hadoop,而且已經(jīng)包含了很多組件,也是我們接下來需要學(xué)習(xí)的hadoop生態(tài)圈中的組件。
?
?
?
環(huán)境
Cloudera Manager是為了簡(jiǎn)化hadoop及其組件的部署,但是由于包含的組件較多,對(duì)內(nèi)存要求也比較大。所以我們盡量要保持主節(jié)點(diǎn)master和副節(jié)點(diǎn)足夠的內(nèi)存和磁盤空間,否則會(huì)出現(xiàn)一些無法預(yù)估的錯(cuò)誤。
官方推薦配置
主節(jié)點(diǎn) ?內(nèi)存10G以上 ?磁盤30G ??
副節(jié)點(diǎn) ?內(nèi)存4G以上 ? ?磁盤30G ??
如果不滿足條件的話可以適當(dāng)減一些配置,但不保證能安裝成功。
我們這里還是用VM虛擬機(jī)創(chuàng)建三個(gè)虛擬機(jī)來部署。
因?yàn)闂l件限制我的虛擬機(jī)創(chuàng)建如下:
PC機(jī)系統(tǒng)win10(這個(gè)隨意,應(yīng)該不影響)
PC機(jī)內(nèi)存16G?
虛擬機(jī)VMware-workstation11
虛擬機(jī)系統(tǒng)CentOS-6.4-x86_64 ?也就是 CentOS6.4版本64位的linux系統(tǒng)
作為master的主節(jié)點(diǎn)的虛擬機(jī)?cloudera scm server內(nèi)存 ?8G ? 磁盤30G
作為slave1的副節(jié)點(diǎn)的虛擬機(jī)1?cloudera scm agent內(nèi)存 ?2G ? 磁盤30G
作為slave2的副節(jié)點(diǎn)的虛擬機(jī)2?cloudera scm agent?內(nèi)存 ?2G ? 磁盤30G
Cloudera Manager?5.8.2
CDH ?5.8.2
JDK ? 1.8
Mysql ? 5.6.34
?
?
選擇安裝方式
第一種使用cloudera-manager-installer.bin在線安裝
第二種使用rpm、yum、apt-get方式在線安裝
第三種使用是Tarballs的方式離線安裝
我們前面講到cloudera有三種安裝方式,第一種是最方便的,就像安裝一個(gè)客戶端軟件一樣就可以了,操作簡(jiǎn)單。
但是第一種第二種方式都是在線安裝,也就是需要網(wǎng)絡(luò)網(wǎng)速,虛擬機(jī)需要連接外網(wǎng),尤其是部分資源被墻了,所以在線安裝會(huì)很慢。。。而且安裝中斷安裝失敗的可能性很大。
所以我們還是用第三種方式來安裝,離線安裝虛擬機(jī)不需要連接外網(wǎng),可實(shí)現(xiàn)全離線安裝,但是需要三臺(tái)虛擬機(jī)和PC機(jī)能相互ping通。
我現(xiàn)在的情況是PC機(jī)能上外網(wǎng),三臺(tái)虛擬機(jī)不能上外網(wǎng)(作了ip限制),所以采用完全離線安裝。
?
?
?
?
下載相關(guān)包
因?yàn)橄螺d可能需要點(diǎn)時(shí)間,所以我們先把需要下載的東西全部列出來,可以邊下載邊安裝配置linux系統(tǒng),到最后快到安裝部分時(shí)才需要用到下面的安裝包。
oracle版本的jdk
需要oracle的java1.7以上的jdk
下載地址
http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
我這里選擇了一個(gè)rpm。
?
?
mysql離線安裝包
http://dev.mysql.com/downloads/mysql/ 打開網(wǎng)址: Select Platform: 選擇 Linux-Generic
選擇選擇 Linux - Generic (glibc 2.5) (x86, 64-bit), RPM ? 進(jìn)行下載
?
我這里下載5.6.34版本的,如果跟我下載的一樣,可以使用鏈接
http://cdn.mysql.com//Downloads/MySQL-5.6/MySQL-5.6.34-1.linux_glibc2.5.x86_64.rpm-bundle.tar
?
?
JDBC
hive/Oozie/Hue等都會(huì)使用到MySQL,因而安裝MySQL是必須的。連接MySQL會(huì)用到JDBC驅(qū)動(dòng)。
我們可以去Mysql的官網(wǎng)下載選一個(gè)版本即可,我這里選5.1.40,這里的版本隨意,不需要跟什么搭配對(duì)應(yīng):
http://download.softagency.net/MySQL/Downloads/Connector-J/
或者
http://dev.mysql.com/downloads/connector/j/?
http://download.softagency.net/MySQL/Downloads/Connector-J/mysql-connector-java-5.1.40.zip
?
?
?
?
Cloudera Manager安裝包
?資源鏈接?
?http://archive.cloudera.com/cm5/
?
大家可以根據(jù)自己所用的linux系統(tǒng)選擇相應(yīng)的版本來下載。
由于我們虛擬機(jī)的系統(tǒng)是CentOS6.4,所以需要下載如下文件:
Cloudera Manager 5.8.2安裝包
http://archive.cloudera.com/cm5/cm/5/cloudera-manager-el6-cm5.8.2_x86_64.tar.gz
?
?
?
CDH安裝包
資源鏈接??http://archive.cloudera.com/cdh5/
這里版本需要與系統(tǒng)對(duì)應(yīng)centos 6.x使用的CDH版本為CDH-X.X.X-1.cdhX.X.X.p0.22-el6.parcel,而centos 5.x使用的CDH版本為CDH-X.X.X-1.cdhX.X.X.p0.22-el5.parcel。
而且需要注意的是CDH的版本需要等于或者小于CM的版本,因?yàn)槲覀兊腃M是5.8.2版本,所以要選擇小于或者等于5.8.2的版本。
我們是centOS系統(tǒng),選擇parcels文件夾即可。
根據(jù)自己的系統(tǒng)和環(huán)境版本選擇安裝包。
我這里用CDH5.8.0安裝包
需要注意的是這里的CDH5.8.2沒找到CDH5.8.2-0的版本,CDH5.8.2-1版本是大于CMCDH5.8.2的,所以我這里用CDH5.8.0。
http://archive.cloudera.com/cdh5/parcels/5.8.0/CDH-5.8.0-1.cdh5.8.0.p0.42-el6.parcel
http://archive.cloudera.com/cdh5/parcels/5.8.0/CDH-5.8.0-1.cdh5.8.0.p0.42-el6.parcel.sha1
http://archive.cloudera.com/cdh5/parcels/5.8.0/manifest.json
?
?
?
?
下載完成后的文件
?
?
?
?
?
系統(tǒng)安裝
如果是用的真機(jī)或者阿里云服務(wù)器等可省略此步驟,這里我們是學(xué)習(xí)環(huán)境,所以需要用VM11建立三臺(tái)虛擬機(jī)。
詳細(xì)步驟查看:
(注意選擇虛擬機(jī)類型時(shí)選擇Minimal Desktop,如果選擇Minimal 最小安裝會(huì)沒有圖形界面)
hadoop基礎(chǔ)------虛擬機(jī)(二)---虛擬機(jī)安裝以及安裝linux系統(tǒng)
我們可以先創(chuàng)建一個(gè)內(nèi)存2G的 磁盤30G的虛擬機(jī) 然后克隆出另外2個(gè)。
然后把其中一個(gè)的內(nèi)存修改成8G作為主機(jī)master-cloudera scm server即可。
現(xiàn)在我們有了3臺(tái)虛擬機(jī)
配置如下
cm0 ? ?內(nèi)存8G ?磁盤30G
cm1? ?內(nèi)存2G ?磁盤30G
cm2? ?內(nèi)存2G ?磁盤30G
我這里安裝的是所有組件服務(wù),安裝完成后的磁盤和內(nèi)存情況如下,所以內(nèi)存太小和磁盤空間不夠的話真的不行。。。
?
安裝vmware tools
如果是真機(jī)可以忽略這個(gè)步驟。
vmware tools工具可以實(shí)現(xiàn)虛擬機(jī)和PC主機(jī)之間的復(fù)制粘貼,否則命令需要全部手打,會(huì)比較不方便。
安裝vmware tools的詳細(xì)步驟可參考:
hadoop基礎(chǔ)-------虛擬機(jī)(三)-----VMware虛擬機(jī)下linux系統(tǒng)的與windows主機(jī)實(shí)現(xiàn)復(fù)制粘貼
以及
hadoop基礎(chǔ)------虛擬機(jī)(四)-----VMware虛擬機(jī)下linux系統(tǒng)的圖形界面和命令行文本界面的切換
?
?
?
?
網(wǎng)絡(luò)配置
為了虛擬機(jī)之間能相互ping通,我們需要對(duì)虛擬機(jī)的網(wǎng)絡(luò)根據(jù)PC的主機(jī)進(jìn)行一下配置。如果是真機(jī)的話,也需要配置并測(cè)試是否能相互ping通。
因?yàn)槲覀冎耙呀?jīng)學(xué)習(xí)過了,大家可以按照下面這篇文章詳細(xì)操作:
?
注意:因?yàn)樘摂M機(jī)克隆產(chǎn)生的VM的網(wǎng)卡號(hào)一般都會(huì)自動(dòng)增加,也就是原VM是eth0,克隆生成的就是eth1,eth2等。
所以命令中的網(wǎng)卡號(hào)要對(duì)應(yīng)
所以DEVICE=ethX這里需要對(duì)應(yīng)。
linux基礎(chǔ)(十)----linux網(wǎng)絡(luò)配置詳細(xì)步驟---橋接模式和兩臺(tái)機(jī)子的遠(yuǎn)程通信
對(duì)虛擬機(jī)網(wǎng)絡(luò)不熟悉的也可以參考閱讀:
?
hadoop基礎(chǔ)-------虛擬機(jī)(五)-----虛擬機(jī)linux系統(tǒng)網(wǎng)絡(luò)配置的三種模式
?
?
ps:都設(shè)置好之后如果發(fā)現(xiàn)物理機(jī)和虛擬機(jī)都能ping通192.168.X.1而且物理機(jī)能ping通虛擬機(jī),但虛擬機(jī)ping不通物理機(jī),一般是防火墻問題。
?
?
可能遇到的問題
遇到的問題----linux系統(tǒng)中的eth0網(wǎng)絡(luò)不見了--重啟不加載ifcfg-eth0的配置--需要重新激活
配置完成后用ifconfig查看網(wǎng)絡(luò)情況如下:
?
?
?
?
?
關(guān)閉防火墻
?
物理機(jī)和虛擬機(jī)的防火墻和SElinux都需要關(guān)閉
在安裝過程中需要關(guān)閉防火墻和SElinux,否則會(huì)異常。
使用getenforce命令查看SElinux是否關(guān)閉
修改/etc/selinux/config 文件
將SELINUX=enforcing改為SELINUX=disabled,執(zhí)行該命令后重啟機(jī)器生效
?
service iptables status 查看防火墻狀態(tài)
chkconfig iptables off
?
?
?
修改主機(jī)名和hosts文件
修改主機(jī)名命令
vi??/etc/sysconfig/network
查看主機(jī)名命令
hostname
修改如下(重啟后生效)
?
?
修改hosts文件
hosts文件主要是把ip和主機(jī)名映射起來。
vi?/etc/hosts
三臺(tái)虛擬機(jī)都在hosts文件中增加(根據(jù)自己的主機(jī)名和設(shè)置的ip):
192.168.30.168 cm0
192.168.30.171 cm1
192.168.30.170 cm2
修改如下:
?
?
?
?
設(shè)置ssh無密碼登陸(所有節(jié)點(diǎn))
因?yàn)閔adoop集群在安裝的時(shí)候需要集群中所有機(jī)器的權(quán)限。
所以我們需要打通所有節(jié)點(diǎn)的ssh無密碼登陸。
思路是生成每臺(tái)機(jī)子的密鑰,集中在一個(gè)文件中,再分發(fā)到每臺(tái)機(jī)子上。
為了確保下面的命令能順利執(zhí)行,請(qǐng)先重啟所有節(jié)點(diǎn)并且保證所有節(jié)點(diǎn)能夠通過主機(jī)名ping通。
三臺(tái)機(jī)子都分別使用
ssh-keygen -t rsa
然后一直回車生成密鑰。
我們可以看到/root/.ssh目錄下有了密鑰文件id_rsa以及公鑰文件id_rsa.pub。
cd /root/.ssh
ls
三個(gè)節(jié)點(diǎn)中分別把公鑰id_rsa.pub復(fù)制一份命名為authorized_keys_cm0、authorized_keys_cm1、authorized_keys_cm2。
也就是cm0中執(zhí)行
cp?id_rsa.pub??authorized_keys_cm0
?
也就是cm1中執(zhí)行
cp?id_rsa.pub??authorized_keys_cm1
?
也就是cm2中執(zhí)行
cp?id_rsa.pub??authorized_keys_cm2
?
把從節(jié)點(diǎn)cm1和cm2的公鑰傳送到cm0節(jié)點(diǎn)的/root/.ssh文件夾中
cm1使用命令
scp ?authorized_keys_cm1 ? ?root@cm0:/root/.ssh
?
cm2使用命令
scp ?authorized_keys_cm2 ? ?root@cm0:/root/.ssh
?
這個(gè)時(shí)候我們?cè)赾m0中的root/.ssh目錄會(huì)看到authorized_keys_cm0、authorized_keys_cm1、authorized_keys_cm2三個(gè)文件。
把它們合并追加到authorized_keys文件中。
cat authorized_keys_cm0>> authorized_keys
cat?authorized_keys_cm1>> authorized_keys
cat?authorized_keys_cm2>> authorized_keys
我們可以看到這個(gè)通行證authorized_keys中已經(jīng)有了三臺(tái)機(jī)子的公鑰。
?
把這個(gè)通行證authorized_keys分發(fā)到其他節(jié)點(diǎn)----cm1和cm2中。
scp authorized_keys?root@cm1:/root/.ssh
scp authorized_keys?root@cm2:/root/.ssh
檢查看看 cm1和cm2中已經(jīng)有通行證了
?
測(cè)試節(jié)點(diǎn)之間相互ssh
例如在cm0中
ssh cm1
exit
ssh cm2
exit
?
例如在cm1中
ssh cm0
exit
ssh cm2
exit
?
?
?
配置NTP服務(wù)?
?
集群中所有主機(jī)必須保持時(shí)間同步,如果時(shí)間相差較大會(huì)引起各種問題。 運(yùn)行時(shí)會(huì)報(bào)運(yùn)行狀況不良具體思路如下:
master節(jié)點(diǎn)作為ntp服務(wù)器與外界對(duì)時(shí)中心同步時(shí)間,隨后對(duì)所有slave節(jié)點(diǎn)提供時(shí)間同步服務(wù)。(如果不能上外網(wǎng)那需要保證所有salve節(jié)點(diǎn)與master時(shí)間同步)
所有slave節(jié)點(diǎn)以master節(jié)點(diǎn)為基礎(chǔ)同步時(shí)間。
步驟如下
?
查看NTP服務(wù)狀態(tài)
ntpstat
?
啟動(dòng)ntp
service ntpd start
一般CentOS系統(tǒng)自帶ntp服務(wù),如果沒安裝的話需要安裝一下,如果能連接外網(wǎng),最方便的安裝方法是yum
yum install ntp
如果不能連接外網(wǎng)只能自己查一下離線安裝了--下載rpm包安裝一下即可。
?
設(shè)置開機(jī)啟動(dòng)
chkconfig ntpd on
?
配置ntp
在配置前,先使用ntpdate手動(dòng)同步下時(shí)間,免得本機(jī)與外部時(shí)間服務(wù)器時(shí)間差距太大,讓ntpd不能正常同步。
?
?
使用命令
master節(jié)點(diǎn)cm0 ??ntpdate -u 65.55.56.206 ?(沒有外網(wǎng)的話master就不需要配置了)
slave節(jié)點(diǎn)cm1和cm2 ??ntpdate cm0 (主節(jié)點(diǎn)ntp服務(wù)器)?
vi ??/etc/ntp.conf
進(jìn)入配置文件
master節(jié)點(diǎn)cm0選用65.55.56.206作為對(duì)時(shí)中心。(沒有外網(wǎng)的話master就不需要配置了)
主要配置如下
driftfile /var/lib/ntp/drift
restrict 127.0.0.1
restrict -6 ::1
restrict default nomodify notrap?
server 65.55.56.206 prefer
includefile /etc/ntp/crypto/pw
keys /etc/ntp/keys
主要是增加
server 65.55.56.206 prefer
?
?
?
slave節(jié)點(diǎn)cm1和cm2選用cm0作為對(duì)時(shí)中心。
主要配置如下
driftfile /var/lib/ntp/drift
restrict 127.0.0.1
restrict -6 ::1
restrict default kod nomodify notrap nopeer noquery
restrict -6 default kod nomodify notrap nopeer noquery
#這里是主節(jié)點(diǎn)的主機(jī)名或者ip
server cm0
includefile /etc/ntp/crypto/pw
keys /etc/ntp/keys
主要是增加
server cm0
?
?
配置文件完成,保存退出,啟動(dòng)服務(wù),執(zhí)行如下命令
service ntpd start
執(zhí)行啟動(dòng)5到10分鐘后檢查是否成功。(才執(zhí)行完命令一般本地的ntp服務(wù)器還沒有正常啟動(dòng),一般需要等待5-10分鐘才可以正常同步。)
用
ntpstat
命令查看同步狀態(tài),出現(xiàn)以下狀態(tài)代表啟動(dòng)成功:
synchronised to NTP server () at stratum 2time correct to within 74 mspolling server every 128 s
?
?
檢查是否設(shè)置成功
chkconfig --list ntpd?其中2-5為on狀態(tài)就代表成功。
?
watch "ntpq -p"
查看同步報(bào)告。
?
因?yàn)镹TP的時(shí)間同步是平滑同步,不是跳躍式同步,如果設(shè)置得不好的話,很難校驗(yàn)出它同步成功了沒,總感覺會(huì)缺少幾秒鐘的感覺。
?
有一種解決方法是 ?我們這里不用NTP的自動(dòng)同步,而是使用crond每分鐘ntpdate 跳躍式同步一次。
這種方法不建議在生產(chǎn)環(huán)境使用,但是一般生成環(huán)境都有外網(wǎng),所以就能正確設(shè)置NTP。
所以下面我們?cè)诰钟蚓W(wǎng)無外網(wǎng)的情況下可以用以下方法(偏方)確保時(shí)間同步:
為了確保能同步時(shí)間,我們這里再加上定時(shí)同步步驟。
首先保證cm0的NTP服務(wù)是開啟的。
然后停止cm1和cm2的NTP服務(wù)。
在cm0中運(yùn)行
service ntpd start
在cm1和cm2中運(yùn)行
service ntpd stop
cm1上的配置:
修改crond自動(dòng)運(yùn)行程序的配置文件:
vi /var/spool/cron/root (此處是以root用戶為例,如果是其他用戶,替換為對(duì)應(yīng)的用戶文件名,即可),在該配置文件中,添加一行:
*/1 * * * * ntpdate cm0
(每隔一分鐘,從cm0同步一次時(shí)間)
保存,重新啟動(dòng)crond服務(wù):
service crond restart。
一分鐘以后,cm1的時(shí)間就同步為cm0的時(shí)間了。
cm2的配置:同cm1一樣。局域網(wǎng)內(nèi)還有其他機(jī)器,設(shè)置方法也同cm1一樣。
然后CM中的NTP驗(yàn)證需要抑制。
?
?
?
所有節(jié)點(diǎn)安裝jdk
CentOS自帶OpenJdk,不過運(yùn)行CDH5需要使用Oracle的Java 7以上的jdk支持。
所以我們需要把OpenJdk卸載,然后安裝Oracle的java7以上的jdk。
查看最低需要支持的jdk版本鏈接:
http://www.cloudera.com/documentation/cdh/5-1-x/CDH5-Requirements-and-Supported-Versions/cdhrsv_jdk.html
?
卸載OpenJdk
?
使用
rpm -qa | grep java
查詢java相關(guān)的包,使用
rpm -e --nodeps ?包名
卸載。
圖中我們可以看到有3個(gè)java相關(guān)的包,使用命令
rpm -e --nodeps java-1.6.0-openjdk-1.6.0.0-1.50.1.11.5.el6_3.x86_64
rpm -e --nodeps tzdata-java-2012j-1.el6.noarch
rpm -e --nodeps ?java-1.7.0-openjdk-1.7.0.9-2.3.4.1.el6_3.x86_64
都卸載之后jdk卸載成功了。
安裝oraclejdk
我們之前已經(jīng)下載了oracle的java jdk1.8.現(xiàn)在用ssh工具把文件傳到這幾臺(tái)虛擬機(jī)中。
連接之后我們新建一個(gè)目錄用來安裝jdk,目錄新建為/usr/local/java,然后把jdk-8u111-linux-x64.rpm拉過去。
進(jìn)入該目錄使用命令
rpm -ivh 包名
?安裝。?
我們這里也就是
cd /usr/local/java
rpm -ivh?jdk-8u111-linux-x64.rpm
由于是rpm包并不需要我們來配置環(huán)境變量,我們只需要配置一個(gè)全局的JAVA_HOME變量即可,執(zhí)行命令:
JAVA_HOME的目錄對(duì)應(yīng)我們的安裝目錄,我們這里放rpm的目錄是/usr/local/java/,但是用rpm安裝的jdk默認(rèn)路徑是usr/java/latest。
所以我們的JAVA_HOME變量應(yīng)該是/usr/java/latest/。
echo "JAVA_HOME=/usr/java/latest/" >> /etc/environment
然后用
java -version
檢查是否安裝成功。
其他兩臺(tái)cm1和cm2也類似操作安裝即可。
?
?
主節(jié)點(diǎn)安裝mysql
注意,僅在server節(jié)點(diǎn)也就是master節(jié)點(diǎn)cm0安裝mysql。
CentOS自帶了mysql,但是版本較低是5.1的。
使用命令
rpm -qa | grep mysql ??
查看系統(tǒng)之前是否已安裝MySQL。?
查看組件需要需要的mysql版本鏈接
http://www.cloudera.com/documentation/cdh/5-1-x/CDH5-Requirements-and-Supported-Versions/cdhrsv_db.html
所以 我們還是需要把原mysql卸載,安裝新的mysql5.6以上。
卸載舊mysql
我們還是使用命令
rpm -e --nodeps 包名
卸載舊的mysql,我們這里也就是使用
rpm -e --nodeps?mysql-libs-5.1.66-2.el6_3.x86_64
命令來進(jìn)行卸載。
rpm -qa | grep mysql ? 驗(yàn)證一次是否刪除成功。
?
安裝mysql
然后把我們之前下載好的mysql安裝文件MySQL-5.6.34-1.linux_glibc2.5.x86_64.rpm-bundle.tar用ssh工具上傳到虛擬機(jī)中。
我們還是新建一個(gè)目錄/usr/local/mysql
詳細(xì)安裝步驟查看
CentOS6.4離線安裝mysql5.6.22
?
?
安裝mysql其他相關(guān)組件
除了安裝mysqlsever和client之外我們還需要安裝其他相關(guān)的mysql組件,這些組件都在加壓出來的目錄中。
?
解壓mysql文件的目錄里發(fā)現(xiàn)了除了
MySQL-client-5.6.34-1.linux_glibc2.5.x86_64.rpm
MySQL-server-5.6.34-1.linux_glibc2.5.x86_64.rpm?
這兩個(gè)安裝文件之外另外的rpm包。
我們把其他幾個(gè)關(guān)聯(lián)rpm包也安裝一下。
rpm -ivh ? MySQL-shared-5.6.34-1.linux_glibc2.5.x86_64.rpm
rpm -ivh ? MySQL-devel-5.6.34-1.linux_glibc2.5.x86_64.rpm
rpm -ivh ? MySQL-shared-compat-5.6.34-1.linux_glibc2.5.x86_64.rpm
rpm -ivh ? MySQL-embedded-5.6.34-1.linux_glibc2.5.x86_64.rpm ??
rpm -ivh ? MySQL-test-5.6.34-1.linux_glibc2.5.x86_64.rpm
?
?
?
?
修改密碼和創(chuàng)建數(shù)據(jù)庫(kù)并授權(quán)
舊版mysql才安裝完root密碼為空,新版mysql的root密碼為隨機(jī)密碼保存在/root/.mysql_secret中。
?
修改密碼
使用
service mysql start?
啟動(dòng)mysql
使用
netstat -ntlp ?| grep 3306
查找3306端口確認(rèn)是否已經(jīng)啟動(dòng)成功。
cat ?/root/.mysql_secret
查看隨機(jī)密碼
mysql ?-u root -p ?mysql?
然后輸入隨機(jī)密碼首次登錄mysql并且選擇mysql數(shù)據(jù)庫(kù)
使用以下命令設(shè)置root的新密碼
?
mysql> SET PASSWORD = PASSWORD('123456');
mysql>create database roger;
mysql> quit?
我這里新密碼設(shè)置為123456.
然后
mysql -u root -p
使用123456登陸成功。
?
?
創(chuàng)建數(shù)據(jù)庫(kù)并授權(quán)
?
我們需要?jiǎng)?chuàng)建cdh5.8組件中會(huì)使用到的數(shù)據(jù)庫(kù),創(chuàng)建語(yǔ)句如下:
mysql -u root -p 輸入密碼進(jìn)入mysql命令行,創(chuàng)建以下數(shù)據(jù)庫(kù):?
#hive
mysql>create database hive DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
#activity monitor
mysql>create database amon DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
#activity oozie
mysql>create database oozie DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
#hue數(shù)據(jù)庫(kù)
mysql>create database hue DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
設(shè)置root授權(quán)訪問以上所有的數(shù)據(jù)庫(kù):
#授權(quán)root用戶在主節(jié)點(diǎn)擁有所有數(shù)據(jù)庫(kù)的訪問權(quán)限---'123456' 對(duì)應(yīng)剛才設(shè)置的root的密碼。
mysql>grant all privileges on *.* to 'root'@'cm0' identified by '123456' with grant option;
mysql>flush privileges;
?
?
?
?
?
?
檢查環(huán)境
?
在正式開始安裝CDH之前最好先檢查一下能不能相互免密ssh,以及防火墻是否關(guān)閉,集群中的時(shí)間是否統(tǒng)一,java版本是否是oracle的版本,主節(jié)點(diǎn)mysql是否安裝正確等。
ssh測(cè)試
例如在cm0中
ssh cm1
exit
ssh cm2
exit
例如在cm1中
ssh cm0
exit
ssh cm2
exit
例如在cm2中
ssh cm0
exit
ssh cm1
exit
時(shí)間是否統(tǒng)一
每臺(tái)機(jī)子中使用
date
命令查看當(dāng)前時(shí)間,最好是完全一樣或者差距不大即可。
或者在cm0中使用命令
date;ssh cm1 date;ssh cm2 date
?
?
java的版本
每個(gè)機(jī)子中使用
java -version?
命令查詢jdk的版本。只要不是自帶的openJDK即可。
防火墻狀態(tài)
每個(gè)機(jī)子中使用
service iptables status?
查看防火墻狀態(tài)
?
SElinux狀態(tài)
每個(gè)機(jī)子中使用
getenforce
命令查看SElinux是否關(guān)閉
?
?
mysql狀態(tài)和數(shù)據(jù)庫(kù)
mysql -u root -p
?
使用123456登陸成功后。
show databases;
看看是否新建需要用到的數(shù)據(jù)庫(kù)
?
?
主節(jié)點(diǎn)安裝Cloudera Manager Server 和所有節(jié)點(diǎn)配置Agent?
主節(jié)點(diǎn)安裝cloudera manager
在主節(jié)點(diǎn)cm0中解壓安裝cloudera manager。
首先把我們下載好的cloudera-manager-*.tar.gz包和mysql驅(qū)動(dòng)包mysql-connector-java-*-bin.jar放到主節(jié)點(diǎn)cm0的/opt中。如圖:
我下載的版本分別是:cloudera-manager-el6-cm5.8.2_x86_64.tar.gz和mysql-connector-java-5.1.40.zip。
cloudera manager的目錄默認(rèn)位置在/opt下
所以我們?cè)趏pt目錄解壓安裝文件,命令如下:
cd ?/opt
tar xzvf ?cloudera-manager-el6-cm5.8.2_x86_64.tar.gz
使用命令
ls
確保cm-5.8.2和cloudera目錄在/opt目錄下。?
?
?
Cloudera Manager建立數(shù)據(jù)庫(kù)?
我們把mysql-connector-java-5.1.40.zip也解壓一下。
unzip?mysql-connector-java-5.1.40.zip
ls?
cd??mysql-connector-java-5.1.40
發(fā)現(xiàn)jar包mysql-connector-java-5.1.40-bin.jar已經(jīng)解壓出來了。
使用命令
cp?mysql-connector-java-5.1.40-bin.jar ??/opt/cm-5.8.2/share/cmf/lib/
把mysql-connector-java-5.1.40-bin.jar放到/opt/cm-5.8.2/share/cmf/lib/中。?
cd?/opt/cm-5.8.2/share/cmf/lib/
ls|more
確認(rèn)已經(jīng)放進(jìn)去了。
在主節(jié)點(diǎn)初始化CM5的數(shù)據(jù)庫(kù)
使用命令
在命令里scm_prepare_database.sh后面的參數(shù)分別是:數(shù)據(jù)庫(kù)類型 數(shù)據(jù)庫(kù)名稱(可以隨便起一個(gè)名稱) ? 數(shù)據(jù)庫(kù)主機(jī)名 ?數(shù)據(jù)庫(kù)用戶名 密碼 --scm-host 主節(jié)點(diǎn)機(jī)名 scm scm scm
/opt/cm-5.8.2/share/cmf/schema/scm_prepare_database.sh mysql cm ?-h cm0 ?-u ?root ?-p ?123456 ?--scm-host ?cm0 ?scm scm scm ?
Agent配置?
主節(jié)點(diǎn)修改agent配置文件。
?
/opt/cm-5.8.2/etc/cloudera-scm-agent/config.ini中的server_host為主節(jié)點(diǎn)的主機(jī)名。?
使用命令
vim ?/opt/cm-5.8.2/etc/cloudera-scm-agent/config.ini
在主節(jié)點(diǎn)cm0用命令同步Agent到其他所有節(jié)點(diǎn)
scp -r ? /opt/cm-5.8.2 ? ? root@cm1:/opt/
scp -r ? /opt/cm-5.8.2 ? ? root@cm2:/opt/?
?
?
在所有節(jié)點(diǎn)創(chuàng)建cloudera-scm用戶
在每臺(tái)機(jī)子中
使用命令
useradd --system --home=/opt/cm-5.8.2/run/cloudera-scm-server/ ?--no-create-home ?--shell=/bin/false --comment "Cloudera SCM User" cloudera-scm?
啟動(dòng)cm和agent?
主節(jié)點(diǎn)cm0通過命令
?
/opt/cm-5.8.2/etc/init.d/cloudera-scm-server start
啟動(dòng)服務(wù)端。?
所有節(jié)點(diǎn)通過命令
/opt/cm-5.8.2/etc/init.d/cloudera-scm-agent start
啟動(dòng)Agent服務(wù)。 (所有節(jié)點(diǎn)都要啟動(dòng)Agent服務(wù),包括服務(wù)端)
我們啟動(dòng)的其實(shí)是個(gè)service腳本,需要停止服務(wù)將以上的start參數(shù)改為stop就可以了,重啟是restart。
?
Cloudera?Manager?Server和Agent都啟動(dòng)以后,就可以進(jìn)行嘗試訪問了。
http://master:7180/cmf/login
我這里master是主節(jié)點(diǎn)cm0,也就是應(yīng)該訪問
http://192.168.30.168:7180/cmf/login
安裝CM成功。
安裝到此處,可以考慮備份節(jié)點(diǎn),為將來的節(jié)點(diǎn)拓展做準(zhǔn)備。?
?
?
?
?
CDH5的安裝和集群配置
Cloudera Manager Server和Agent都啟動(dòng)以后,就可以進(jìn)行CDH5的安裝配置了。?準(zhǔn)備文件
把CDH5需要的安裝文件放到主節(jié)點(diǎn)上,新建目錄為 /opt/cloudera/parcel-repo 把我們之前下載的三個(gè)文件放到這個(gè)目錄下 CDH-5.8.0-1.cdh5.8.0.p0.42-el6.parcel CDH-5.8.0-1.cdh5.8.0.p0.42-el6.parcel.sha1 manifest.json 需要注意的是 CDH-5.8.0-1.cdh5.8.0.p0.42-el6.parcel.sha1需要重命名成CDH-5.8.0-1.cdh5.8.0.p0.42-el6.parcel.sha安裝parcel
訪問CM的主頁(yè) http://192.168.30.168:7180/cmf/login 用戶名和密碼均為admin。 登錄之后同意條款。 右下角點(diǎn)擊繼續(xù)。 選擇版本然后右下角繼續(xù)。 點(diǎn)擊繼續(xù),各個(gè)Agent節(jié)點(diǎn)正常啟動(dòng)后,可以在當(dāng)前管理的主機(jī)列表中看到對(duì)應(yīng)的節(jié)點(diǎn)。選擇要安裝的節(jié)點(diǎn),點(diǎn)繼續(xù)。 接下來,出現(xiàn)以下包名,說明本地Parcel包配置無誤,直接點(diǎn)繼續(xù)就可以了。 如果此處發(fā)現(xiàn)不到parcel包,就重啟所有節(jié)點(diǎn)的agent服務(wù),和master的server服務(wù),然后重新嘗試。并且確認(rèn)CDH版本小于或者等于CM的版本?
?
本地通過Parcel安裝過程與本地通過Package安裝過程完全一致,不同的是兩者的本地源的配置。
區(qū)別如下:
Package本地源:軟件包是.rpm格式的,數(shù)量通常較多,下載的時(shí)候比較麻煩。通過”createrepo .”的命令創(chuàng)建源,并要放到存放源文件主機(jī)的web服務(wù)器的根目錄下,詳見創(chuàng)建本地yum軟件源,為本地Package安裝Cloudera Manager、Cloudera Hadoop及Impala做準(zhǔn)備
Parcel本地源:軟件包是以.parcel結(jié)尾,相當(dāng)于壓縮包格式的,一個(gè)系統(tǒng)版本對(duì)應(yīng)一個(gè),下載的時(shí)候方便。如centos 6.x使用的CDH版本為CDH-X.X.X-1.cdhX.X.X.p0.22-el6.parcel,而centos 5.x使用的CDH版本為CDH-X.X.X-1.cdhX.X.X.p0.22-el5.parcel。
?
這些文件放好之后,CM會(huì)獲取這個(gè)包,并出現(xiàn)在主機(jī)->包裹的頁(yè)面。出現(xiàn)的快慢跟你設(shè)置的包的刷新頻率有關(guān),默認(rèn)是1小時(shí)。也可以重啟CM服務(wù)和agent服務(wù)識(shí)別。
可以在管理頁(yè)面的屬性標(biāo)簽下的包裹種類里修改。
?
?
?
等待parcel安裝
正常情況下 內(nèi)網(wǎng)網(wǎng)速速好的話 10分鐘左右激活完畢,最多不超過30分鐘 如果卡住了 建議看看日志
安裝過程中有什么問題 可以用
/opt/cm-5.8.2/etc/init.d/cloudera-scm-agent status
/opt/cm-5.8.2/etc/init.d/cloudera-scm-server status
查看服務(wù)器客戶端狀態(tài)
?
也可以通過
/var/log/cloudera-scm-server/cloudera-scm-server.log
/var/log/cloudera-scm-agent/cloudera-scm-agent.log
查看日志
如果上面的路徑找不到則在
日志文件夾"/opt/cm-5.8.2/log"查看日志,里面包含server和agent的log,使用命令如下:
tail -f /opt/cm-5.8.2/log/cloudera-scm-server/cloudera-scm-server.log
tail -f /opt/cm-5.8.2/log/cloudera-scm-agent/cloudera-scm-agent.log
?
例如我這里NTP因?yàn)闆]有外網(wǎng),所以會(huì)報(bào)錯(cuò),不過有些錯(cuò)誤不影響的話不需要管。
?
?
?
成功激活后繼續(xù)右下角點(diǎn)擊繼續(xù)
?
?
?
主機(jī)檢查
會(huì)進(jìn)入自動(dòng)檢查主機(jī)(耗時(shí)2分鐘左右)然后給出報(bào)告,包括需要修改的部分和組件的版本
?
?
?
?
解決警告
這里有2個(gè)警告需要解決一下,至于版本里的不可用不適用不需要管。
警告一
Cloudera 建議將 /proc/sys/vm/swappiness 設(shè)置為最大值 10。當(dāng)前設(shè)置為 60。使用 sysctl 命令在運(yùn)行時(shí)更改該設(shè)置并編輯 /etc/sysctl.conf,以在重啟后保存該設(shè)置。您可以繼續(xù)進(jìn)行安裝,但 Cloudera Manager 可能會(huì)報(bào)告您的主機(jī)由于交換而運(yùn)行狀況不良。以下主機(jī)將受到影響
解決方法
每臺(tái)受影響的主機(jī)運(yùn)行
echo 10 > /proc/sys/vm/swappiness 即可解決。
?
?
?
警告二
已啟用透明大頁(yè)面壓縮,可能會(huì)導(dǎo)致重大性能問題。請(qǐng)運(yùn)行“echo never > /sys/kernel/mm/transparent_hugepage/defrag”以禁用此設(shè)置,然后將同一命令添加到 /etc/rc.local 等初始腳本中,以便在系統(tǒng)重啟時(shí)予以設(shè)置。以下主機(jī)將受到影響
?
解決方法
每臺(tái)受影響的主機(jī)運(yùn)行命令
echo never > /sys/kernel/mm/transparent_hugepage/defrag
并且
vim ??/etc/rc.local ?
加入echo never > /sys/kernel/mm/transparent_hugepage/defrag這條命令。
?
然后點(diǎn)擊重新運(yùn)行進(jìn)行重新檢查
?
?
全部綠勾了,然后點(diǎn)擊右下角的完成。
選擇安裝哪些組件服務(wù)--這里根據(jù)需求選擇即可。
?
?
?
選擇組件服務(wù)
右下角點(diǎn)擊繼續(xù),然后配置角色。一般情況下保持默認(rèn)就可以了(Cloudera Manager會(huì)根據(jù)機(jī)器的配置自動(dòng)進(jìn)行配置,如果需要特殊調(diào)整,自行進(jìn)行設(shè)置就可以了)。
我這里使用默認(rèn)配置,所以直接點(diǎn)擊繼續(xù)就可以了。
?
?
?
?
配置數(shù)據(jù)庫(kù)
然后配置數(shù)據(jù)庫(kù)
這里需要輸入自己的mysql的對(duì)應(yīng)數(shù)據(jù)庫(kù)名稱和用戶名以及密碼。
我們之前在mysql中新建的數(shù)據(jù)名分布對(duì)應(yīng)填入 然后點(diǎn)擊測(cè)試連接。
hive ? root ?123456
oozie ?root ?123456
hue ? ?root ?123456
如果測(cè)試連接全部是Successful,則點(diǎn)擊右下角的繼續(xù)。
?
?
?
可能遇到的問題---hue--unable to verify
?
查看日志后發(fā)現(xiàn)原因是
?
Error loading MySQLdb module: libmysqlclient_r.so.16: cannot open shared object file: No such file or directory
?
?
這個(gè)是因?yàn)閏m的服務(wù)端是用java編寫的,cm的客戶端是python編寫的,這里測(cè)試連接時(shí)是用python去連接數(shù)據(jù)庫(kù)。但是CentOS系統(tǒng)本身會(huì)缺少一些python連接數(shù)據(jù)庫(kù)需要的關(guān)聯(lián)庫(kù)。
?
解決方法
在mysql的安裝目錄找到系統(tǒng)缺少的這個(gè)包,關(guān)聯(lián)到系統(tǒng)即可。
?
根據(jù)最后提示,應(yīng)該是找不著一個(gè)交libmysqlclient_r.so.16的文件,于是到mysql安裝目錄里找到這個(gè)文件并且做一個(gè)軟連接到/usr/lib
如果是按照我們之前的離線安裝mysql步驟安裝的話 默認(rèn)的mysql安裝目錄是/var/lib/mysql/?
ln -s?/var/lib/mysql/lib/libmysqlclient_r.so.16 ??/usr/lib64/libmysqlclient_r.so.16
但是/var/lib/mysql/ 目錄下沒有找到lib目錄
使用
find / -name libmysqlclient_r.so.16
whereis ? libmysqlclient_r.so.16
也找不到libmysqlclient_r.so.16。
我們?cè)谥敖鈮簃ysql文件的目錄里發(fā)現(xiàn)了除了
MySQL-client-5.6.34-1.linux_glibc2.5.x86_64.rpm
MySQL-server-5.6.34-1.linux_glibc2.5.x86_64.rpm?
這兩個(gè)安裝文件之外另外的rpm包。
我們把其他幾個(gè)關(guān)聯(lián)rpm包也安裝一下。
rpm -ivh ? MySQL-shared-5.6.34-1.linux_glibc2.5.x86_64.rpm
rpm -ivh ? MySQL-devel-5.6.34-1.linux_glibc2.5.x86_64.rpm
rpm -ivh ? MySQL-shared-compat-5.6.34-1.linux_glibc2.5.x86_64.rpm
rpm -ivh ? MySQL-embedded-5.6.34-1.linux_glibc2.5.x86_64.rpm ??
rpm -ivh ? MySQL-test-5.6.34-1.linux_glibc2.5.x86_64.rpm
安裝完成后再查找
whereis ? libmysqlclient_r.so.16
發(fā)現(xiàn)已經(jīng)有了libmysqlclient_r.so.16而且已經(jīng)在/usr/lib64路徑下了。
再次點(diǎn)擊測(cè)試連接,成功。
?
?
?
審核更改
審核更改中列出相關(guān)目錄和配置,如果有需要的話就修改,無特殊需求使用默認(rèn)的即可,點(diǎn)擊右下角的繼續(xù)。
另外如果需要自己設(shè)定文件夾,一定要先mkdir文件夾,否側(cè)hdfs會(huì)無法啟動(dòng),并且報(bào)錯(cuò)文件夾不存在,并確保訪問權(quán)限。
?
?
?
集群?jiǎn)?dòng)
集群會(huì)首次運(yùn)行所有的組件,這過程中可能會(huì)有一些錯(cuò)誤,不要擔(dān)心,解決重試即可。下面會(huì)依次給出我遇到的情況供大家參考,基本上都是權(quán)限或者驅(qū)動(dòng)問題。
正確首次啟動(dòng)后如下圖(是不是很激動(dòng)^^)
右下角繼續(xù),離成功安裝一步之遙。
?
?
?
可能遇到的問題---hdfs啟動(dòng)失敗--創(chuàng)建/tmp目錄失敗
Directory /tmp does not currently exist
Can't open /opt/cm-5.8.2/run/cloudera-scm-agent/process/61-hdfs-NAMENODE-createtmp/supervisor.conf: Permission denied.
報(bào)錯(cuò)信息
Mon Nov 28 14:20:59 CST 2016
JAVA_HOME=/usr/java/latest/
using /usr/java/latest/ as JAVA_HOME
using 5 as CDH_VERSION
using /opt/cm-5.8.2/run/cloudera-scm-agent/process/61-hdfs-NAMENODE-createtmp as CONF_DIR
using ?as SECURE_USER
using ?as SECURE_GROUP
unlimited
Directory /tmp does not currently exist.
+ HADOOP_CLASSPATH=/opt/cm-5.8.2/share/cmf/lib/plugins/event-publish-5.8.2-shaded.jar:/opt/cm-5.8.2/share/cmf/lib/plugins/tt-instrumentation-5.8.2.jar:/opt/cm-5.8.2/share/cmf/lib/plugins/navigator/cdh57/audit-plugin-cdh57-2.7.2-shaded.jar
+ set -x
+ replace_conf_dir
+ find /opt/cm-5.8.2/run/cloudera-scm-agent/process/61-hdfs-NAMENODE-createtmp -type f '!' -path '/opt/cm-5.8.2/run/cloudera-scm-agent/process/61-hdfs-NAMENODE-createtmp/logs/*' '!' -name '*.log' '!' -name '*.keytab' '!' -name '*jceks' -exec perl -pi -e 's#{{CMF_CONF_DIR}}#/opt/cm-5.8.2/run/cloudera-scm-agent/process/61-hdfs-NAMENODE-createtmp#g' '{}' ';'
Can't open /opt/cm-5.8.2/run/cloudera-scm-agent/process/61-hdfs-NAMENODE-createtmp/supervisor.conf: Permission denied.
+ make_scripts_executable
+ find /opt/cm-5.8.2/run/cloudera-scm-agent/process/61-hdfs-NAMENODE-createtmp -regex '.*\.py∥shpy‖sh$' -exec chmod u+x '{}' ';'
+ '[' DATANODE_MAX_LOCKED_MEMORY '!=' '' ']'
+ ulimit -l
+ export HADOOP_IDENT_STRING=hdfs
+ HADOOP_IDENT_STRING=hdfs
+ '[' -n '' ']'
+ acquire_kerberos_tgt hdfs.keytab
+ '[' -z hdfs.keytab ']'
+ '[' -n '' ']'
+ '[' validate-writable-empty-dirs = mkdir ']'
+ '[' file-operation = mkdir ']'
+ '[' bootstrap = mkdir ']'
+ '[' failover = mkdir ']'
+ '[' transition-to-active = mkdir ']'
+ '[' initializeSharedEdits = mkdir ']'
+ '[' initialize-znode = mkdir ']'
+ '[' format-namenode = mkdir ']'
+ '[' monitor-decommission = mkdir ']'
+ '[' jnSyncWait = mkdir ']'
+ '[' nnRpcWait = mkdir ']'
+ '[' -safemode = supergroup -a get = 1777 ']'
+ '[' monitor-upgrade = mkdir ']'
+ '[' finalize-upgrade = mkdir ']'
+ '[' rolling-upgrade-prepare = mkdir ']'
+ '[' rolling-upgrade-finalize = mkdir ']'
+ '[' nnDnLiveWait = mkdir ']'
+ '[' refresh-datanode = mkdir ']'
+ '[' mkdir = mkdir ']'
+ '[' 5 -ne 5 ']'
+ DIR=/tmp
+ USER=hdfs
+ GROUP=supergroup
+ PERMS=1777
+ RET=0
+ /opt/cloudera/parcels/CDH-5.8.0-1.cdh5.8.0.p0.42/lib/hadoop-hdfs/bin/hdfs --config /opt/cm-5.8.2/run/cloudera-scm-agent/process/61-hdfs-NAMENODE-createtmp dfs -test -d /tmp
原因是hdfs用戶或者cm用戶對(duì)這個(gè)文件沒有操作權(quán)限。我們進(jìn)入這個(gè)目錄查看
cd ? ?/opt/cm-5.8.2/run/cloudera-scm-agent/process/61-hdfs-NAMENODE-createtmp/
ls -l
發(fā)現(xiàn)確實(shí)是這個(gè)文件只有root才能讀寫,那么我們應(yīng)該設(shè)置一下權(quán)限,因?yàn)閏m是用hdfs用戶在操作的。
使用命令
cd ? ?/opt/cm-5.8.2/run/cloudera-scm-agent/process/61-hdfs-NAMENODE-createtmp/
chmod 666 supervisor.conf
ls ?-l
然后點(diǎn)擊右下角的重試。
?
?
可能遇到的問題--啟動(dòng) Key-Value Store Indexer, YARN (MR2 Included)---Create Job History Dir 失敗
?
啟動(dòng) Key-Value Store Indexer, YARN (MR2 Included)
?僅完成 0/2 個(gè)步驟。首個(gè)失敗:在服務(wù) Key-Value Store Indexer 上執(zhí)行命令 Start 失敗
僅完成 0/2 個(gè)步驟。首個(gè)失敗:在服務(wù) YARN (MR2 Included) 上執(zhí)行命令 Create Job History Dir 失敗
使用用戶 mapred 組 hadoop 和權(quán)限 1777 創(chuàng)建 DFS 目錄 /tmp/logs
?主機(jī)運(yùn)行狀況變成不良時(shí),主機(jī) cm0 (id=3) 上的進(jìn)程 dfs-create-dir (id=72) 被標(biāo)記為失敗
Mon Nov 28 14:53:18 CST 2016
JAVA_HOME=/usr/java/latest/
using /usr/java/latest/ as JAVA_HOME
using 5 as CDH_VERSION
using /opt/cm-5.8.2/run/cloudera-scm-agent/process/72-dfs-create-dir as CONF_DIR
using ?as SECURE_USER
using ?as SECURE_GROUP
unlimited
Directory /tmp/logs does not currently exist.
Created directory /tmp/logs.
Changed ownership of /tmp/logs to mapred:hadoop.
Can't open /opt/cm-5.8.2/run/cloudera-scm-agent/process/72-dfs-create-dir/supervisor.conf: Permission denied.
?
?
+ HADOOP_CLASSPATH=/opt/cm-5.8.2/share/cmf/lib/plugins/event-publish-5.8.2-shaded.jar:/opt/cm-5.8.2/share/cmf/lib/plugins/tt-instrumentation-5.8.2.jar:/opt/cm-5.8.2/share/cmf/lib/plugins/navigator/cdh57/audit-plugin-cdh57-2.7.2-shaded.jar
?
+ set -x+ replace_conf_dir+ find /opt/cm-5.8.2/run/cloudera-scm-agent/process/72-dfs-create-dir -type f '!' -path '/opt/cm-5.8.2/run/cloudera-scm-agent/process/72-dfs-create-dir/logs/*' '!' -name '*.log' '!' -name '*.keytab' '!' -name '*jceks' -exec perl -pi -e 's#{{CMF_CONF_DIR}}#/opt/cm-5.8.2/run/cloudera-scm-agent/process/72-dfs-create-dir#g' '{}' ';'Can't open /opt/cm-5.8.2/run/cloudera-scm-agent/process/72-dfs-create-dir/supervisor.conf: Permission denied.+ make_scripts_executable+ find /opt/cm-5.8.2/run/cloudera-scm-agent/process/72-dfs-create-dir -regex '.*\.py∥shpy‖sh$' -exec chmod u+x '{}' ';'+ '[' DATANODE_MAX_LOCKED_MEMORY '!=' '' ']'+ ulimit -l+ export HADOOP_IDENT_STRING=hdfs+ HADOOP_IDENT_STRING=hdfs+ '[' -n '' ']'+ acquire_kerberos_tgt hdfs.keytab+ '[' -z hdfs.keytab ']'+ '[' -n '' ']'+ '[' validate-writable-empty-dirs = mkdir ']'
點(diǎn)擊stderr看了詳細(xì)的報(bào)錯(cuò)發(fā)現(xiàn)仍然是權(quán)限問題,解決方法跟之前一樣,進(jìn)入這個(gè)路徑后更改下權(quán)限即可。
?
?
?
?
可能遇到的問題--Solr, HBase--Command Start is not currently available for execution
這種情況界面上沒有詳細(xì)的信息但是在日志中可以看到是超時(shí)了,這種情況下確保局域網(wǎng)網(wǎng)絡(luò)好的情況下并且master服務(wù)器服務(wù)良好的情況下直接重試。
?
?
?
?
可能遇到問題---啟動(dòng)hive---Failed to Create Hive Metastore Database Tables
?
++ false++ exec /opt/cloudera/parcels/CDH-5.8.0-1.cdh5.8.0.p0.42/lib/hadoop/bin/hadoop jar /opt/cloudera/parcels/CDH-5.8.0-1.cdh5.8.0.p0.42/lib/hive/lib/hive-cli-1.1.0-cdh5.8.0.jar org.apache.hive.beeline.HiveSchemaTool -verbose -dbType mysql -initSchemaJava HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=512M; support was removed in 8.0org.apache.hadoop.hive.metastore.HiveMetaException: Failed to load driverorg.apache.hadoop.hive.metastore.HiveMetaException: Failed to load driverat org.apache.hive.beeline.HiveSchemaHelper.getConnectionToMetastore(HiveSchemaHelper.java:79)at org.apache.hive.beeline.HiveSchemaTool.getConnectionToMetastore(HiveSchemaTool.java:113)at org.apache.hive.beeline.HiveSchemaTool.testConnectionToMetastore(HiveSchemaTool.java:159)at org.apache.hive.beeline.HiveSchemaTool.doInit(HiveSchemaTool.java:257)at org.apache.hive.beeline.HiveSchemaTool.doInit(HiveSchemaTool.java:243)at org.apache.hive.beeline.HiveSchemaTool.main(HiveSchemaTool.java:473)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)at java.lang.reflect.Method.invoke(Method.java:498)at org.apache.hadoop.util.RunJar.run(RunJar.java:221)at org.apache.hadoop.util.RunJar.main(RunJar.java:136)Caused by: java.lang.ClassNotFoundException: com.mysql.jdbc.Driverat java.net.URLClassLoader.findClass(URLClassLoader.java:381)at java.lang.ClassLoader.loadClass(ClassLoader.java:424)at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)at java.lang.ClassLoader.loadClass(ClassLoader.java:357)at java.lang.Class.forName0(Native Method)at java.lang.Class.forName(Class.java:264)at org.apache.hive.beeline.HiveSchemaHelper.getConnectionToMetastore(HiveSchemaHelper.java:70)... 11 more*** schemaTool failed ***
?
?
?
這是hive的lib包中缺少mysql的驅(qū)動(dòng)導(dǎo)致的。我們之前已經(jīng)把mysql驅(qū)動(dòng)包mysql-connector-java-*-bin.jar放到主節(jié)點(diǎn)cm0的/opt中,現(xiàn)在復(fù)制一份到/opt/cloudera/parcels/CDH-5.8.0-1.cdh5.8.0.p0.42/lib/hive/lib(這里CDH-5.8.0-1.cdh5.8.0.p0.42要跟自己的版本對(duì)應(yīng))
?
使用命令如下
cd /opt/mysql-connector-java-5.1.40cp mysql-connector-java-5.1.40-bin.jar ? /opt/cloudera/parcels/CDH-5.8.0-1.cdh5.8.0.p0.42/lib/hive/lib把mysql-connector-java-5.1.40-bin.jar放到/opt/cloudera/parcels/CDH-5.8.0-1.cdh5.8.0.p0.42/lib/hive/lib中。?cd ?/opt/cloudera/parcels/CDH-5.8.0-1.cdh5.8.0.p0.42/lib/hive/libls|more確認(rèn)已經(jīng)放進(jìn)去了。
然后點(diǎn)擊右下角的重試。
?
?
?
?
?
?
?
?
可能遇到的問題---啟動(dòng) Oozie, Impala---Create Oozie Database Tables 失敗
?
Error: Could not connect to the database: java.lang.ClassNotFoundException: com.mysql.jdbc.DriverStack trace for the error was (for debug purposes):--------------------------------------java.lang.Exception: Could not connect to the database: java.lang.ClassNotFoundException: com.mysql.jdbc.Driverat org.apache.oozie.tools.OozieDBCLI.validateConnection(OozieDBCLI.java:905)at org.apache.oozie.tools.OozieDBCLI.createDB(OozieDBCLI.java:185)at org.apache.oozie.tools.OozieDBCLI.run(OozieDBCLI.java:129)at org.apache.oozie.tools.OozieDBCLI.main(OozieDBCLI.java:80)Caused by: java.lang.ClassNotFoundException: com.mysql.jdbc.Driverat java.net.URLClassLoader.findClass(URLClassLoader.java:381)at java.lang.ClassLoader.loadClass(ClassLoader.java:424)at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)at java.lang.ClassLoader.loadClass(ClassLoader.java:357)at java.lang.Class.forName0(Native Method)at java.lang.Class.forName(Class.java:264)at org.apache.oozie.tools.OozieDBCLI.createConnection(OozieDBCLI.java:894)at org.apache.oozie.tools.OozieDBCLI.validateConnection(OozieDBCLI.java:901)... 3 more--------------------------------------
+ '[' 0 = 1 ']'+ '[' CLOUDERA_MYSQL_CONNECTOR_JAR '!=' '' ']'+ eval 'JAR_LOCATION=$CLOUDERA_MYSQL_CONNECTOR_JAR'++ JAR_LOCATION=/usr/share/java/mysql-connector-java.jar+ echo 'Copying JDBC jar from /usr/share/java/mysql-connector-java.jar to /var/lib/oozie'+ cp /usr/share/java/mysql-connector-java.jar /var/lib/oozie/cp: cannot stat `/usr/share/java/mysql-connector-java.jar': No such file or directory+ OOZIECPPATH=
?
跟hive啟動(dòng)的問題一樣,缺少驅(qū)動(dòng)。
?
?
Oozie的lib包中缺少mysql的驅(qū)動(dòng)導(dǎo)致的。我們之前已經(jīng)把mysql驅(qū)動(dòng)包mysql-connector-java-*-bin.jar放到主節(jié)點(diǎn)cm0的/opt中,現(xiàn)在復(fù)制一份到/opt/cloudera/parcels/CDH-5.8.0-1.cdh5.8.0.p0.42/lib/Oozie/lib(這里CDH-5.8.0-1.cdh5.8.0.p0.42要跟自己的版本對(duì)應(yīng))
?
再?gòu)?fù)制一份到/var/lib/oozie/
?
使用命令如下把mysql-connector-java-5.1.40-bin.jar放到/opt/cloudera/parcels/CDH-5.8.0-1.cdh5.8.0.p0.42/lib/oozie/lib中。?
?
?
cd /opt/mysql-connector-java-5.1.40
cp mysql-connector-java-5.1.40-bin.jar ? /opt/cloudera/parcels/CDH-5.8.0-1.cdh5.8.0.p0.42/lib/oozie/lib
?
cp mysql-connector-java-5.1.40-bin.jar ? /var/lib/oozie
cd ?/opt/cloudera/parcels/CDH-5.8.0-1.cdh5.8.0.p0.42/lib/oozie/lib
ls|more
確認(rèn)已經(jīng)放進(jìn)去了。
?
cd /var/lib/oozie
?
?
ls|more
?
點(diǎn)擊右下角重試。
?
?
?
?
?
?
?
?
?
?
?
?
安裝完成
?
恭喜您,安裝完成。
點(diǎn)擊完成后會(huì)進(jìn)入監(jiān)控界面。如果有紅色的話,還是需要我們?nèi)ソ鉀Q的。。。
?
?
具體排查的情況可以參考文章或者自己查資料。
hadoop基礎(chǔ)----hadoop實(shí)戰(zhàn)(九)-----hadoop管理工具---CDH的錯(cuò)誤排查(持續(xù)更新)
?
?
全部解決后就全綠了。
?
?
?
?
備份安裝配置完好的系統(tǒng)
到這里我們的安裝就算完成了。為了以后的修復(fù)方便,我們可以對(duì)分別對(duì)linux系統(tǒng)進(jìn)行備份。虛擬機(jī)的就很方便,直接復(fù)制壓縮虛擬機(jī)文件即可。
總結(jié)
以上是生活随笔為你收集整理的Cloudera Manager和CDH5.8离线安装的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 超云将成为数据中心演化的下一个阶段
- 下一篇: Service Mesh服务网格:是什么