序言
紀(jì)錄下Hadoop集群的搭建過(guò)程及途中踩過(guò)的坑,希望能對(duì)正在學(xué)習(xí)的同學(xué)有個(gè)幫助,少走點(diǎn)彎路~
PS:為了便于個(gè)人博客管理,此文從CSDN遷移過(guò)來(lái),屬于個(gè)人實(shí)際操作紀(jì)錄的筆記,持續(xù)更新~
PPS:本文集群搭建為四臺(tái)機(jī)器,不建議大家這么弄,因?yàn)閦ookeeper發(fā)揮最大作用的配置是大于2 的奇數(shù)臺(tái)機(jī)器。
PPPS:有問題請(qǐng)下方留言,大家互相交流,分享使我快樂~~
一、前期準(zhǔn)備
-
安裝環(huán)境
系統(tǒng)配置:系統(tǒng):centos 7 最小安裝版 64位 內(nèi)存:10G 10G 10G 8G四臺(tái)機(jī)器組成小集群(物理機(jī))
CDH-DEV1 CDH-DEV2 CDH-DEV3 CDH-DEV4 -
需要下載的安裝包
注意下載相應(yīng)系統(tǒng)的安裝包
CDH-5.13.0-1.cdh5.13.0.p0.29-el7.parcel CDH-5.13.0-1.cdh5.13.0.p0.29-el7.parcel.sha1 manifest.jsonjdk-8u144-linux-x64.tar.gz
mysql-5.7.20-1.el7.x86_64.rpm-bundle.tar
二、環(huán)境配置
注意所有操作都需要使用root權(quán)限操作
-
基本配置(所有節(jié)點(diǎn))
修改 /etc/hostname
CDH-DEV1修改 /etc/hosts,此處一定要注意,不要按照網(wǎng)上有的說(shuō)明,將127.0.0.1那一行里的
localhost.localdomain改成主機(jī)名稱,在安裝Cloudera Agent的時(shí)候會(huì)識(shí)別不出名稱和IP
image.png
修改 /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=CDH-DEV1
-
Java環(huán)境(所有節(jié)點(diǎn))
下載jdk-8u144-linux-x64.tar.gz
解壓到/usr/java(可根據(jù)個(gè)人習(xí)慣創(chuàng)建目錄)tar xzvf jdk-8u144-linux-x64.tar.gz配置環(huán)境變量
[root@CDH-DEV1 .ssh]# vim /etc/profile #在文件末尾添加下面三行 export JAVA_HOME=/usr/java/jdk1.8.0_144 export PATH=$JAVA_HOME/bin:$PATH export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar [root@CDH-DEV1 .ssh]# source /etc/profile #使生效 -
SSH無(wú)密碼登錄(集群內(nèi)節(jié)點(diǎn)能夠互相無(wú)密碼訪問)
思路:第一臺(tái)機(jī)器配置
authorized_keys,scp到第二臺(tái)機(jī)器,將第二臺(tái)機(jī)器的公鑰添加到authorized_keys,然后將其scp到第三臺(tái),以此類推,直到配置到最后一臺(tái)機(jī)器,將最后一臺(tái)機(jī)器的authorized_keysscp到所有節(jié)點(diǎn),如下1)在主節(jié)點(diǎn)(CDH-DEV1)執(zhí)行
[root@CDH-DEV1 .ssh]# ssh-keygen -t rsa [root@CDH-DEV1 .ssh]# cat id_rsa.pub >> authorized_keys [root@CDH-DEV1 .ssh]# chmod 600 authorized_keys [root@CDH-DEV1 .ssh]# scp authorized_keys root@CDH-DEV2:~/.ssh2)在CDH-DEV2執(zhí)行
[root@CDH-DEV2 .ssh]# ssh-keygen -t rsa [root@CDH-DEV2 .ssh]# cat id_rsa.pub >> authorized_keys [root@CDH-DEV2 .ssh]# chmod 600 authorized_keys [root@CDH-DEV2 .ssh]# scp authorized_keys root@CDH-DEV3:~/.ssh3)在CDH-DEV2執(zhí)行
[root@CDH-DEV3 .ssh]# ssh-keygen -t rsa [root@CDH-DEV3 .ssh]# cat id_rsa.pub >> authorized_keys [root@CDH-DEV3 .ssh]# chmod 600 authorized_keys [root@CDH-DEV3 .ssh]# scp authorized_keys root@CDH-DEV4:~/.ssh4)在CDH-DEV2執(zhí)行
[root@CDH-DEV4 .ssh]# ssh-keygen -t rsa [root@CDH-DEV4 .ssh]# cat id_rsa.pub >> authorized_keys [root@CDH-DEV4 .ssh]# chmod 600 authorized_keys [root@CDH-DEV4 .ssh]# scp authorized_keys root@CDH-DEV1:~/.ssh [root@CDH-DEV4 .ssh]# scp authorized_keys root@CDH-DEV2:~/.ssh [root@CDH-DEV4 .ssh]# scp authorized_keys root@CDH-DEV3:~/.ssh -
安裝MySQL(主節(jié)點(diǎn)安裝即可)
安裝步驟:
(1)此處需要注意的是centos 7 默認(rèn)安裝的是mariadb,如果不卸載直接安裝的話會(huì)報(bào)錯(cuò),報(bào)錯(cuò)信息mariadb-libs is obsoleted by mysql-community-libs-5.7.9-1.el7.x86_64rpm -qa | grep mariadb #查看安裝信息 rpm -e mariadb-libs* --nodeps #根據(jù)查找到的軟件包信息卸載(2)安裝MySQL(必須按以下順序安裝)
rpm -ivh mysql-community-common-5.7.20-1.el7.x86_64.rpm rpm -ivh mysql-community-libs-5.7.9-1.el7.x86_64.rpm rpm -ivh mysql-community-client-5.7.9-1.el7.x86_64.rpm rpm -ivh mysql-community-server-5.7.9-1.el7.x86_64.rpm(3)基本設(shè)置
service mysqld start #啟動(dòng)服務(wù) vim /var/log/mysqld.log #查看初始密碼 mysql -uroot -p #登錄 set password = password('test01.') #設(shè)置密碼 #授權(quán)用戶root使用密碼passwd從任意主機(jī)連接到mysql服務(wù)器 GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'passwd' WITH GRANT OPTION; flush privileges;(4)建數(shù)據(jù)庫(kù)(用于后邊組件安裝)
create database hive DEFAULT CHARSET utf8 COLLATE utf8_general_ci; create database oozie DEFAULT CHARSET utf8 COLLATE utf8_general_ci; create database hue DEFAULT CHARSET utf8 COLLATE utf8_general_ci; -
關(guān)閉防火墻(所有節(jié)點(diǎn))
centos 7 默認(rèn)使用的是firewall,不是iptablessystemctl stop firewalld.service systemctl mask firewalld.service -
關(guān)閉SELinux(所有節(jié)點(diǎn))
[root@CDH-DEV1 .ssh]# vim /etc/selinux/config 設(shè)置SELINUX=disabled -
配置NTP服務(wù)(所有節(jié)點(diǎn))
安裝 [root@CDH-DEV1 .ssh]# yum install ntp 設(shè)置開機(jī)啟動(dòng) [root@CDH-DEV1 .ssh]# chkconfig ntpd on 服務(wù)啟動(dòng) [root@CDH-DEV1 .ssh]# service ntpd start -
所有節(jié)點(diǎn)上創(chuàng)建用戶
useradd --system --home=/opt/cm-5.13.0/run/cloudera-scm-server/ --no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm
三、安裝
- 安裝Cloudera Manager Server 和Agent
(1)將下載好的cloudera-manager-centos7-cm5.13.0_x86_64.tar.gz解壓到主節(jié)點(diǎn)的/opt/,解壓出來(lái)的文件夾為cloudera與cm-4.13.0
(2)為Cloudera Manager建立數(shù)據(jù)庫(kù),此處需要前邊下載好的mysql-connector-java-5.1.44-bin.jar
scp mysql-connector-java-5.1.44-bin.jar root@CDH-DEV1:/opt/cm-5.13.0/share/cmf/lib/
scp mysql-connector-java-5.1.44-bin.jar root@CDH-DEV1:/usr/share/java/
/opt/cm-5.13.0/share/cmf/schema/scm_prepare_database.sh mysql -uroot -p scm scm
(3)配置Agent
vim opt/cm-5.1.3/etc/cloudera-scm-agent/config.ini
server_host=CDH-DEV1
#拷貝到其他節(jié)點(diǎn)
[root@CDH-DEV1 parcel-repo]# scp -r /opt/cm-5.13.0/ root@cdh-dev2:/opt/
[root@CDH-DEV1 parcel-repo]# scp -r /opt/cm-5.13.0/ root@cdh-dev3:/opt/
[root@CDH-DEV1 parcel-repo]# scp -r /opt/cm-5.13.0/ root@cdh-dev4:/opt/
(4)準(zhǔn)備parcels,將CDH相關(guān)文件拷貝到主節(jié)點(diǎn)/opt/cloudera/parcel-repo/
#相關(guān)文件
CDH-5.13.0-1.cdh5.13.0.p0.29-el7.parcel
CDH-5.13.0-1.cdh5.13.0.p0.29-el7.parcel.sha1
manifest.json
#操作
scp mysql-connector-java-5.1.44-bin.jar root@CDH-DEV1:/opt/cm-5.13.0/share/cmf/lib/
scp mysql-connector-java-5.1.44-bin.jar root@CDH-DEV1:/usr/share/java/
需要將CDH-5.13.0-1.cdh5.13.0.p0.29-el7.parcel.sha1改成CDH-5.13.0-1.cdh5.13.0.p0.29-el7.parcel.sha,否則安裝時(shí)會(huì)重新下載,很重要?。?/p>
[root@CDH-DEV1 parcel-repo]# mv CDH-5.13.0-1.cdh5.13.0.p0.29-el7.parcel.sha1 CDH-5.13.0-1.cdh5.13.0.p0.29-el7.parcel.sha
(5)啟動(dòng)
#主節(jié)點(diǎn)
/opt/cm-5.13.0/etc/init.d/cloudera-scm-server start
#主節(jié)點(diǎn)及其他節(jié)點(diǎn)
/opt/cm-5.13.0/etc/init.d/cloudera-scm-agent start
啟動(dòng)需要點(diǎn)時(shí)間,可以查看數(shù)據(jù)庫(kù)scm中的hosts表,如果里面出現(xiàn)節(jié)點(diǎn)信息表示server啟動(dòng)完成
- 開始安裝Hadoop集群
登錄界面,默認(rèn)登錄用戶名和密碼都是admin

