App下載

CDH環(huán)境搭建及部署

猿友 2021-01-08 11:40:52 瀏覽數(shù) (6080)
反饋

一、概述


Cloudera版本(Cloudera’s Distribution Including Apache Hadoop,簡(jiǎn)稱“CDH”),基于Web的用戶界面,支持大多數(shù)Hadoop組件,包括HDFS、MapReduce、Hive、Pig、 Hbase、Zookeeper、Sqoop。

二、安裝部署


2.1 集群架構(gòu)

序號(hào) IP地址 主機(jī)名 系統(tǒng)版本
1 10.211.55.100 zero Centos 7.7
2 10.211.55.101 Hadoop1 Centos 7.7
3 10.211.55.102 Hadoop2 Centos 7.7

2.2 基礎(chǔ)環(huán)境配置

2.2.1 網(wǎng)絡(luò)配置
vi /etc/sysconfig/network-scripts/ifcfg-eth0

BOOTPROTO=static 
ONBOOT=yes
IPADDR=10.211.55.100
NETMASK=255.255.255.0 
GATEWAY=10.211.55.1
systemctl restart network.service  #重啟網(wǎng)絡(luò)服務(wù)
2.2.2 禁用防火墻和SELINUX
systemctl stop firewalld
systemctl disable firewalld
vi /etc/sysconfig/selinux

SELINUX=disabled  #將SELINUX的值改為disabled

reboot  #重啟設(shè)備使selinux的配置生效
2.2.3 更改主機(jī)名
hostnamectl set-hostname  zero
2.2.3 修改hosts
vi /etc/hosts

10.211.55.100 zero
10.211.55.101 hadoop1
10.211.55.102 hadoop2

reboot  #修改完后重啟生效
2.2.4 同步時(shí)間
yum -y install ntp  #安裝NPT服務(wù)
vi /etc/ntp.conf  #修改配置文件

#注釋掉原有的server指向
#server 0.centos.pool.ntp.org iburst
#server 1.centos.pool.ntp.org iburst
#server 2.centos.pool.ntp.org iburst
#server 3.centos.pool.ntp.org iburst

#zero節(jié)點(diǎn)指向
server 0.cn.pool.ntp.org
server 0.asia.pool.ntp.org
server 3.asia.pool.ntp.org

server 10.211.55.100 iburst  #Hadoop1/Hadoop2節(jié)點(diǎn)指向zero節(jié)點(diǎn)
ntpdate -u cn.pool.ntp.org  #同步網(wǎng)絡(luò)時(shí)間

#重啟ntp服務(wù)
systemctl start ntpd
systemctl enable ntpd

hwclock --localtime -w  #將系統(tǒng)時(shí)間寫(xiě)入本地硬件時(shí)鐘時(shí)間
2.2.5 配置SSH免密登錄
ssh-keygen -t rsa  #不輸入密碼,一路回車(chē)

ssh-copy-id hadoop1
ssh-copy-id hadoop2

#測(cè)試連通性
ssh 'zero'
ssh 'hadoop1'
ssh 'hadoop2'
2.2.6 安裝JDK
mkdir /usr/Java/  #創(chuàng)建目錄
tar -zxvf jdk1.8.0_211.tar.gz -C /usr/Java/  #解壓JDK包到指定目錄
vi /etc/profile	 #配置環(huán)境變量

#JAVA
export JAVA_HOME=/usr/Java/jdk1.8.0_211
export JRE_HOME=${JAVA_HOME}/jre export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib export PATH=${JAVA_HOME}/bin:$PATH
source /etc/profile  #使配置文件生效
java -version  #查看版本信息 檢測(cè)安裝是否成功

#安裝成功后的返回信息
java version "1.8.0_211"
Java(TM) SE Runtime Environment (build 1.8.0_211-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.211-b12, mixed mode)
2.2.7 安裝MySQL(主節(jié)點(diǎn)安裝即可)
#查看系統(tǒng)中是否已安裝MySQL服務(wù) 如果存在則刪除MySQL及其依賴的包
rpm -qa | grep mysql
yum list installed | grep mysql
wget http://repo.mysql.com/mysql57-community-release-el7-8.noarch.rpm
rpm -ivh mysql57-community-release-el7-8.noarch.rpm
yum install mysql-server #安裝MySQL 如出現(xiàn)提示 一路y到底

