序言
紀錄下Hadoop集群的搭建過程及途中踩過的坑戳晌,希望能對正在學習的同學有個幫助奥秆,少走點彎路~
PS:為了便于個人博客管理说庭,此文從CSDN遷移過來袭异,屬于個人實際操作紀錄的筆記,持續(xù)更新~
PPS:本文集群搭建為四臺機器惑淳,不建議大家這么弄额港,因為zookeeper發(fā)揮最大作用的配置是大于2 的奇數(shù)臺機器饺窿。
PPPS:有問題請下方留言歧焦,大家互相交流,分享使我快樂~~
一肚医、前期準備
-
安裝環(huán)境
系統(tǒng)配置:系統(tǒng):centos 7 最小安裝版 64位 內(nèi)存:10G 10G 10G 8G
四臺機器組成小集群(物理機)
CDH-DEV1 CDH-DEV2 CDH-DEV3 CDH-DEV4
-
需要下載的安裝包
注意下載相應系統(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.json
jdk-8u144-linux-x64.tar.gz
mysql-5.7.20-1.el7.x86_64.rpm-bundle.tar
二绢馍、環(huán)境配置
注意所有操作都需要使用root權(quán)限操作
-
基本配置(所有節(jié)點)
修改 /etc/hostname
CDH-DEV1
修改 /etc/hosts,此處一定要注意肠套,不要按照網(wǎng)上有的說明舰涌,將127.0.0.1那一行里的
localhost.localdomain
改成主機名稱,在安裝Cloudera Agent的時候會識別不出名稱和IP
image.png
修改 /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=CDH-DEV1
-
Java環(huán)境(所有節(jié)點)
下載jdk-8u144-linux-x64.tar.gz
解壓到/usr/java(可根據(jù)個人習慣創(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無密碼登錄(集群內(nèi)節(jié)點能夠互相無密碼訪問)
思路:第一臺機器配置
authorized_keys
你稚,scp到第二臺機器瓷耙,將第二臺機器的公鑰添加到authorized_keys
,然后將其scp到第三臺刁赖,以此類推搁痛,直到配置到最后一臺機器,將最后一臺機器的authorized_keys
scp到所有節(jié)點宇弛,如下1)在主節(jié)點(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:~/.ssh
2)在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:~/.ssh
3)在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:~/.ssh
4)在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é)點安裝即可)
安裝步驟:
(1)此處需要注意的是centos 7 默認安裝的是mariadb鸡典,如果不卸載直接安裝的話會報錯,報錯信息mariadb-libs is obsoleted by mysql-community-libs-5.7.9-1.el7.x86_64
rpm -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)基本設置
service mysqld start #啟動服務 vim /var/log/mysqld.log #查看初始密碼 mysql -uroot -p #登錄 set password = password('test01.') #設置密碼 #授權(quán)用戶root使用密碼passwd從任意主機連接到mysql服務器 GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'passwd' WITH GRANT OPTION; flush privileges;
(4)建數(shù)據(jù)庫(用于后邊組件安裝)
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;
-
關閉防火墻(所有節(jié)點)
centos 7 默認使用的是firewall枪芒,不是iptablessystemctl stop firewalld.service systemctl mask firewalld.service
-
關閉SELinux(所有節(jié)點)
[root@CDH-DEV1 .ssh]# vim /etc/selinux/config 設置SELINUX=disabled
-
配置NTP服務(所有節(jié)點)
安裝 [root@CDH-DEV1 .ssh]# yum install ntp 設置開機啟動 [root@CDH-DEV1 .ssh]# chkconfig ntpd on 服務啟動 [root@CDH-DEV1 .ssh]# service ntpd start
-
所有節(jié)點上創(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é)點的/opt/
,解壓出來的文件夾為cloudera
與cm-4.13.0
(2)為Cloudera Manager建立數(shù)據(jù)庫,此處需要前邊下載好的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é)點
[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)準備parcels舅踪,將CDH相關文件拷貝到主節(jié)點/opt/cloudera/parcel-repo/
#相關文件
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
纽甘,否則安裝時會重新下載,很重要3槁怠贷腕!
[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)啟動
#主節(jié)點
/opt/cm-5.13.0/etc/init.d/cloudera-scm-server start
#主節(jié)點及其他節(jié)點
/opt/cm-5.13.0/etc/init.d/cloudera-scm-agent start
啟動需要點時間,可以查看數(shù)據(jù)庫scm
中的hosts
表,如果里面出現(xiàn)節(jié)點信息表示server啟動完成
- 開始安裝Hadoop集群
登錄界面,默認登錄用戶名和密碼都是admin
選擇安裝版本
為CDH群集安裝指定主機
此處是在當前管理的主機里選擇機器泽裳,不要在新主機里查找瞒斩,另外這個地方顯示的主機信息一定要對,我開始的時候因為主機名配置出問題涮总,導致無法識別主機名稱和IP胸囱,雖然agent的uuid是分配到了四臺機器上,但是后邊的安裝無法進行瀑梗。
群集安裝
群集安裝--安裝指定parcel
分配時間受帶寬影響烹笔,我的是千兆交換機組成的局域網(wǎng),速度還可以抛丽,應該不到十分鐘
檢查主機正確性
第一個警告直接在所有節(jié)點上執(zhí)行echo 10 > /proc/sys/vm/swappiness
第二個警告按照上面的說明谤职,在所有節(jié)點上執(zhí)行這兩條命令
echo never > /sys/kernel/mm/transparent_hugepage/defrag >> /etc/rc.local
echo never > /sys/kernel/mm/transparent_hugepage/enabled >> /etc/rc.local
群集設置--選擇安裝服務--按需選擇
群集設置--自定義角色--默認即可
群集設置--數(shù)據(jù)庫設置
此處hue老出問題,一直解決不了亿鲜,為了整條線走下去允蜈,而且目測hue基本用不到,所以選擇了放棄安裝hue.
貼一下網(wǎng)上找的幾個解決方法蒿柳,我都試了饶套,沒有解決,不知道什么問題垒探,以后研究研究
- 缺少mysql-community-libs-compat-5.7.20-1.el7.x86_64.rpm
- 缺少python-lxml妓蛮,
yum install python-lxml
群集設置--審查--默認即可
群集設置--首次設置--默認即可
開始安裝服務
此處hive ,oozie會安裝失敗圾叼,失敗信息如下蛤克。因為我們使用了MySQL作為hive元數(shù)據(jù)存儲,需要將mysql驅(qū)動拷貝到hive和oozie目錄下
解決方法(需要在所有節(jié)點上執(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/
安裝完成
四夷蚊、踩過的坑
數(shù)據(jù)庫配置
問題描述:開始給Cloudera Manager配置數(shù)據(jù)庫的時候构挤,找的是網(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
撬码,一直報錯儿倒,不知道什么問題,報錯信息java.sql.SQLException: Your password does not satisfy the current policy requirements
呜笑,各種改密碼復雜度及降低數(shù)據(jù)庫密碼復雜度要求都不行夫否,懷疑是CDH版本更新命令參數(shù)發(fā)生了變化
解決方法,去掉部分參數(shù)叫胁,
/opt/cm-5.13.0/share/cmf/schema/scm_prepare_database.sh mysql -uroot -p scm scm
cloudera-scm-server
啟動,cm-5.13.0/etc/init.d/cloudera-scm-server:行109: pstree: 未找到命令
,centos最小安裝版缺少軟件包凰慈,安裝即可,yum install psmisc
-
中途安裝失敗驼鹅,重新安裝
關閉所有服務
#主節(jié)點 [root@CDH-DEV1 opt]# /opt/cm-5.13.0/etc/init.d/cloudera-scm-server stop #主節(jié)點及其他節(jié)點 [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ù)庫
scm
重新配置數(shù)據(jù)庫
/opt/cm-5.13.0/share/cmf/schema/scm_prepare_database.sh mysql -hlocalhost -uroot -p scm scm
啟動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) 完全教程
寫在后面
碼字不易,覺得好點個贊哈~~