選擇安裝版本

為CDH群集安裝指定主機(jī)
此處是在當(dāng)前管理的主機(jī)里選擇機(jī)器,不要在新主機(jī)里查找,另外這個(gè)地方顯示的主機(jī)信息一定要對(duì),我開始的時(shí)候因?yàn)橹鳈C(jī)名配置出問題,導(dǎo)致無(wú)法識(shí)別主機(jī)名稱和IP,雖然agent的uuid是分配到了四臺(tái)機(jī)器上,但是后邊的安裝無(wú)法進(jìn)行。

群集安裝

群集安裝--安裝指定parcel
分配時(shí)間受帶寬影響,我的是千兆交換機(jī)組成的局域網(wǎng),速度還可以,應(yīng)該不到十分鐘

檢查主機(jī)正確性

第一個(gè)警告直接在所有節(jié)點(diǎn)上執(zhí)行echo 10 > /proc/sys/vm/swappiness
第二個(gè)警告按照上面的說(shuō)明,在所有節(jié)點(diǎn)上執(zhí)行這兩條命令
echo never > /sys/kernel/mm/transparent_hugepage/defrag >> /etc/rc.local
echo never > /sys/kernel/mm/transparent_hugepage/enabled >> /etc/rc.local
群集設(shè)置--選擇安裝服務(wù)--按需選擇
群集設(shè)置--自定義角色--默認(rèn)即可
群集設(shè)置--數(shù)據(jù)庫(kù)設(shè)置