安裝完畢后,運(yùn)行MySQL,后在 /var/log/mysqld.log文件中會(huì)自動(dòng)生成一個(gè)隨機(jī)密碼。

service mysqld start  #運(yùn)行MySQL
grep "password" /var/log/mysqld.log  #取得隨機(jī)密碼 用于登錄 MySQL 服務(wù)端

#返回信息如下 “6WjiI.UxuoaF”即為MySQL登陸密碼
2021-01-05T11:04:28.684402Z 1 [Note] A temporary password is generated for root@localhost: 6WjiI.UxuoaF

登錄到 MySQL 服務(wù)端并更改密碼。

/*修改密碼*/
SET PASSWORD = PASSWORD('new password');
ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;
flush privileges;

/*設(shè)置用戶 root 可以在任意 IP 下被訪問(wèn)*/
grant all privileges on *.* to root@"%" identified by "new password";

/*設(shè)置用戶 root 可以在本地被訪問(wèn)*/
grant all privileges on *.* to root@"localhost" identified by "new password";

/*刷新權(quán)限使其生效*/
flush privileges;

2.3 Cloudera Manager的安裝及部署

2.3.1 安裝Cloudera Manager
yum -y install chkconfig python bind-utils psmisc libxslt zlib sqlite cyrus-sasl-plain cyrus-sasl-gssapi fuse portmap fuse-libs redhat-lsb  #安裝第三方依賴包
mkdir -p /opt/cloudera-manager #創(chuàng)建目錄

解壓Cloudera Manager包到/opt/cloudera-manager目錄下。

tar -zvxf cloudera-manager-centos7-cm5.14.0_x86_64.tar.gz  -C  /opt/cloudera-manager/
2.3.2 配置Cloudera Manager

修改agent配置文件。

vi /opt/cloudera-manager/cm-5.14.0/etc/cloudera-scm-agent/config.ini

#配置文件修改如下

# Hostname of the CM server.
server_host=zero

# Port that the CM server is listening on.
server_port=7182

為CM創(chuàng)建一個(gè)專用的普通用戶 cloudera-scm。

useradd --system  #表示創(chuàng)建的是系統(tǒng)用戶
--home=/opt/cloudera-manager/cm-5.14.0/run/cloudera-scm-server  #指定了用戶的主目錄
--no-create-home #表示不再創(chuàng)建用戶的主目錄
--shell=/bin/false  #不作為登陸用戶 
--comment "Cloudera SCM User" 
cloudera-scm  #用戶名

配置數(shù)據(jù)庫(kù)訪問(wèn)權(quán)限,添加用戶。

grant all privileges on  *.*  to 'temp'@'%' identified by 'password' with grant option;
flush privileges;

在主節(jié)點(diǎn)上執(zhí)行CM在MySQL中的初始化腳本。

mv mysql-connector-java.jar /usr/share/java/mysql-connector-java.jar

#進(jìn)入初始化腳本目錄下
cd /opt/cloudera-manager/cm-5.14.0/share/cmf/schema

#運(yùn)行初始化腳步
./scm_prepare_database.sh mysql -h zero -utemp -ppassword --scm-host zero scm scm scm

配置CDH源(注意下載的時(shí)候需要版本對(duì)應(yīng),el5/6/7分別對(duì)應(yīng)CentOS5/6/7。)

#創(chuàng)建目錄
mkdir -p /opt/cloudera/parcel-repo  #主節(jié)點(diǎn)
mkdir -p /opt/cloudera/parcels  #所有節(jié)點(diǎn)

#將parcel文件移動(dòng)到parcel-repo目錄下
mv CDH-5.14.0-1.cdh5.14.0.p0.24-el7.parcel  /opt/cloudera/parcel-repo/

#將json文件移動(dòng)到parcel-repo目錄下
mv manifest.json  /opt/cloudera/parcel-repo/

#重命名校驗(yàn)碼文件并移動(dòng)到parcel-repo目錄下
mv 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

更改目錄所有人