此處hue老出問題,一直解決不了,為了整條線走下去,而且目測(cè)hue基本用不到,所以選擇了放棄安裝hue.
貼一下網(wǎng)上找的幾個(gè)解決方法,我都試了,沒有解決,不知道什么問題,以后研究研究
- 缺少mysql-community-libs-compat-5.7.20-1.el7.x86_64.rpm
- 缺少python-lxml,
yum install python-lxml
群集設(shè)置--審查--默認(rèn)即可
群集設(shè)置--首次設(shè)置--默認(rèn)即可
開始安裝服務(wù)
此處hive ,oozie會(huì)安裝失敗,失敗信息如下。因?yàn)槲覀兪褂昧薓ySQL作為hive元數(shù)據(jù)存儲(chǔ),需要將mysql驅(qū)動(dòng)拷貝到hive和oozie目錄下


解決方法(需要在所有節(jié)點(diǎn)上執(zhí)行)
cp /opt/cm-5.13.0/share/cmf/lib/mysql-connector-java-5.1.44-bin.jar /opt/cloudera/parcels/CDH-5.13.0-1.cdh5.13.0.p0.29/lib/hive/lib/
cp /opt/cm-5.13.0/share/cmf/lib/mysql-connector-java-5.1.44-bin.jar /var/lib/oozie/
安裝完成