chown -R cloudera-scm:cloudera-scm /opt/cloudera/parcel-repo/  #主節(jié)點(diǎn)
chown -R cloudera-scm:cloudera-scm /opt/cloudera/parcels/  #所有節(jié)點(diǎn)
2.3.3 啟動(dòng)CM進(jìn)程服務(wù)

啟動(dòng)server(主節(jié)點(diǎn))

/opt/cloudera-manager/cm-5.14.0/etc/init.d/cloudera-scm-server start
Starting cloudera-scm-server:                              [  確定  ]  #成功啟動(dòng)后的返回信息

啟動(dòng)agent(所有節(jié)點(diǎn))

/opt/cloudera-manager/cm-5.14.0/etc/init.d/cloudera-scm-agent start
Starting cloudera-scm-agent:                               [  確定  ]  #成功啟動(dòng)后的返回信息
2.3.3 開(kāi)始部署

打開(kāi)http://10.211.55.100:7180/進(jìn)入CM初始界面,賬號(hào)密碼為admin。

登陸進(jìn)入勾選同意條款,點(diǎn)擊繼續(xù),選擇免費(fèi)版本。

繼續(xù)下一步,勾選安裝主機(jī)。

群集安裝默認(rèn)勾選即可,點(diǎn)擊繼續(xù),等待安裝完成。

[

點(diǎn)擊繼續(xù),檢查主機(jī)正確性,參照給出的信息進(jìn)行修復(fù)。

點(diǎn)擊繼續(xù),選擇需要的服務(wù)。

點(diǎn)擊繼續(xù),進(jìn)行角色分配。

配置數(shù)據(jù)庫(kù),使其連接成功。

審核更改頁(yè)面直接默認(rèn),點(diǎn)擊繼續(xù)。

等待部署完成。

點(diǎn)擊繼續(xù),安裝完成。

三、錯(cuò)誤&解決


#錯(cuò)誤
Your password does not satisfy the current policy requirements

#解決方法
vi /etc/my.cnf  #修改配置文件my.cnf
validate_password=off  #關(guān)閉密碼策略設(shè)置validate_password
service mysqld restart  #重啟服務(wù)
#錯(cuò)誤
為CDH群集安裝指定主機(jī)無(wú)法勾選。

#解決方法
/opt/cloudera-manager/cm-5.14.0/etc/init.d/cloudera-scm-server stop  #停止server
/opt/cloudera-manager/cm-5.14.0/etc/init.d/cloudera-scm-agent stop  #停止agent

#刪除/opt/cloudera-manager/cm-5.14.0/lib/cloudera-scm-server-db/data/目錄下內(nèi)容
rm -rf /opt/cloudera-manager/cm-5.14.0/lib/cloudera-scm-server-db/data/*
/*刪除MySQL數(shù)據(jù)庫(kù)中scm數(shù)據(jù)庫(kù)下的hosts表中的數(shù)據(jù)*/
use scm;
delete from HOSTS;
#錯(cuò)誤
MainThread agent ERROR Error, CM server guid updated, expected 7cda865f-a833-40d1-9fa6-761631c74326, received e2678b78-7c5e-4703-91b6-c52e2875988c

#解決方法
rm -rf /opt/cloudera-manager/cm-5.14.0/lib/cloudera-scm-agent/cm_guid
#錯(cuò)誤
ERROR Table 'scm.CM_VERSION' doesn't exist

#解決方法
vi /etc/my.cnf  #修改配置文件my.cnf
lower_case_table_names = 1  #[mysqld]節(jié)點(diǎn)下添加
service mysqld restart  #重啟服務(wù)
#錯(cuò)誤
ERROR WebServerImpl:com.cloudera.server.web.cmf.search.components.SearchRepositoryManager: The server storage directory [/var/lib/cloudera-scm-server] doesn't exist.

#解決方法
mkdir /var/lib/cloudera-scm-server
chown -R cloudera-scm:cloudera-scm /var/lib/cloudera-scm-server    #創(chuàng)建目錄并加上權(quán)限


推薦好課:

從0基礎(chǔ)到前端開(kāi)發(fā)就業(yè)

PHP快速入門(mén)到開(kāi)發(fā)就業(yè)


0 人點(diǎn)贊