四、踩過(guò)的坑
數(shù)據(jù)庫(kù)配置
問題描述:開始給Cloudera Manager配置數(shù)據(jù)庫(kù)的時(shí)候,找的是網(wǎng)上的命令,/opt/cm-5.13.0/share/cmf/schema/scm_prepare_database.sh mysql cm -hlocalhost -uroot -p --scm-host localhost scm scm scm,一直報(bào)錯(cuò),不知道什么問題,報(bào)錯(cuò)信息java.sql.SQLException: Your password does not satisfy the current policy requirements,各種改密碼復(fù)雜度及降低數(shù)據(jù)庫(kù)密碼復(fù)雜度要求都不行,懷疑是CDH版本更新命令參數(shù)發(fā)生了變化
解決方法,去掉部分參數(shù),
/opt/cm-5.13.0/share/cmf/schema/scm_prepare_database.sh mysql -uroot -p scm scmcloudera-scm-server啟動(dòng),cm-5.13.0/etc/init.d/cloudera-scm-server:行109: pstree: 未找到命令,centos最小安裝版缺少軟件包,安裝即可,yum install psmisc-
中途安裝失敗,重新安裝
關(guān)閉所有服務(wù)
#主節(jié)點(diǎn) [root@CDH-DEV1 opt]# /opt/cm-5.13.0/etc/init.d/cloudera-scm-server stop #主節(jié)點(diǎn)及其他節(jié)點(diǎn) [root@CDH-DEV1 opt]# /opt/cm-5.13.0/etc/init.d/cloudera-scm-agent stop刪除agent uuid
rm -rf /opt/cm-5.13.0/lib/cloudera-scm-agent/*刪除數(shù)據(jù)庫(kù)
scm
重新配置數(shù)據(jù)庫(kù)
/opt/cm-5.13.0/share/cmf/schema/scm_prepare_database.sh mysql -hlocalhost -uroot -p scm scm
啟動(dòng)Cloudera server和agent,按照之前步驟安裝即可
五、參考網(wǎng)站
Installing Cloudera Manager and CDH
Cloudera Manager 5和CDH5離線安裝,CDH-5.7.1
離線安裝Cloudera Manager 5和CDH5(最新版5.1.3) 完全教程
寫在后面
碼字不易,覺得好點(diǎn)個(gè)贊哈~~
