centos7.4下離線安裝CDH5.7


(一)安裝前的規划

(1)操作系統版本:centos7.4(64bit)

[root@hadoop22 etc]# more /etc/centos-release
CentOS Linux release 7.4.1708 (Core) 

[root@hadoop22 installPackage]# cat /proc/version 
Linux version 3.10.0-693.el7.x86_64 (builder@kbuilder.dev.centos.org) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-16) (GCC) ) #1 SMP Tue Aug 22 21:09:27 UTC 2017

[root@hadoop22 installPackage]# getconf LONG_BIT #確認OS是32bit還是64bit
64

(2)軟件安裝包

類型 安裝包     下載地址
 CM  cloudera-manager-centos7-cm5.7.6_x86_64.tar.gz  http://archive.cloudera.com/cm5/cm/5/
 CDH

3個安裝包:

CDH-5.7.6-1.cdh5.7.6.p0.6-el7.parcel.sha1

CDH-5.7.6-1.cdh5.7.6.p0.6-el7.parcel

manifest.json

 http://archive.cloudera.com/cdh5/parcels/
 JDK  jdk-8u161-linux-x64.tar.gz  http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
 mysql數據庫 mysql-5.7.16-1.el7.x86_64.rpm-bundle.tar   http://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.16-1.el7.x86_64.rpm-bundle.tar
 jdbc  mysql-connector-java-5.1.46.tar.gz  https://dev.mysql.com/downloads/connector/j/3.0.html

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(3)主機規划

本次采用vmware虛擬機安裝,主機規划如下:

IP地址 主機名 CPU 內存 備注
10.141.71.22 hadoop22 2顆 x 1核 16GB 主節點
10.141.71.23 hadoop23 2顆 x 1核 8GB  
10.141.71.24 hadoop24 2顆 x 1核 8GB  
10.141.71.25 hadoop25 2顆 x 1核 8GB  

 

 

 

 

 

 

 

(二)配置服務器

 (1)修改主機名

因為虛擬機是通過vmware的克隆功能拷貝的,4台虛擬機名稱相同,我們需要將其修改為規划的名稱。使用"hostnamectl set-hostname 主機名"即可修改,例如將hadoop22修改為hadoop23: 

hostnamectl set-hostname hadoop23

(2)配置網卡信息

這里我們采用固定IP,執行修改配置文件即可,網卡的配置文件在"/etc/sysconfig/network-script/"下面,以hadoop22這台主機為例,這里使用的網卡為:ifcfg-ens33,將其配置信息修改為如下:

[root@hadoop22 network-scripts]# vim /etc/sysconfig/network-scripts/ifcfg-ens33 

# 修改為下面
TYPE=Ethernet NAME=ens33 UUID=a043a2bb-babb-4864-8e2a-c2c98dbdd8b5 DEVICE=ens33 ONBOOT=yes IPADDR=10.141.71.22 NETMASK=255.255.255.0 GATEWAY=10.141.71.254

其它節點一次如上修改。

(3)添加主機節點映射

修改4台主機的"/etc/hosts"文件即可:

[root@hadoop22 ~]# vim /etc/hosts

127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
10.141.71.22 hadoop22
10.141.71.23 hadoop23
10.141.71.24 hadoop24
10.141.71.25 hadoop25

注意,127.0.0.1和::1不能刪除。

(4)關閉防火牆

[root@hadoop22 ~]# systemctl stop firewalld.service #停止firewall
[root@hadoop22 ~]# systemctl disable firewalld.service #禁止firewall開機啟動,如果不執行,服務器重啟之后firewall會啟動
[root@hadoop22 ~]# firewall-cmd --state  #查看防火牆狀態
not running

(5)關閉selinux

 修改"/etc/selinux/config"文件,將SELINUX值改為disabled。

[root@hadoop22 ~]# vi /etc/selinux/config
SELINUX=disabled

(6)配置ssh無密碼訪問

要達到的效果:主節點到其它節點不需要密碼就能訪問。

(6.1)執行以下命令:

[root@hadoop22 ~]# ssh-keygen -t rsa

此時會生成.ssh文件

[root@hadoop22 ~]# pwd
/root

[root@hadoop22 ~]# ll -a
...
drwx------.  2 root root   80 Apr  6 15:48 .ssh
...

里面有2個文件

[root@hadoop22 .ssh]# ll
total 16
-rw-------. 1 root root 1679 Apr  6 15:46 id_rsa
-rw-r--r--. 1 root root  395 Apr  6 15:46 id_rsa.pub

(6.2)添加公鑰到認證文件中

[root@hadoop22 .ssh]# cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

(6.3)然后把authorized_keys文件scp到其它節點,在這之前,需要在其它節點先創建.ssh文件夾

[root@hadoopxx ~]# mkdir .ssh         # 在23、24、25節點執行

[root@hadoop22 ~]# scp ~/.ssh/authorized_keys root@10.141.71.23:~/.ssh/
[root@hadoop22 ~]# scp ~/.ssh/authorized_keys root@10.141.71.24:~/.ssh/
[root@hadoop22 ~]# scp ~/.ssh/authorized_keys root@10.141.71.25:~/.ssh/

注意,確保.ssh文件夾的權限為700,id_rsa.pub和authorized_keys權限為644,其他權限都會導致SSH出問題。

(7)時間同步配置

CDH集群的時間必須同步,,否則安裝完成會報錯:不良 : 無法找到主機的 NTP 服務,或該服務未響應時鍾偏差請求。如下圖:

(7.1)NTP規划

由於我是在局域網內安裝,不能訪問互聯網,故采用hadoop22的本地時間來做同步。規划如下:

NTP屬性 主機 IP地址
NTP server hadoop22 10.141.71.22
NTP client

hadoop23

hadoop24

hadoop25

10.141.71.23

10.141.71.24

10.141.71.25

 

 

 

 

 

 

(7.2)查看是否安裝了NTP軟件包

[root@hadoop22 ~]# rpm -qa ntp
ntp-4.2.6p5-25.el7.centos.2.x86_64

centos7.4自帶了ntp軟件包,無需再安裝。

(7.3)修改NTP server

修改"/etc/ntp.conf"配置文件,如下:

driftfile /var/lib/ntp/drift

# Permit time synchronization with our time source, but do not
# permit the source to query or modify the service on this system.
restrict default ignore   #新增行1     
restrict 10.141.71.0  mask 255.255.255.0 notrap nomodify  #新增行2:運行71網段的所有IP同步

/var/lib/ntp/drift #新增行3 fudge 127.127.1.0 stratum 10 #新增行4 # Permit all access over the loopback interface. This could # be tightened as well, but to do so would effect some of # the administrative functions. restrict 127.0.0.1 restrict ::1 # Hosts on local network are less restricted. #restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap # Use public servers from the pool.ntp.org project. # Please consider joining the pool (http://www.pool.ntp.org/join.html). server 127.127.1.0 #新增行5:ntp server服務器地址,127.127.1.0是本服務器的IP
server 10.141.71.22 #新增行6:ntp server服務器地址
#broadcast
192.168.1.255 autokey # broadcast server
#broadcastclient # broadcast client

 (7.4)NTP client

去除原來的ntp server,添加新的ntp server

# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
server 10.141.71.22  #新增行1:添加ntp服務器

(7.5)啟動ntp服務

在所有節點上執行如下命令啟動ntp服務

# /bin/systemctl restart ntpd.service #啟動ntp服務
# /bin/systemctl enable ntpd.service #設置開機啟動

查看NTP狀態:

(7.6)查看ntp服務時間同步信息

ntpdc用於查詢ntpd守護進程對其當前狀態和要求的變化。程序可以運行在交互模式下使用命令行參數或控制。ntpdc -np可以看到所使用的時間服務器。

我的ntp服務器信息如下:

我的ntp客戶端信息如下:

(7.7)進行時間同步

在ntp client節點執行ntpdate hadoop22命令,將所有客戶端的時間與服務器同步

說明:NTP服務啟動需要大約五分鍾時間,服務啟動之前,若客戶端同步時間,則會出現錯誤“no server suitable for synchronization found”

(7.8)配置每天進行一次時間同步

在3台ntp client上配置crontab,執行:

[root@hadoop23 ~]# crontab -e

# 添加1行

30 12 * * * /usr/sbin/ntpdate 10.141.71.22 >> /tmp/ntdp.log

該行信息表示,每天12:30執行一次時間同步,並將執行結果輸出到"/tmp/ntpd.log"文件中。

(8)jdk安裝

所有節點安裝jdk,這里現在主節點安裝,然后scp到其它節點。

(8.1)查找已安裝的openjdk

[root@hadoop22 ~]# rpm -qa |grep java
javapackages-tools-3.4.1-11.el7.noarch
java-1.8.0-openjdk-headless-1.8.0.131-11.b12.el7.x86_64
tzdata-java-2017b-1.el7.noarch
python-javapackages-3.4.1-11.el7.noarch
java-1.8.0-openjdk-1.8.0.131-11.b12.el7.x86_64                     #open jdk
java-1.7.0-openjdk-1.7.0.141-2.6.10.5.el7.x86_64                   #open jdk
java-1.7.0-openjdk-headless-1.7.0.141-2.6.10.5.el7.x86_64          #open jdk

(8.2)卸載已安裝的openjdk

# rpm -e --nodeps java-1.7.0-openjdk-headless-1.7.0.141-2.6.10.5.el7.x86_64
# rpm -e --nodeps java-1.8.0-openjdk-1.8.0.131-11.b12.el7.x86_64
# rpm -e --nodeps java-1.7.0-openjdk-1.7.0.141-2.6.10.5.el7.x86_64

(8.3)安裝新的jdk

解壓下載好的jdk,並重新命名(重新命名只是方便簡化路徑)

[root@hadoop22 opt]# tar -xzvf /root/Desktop/installPackage/jdk-8u161-linux-x64.tar.gz
[root@hadoop22 opt]# mv jdk1.8.0_161 jdk1.8 [root@hadoop22 opt]#
ls jdk1.8 rh

(8.4)配置環境變量

root@hadoop22 opt]# vim /etc/profile
#添加以下:
export JAVA_HOME=/opt/jdk1.8
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin

(8.5)使生效

[root@hadoop22 opt]# source /etc/profile

(8.6)測試

[root@hadoop22 opt]# echo $JAVA_HOME
/opt/jdk1.8

(8.7)復制到其它節點:

scp -r /opt/jdk1.8 root@10.141.71.23:/opt
scp -r /opt/jdk1.8 root@10.141.71.24:/opt
scp -r /opt/jdk1.8 root@10.141.71.25:/opt

(8.8)修改環境變量,見8.4

(9)安裝mysql數據庫

mysql數據庫只需要在主節點(hadoop22)安裝即可

(9.1)卸載mariadb

[root@hadoop22 installPackage]# rpm -qa |grep mariadb
mariadb-libs-5.5.56-2.el7.x86_64
[root@hadoop22 installPackage]# rpm -e --nodeps mariadb-libs-5.5.56-2.el7.x86_64

(9.2)解壓mysql

[root@hadoop22 opt]# tar -xvf /root/Desktop/installPackage/mysql-5.7.16-1.el7.x86_64.rpm-bundle.tar 
[root@hadoop22 opt]# ls
jdk1.8 mysql-community-libs-5.7.16-1.el7.x86_64.rpm
mysql-community-client-5.7.16-1.el7.x86_64.rpm mysql-community-libs-compat-5.7.16- 
1.el7.x86_64.rpm
mysql-community-common-5.7.16-1.el7.x86_64.rpm mysql-community-minimal-debuginfo-5.7.16- 
1.el7.x86_64.rpm
mysql-community-devel-5.7.16-1.el7.x86_64.rpm mysql-community-server-5.7.16- 
1.el7.x86_64.rpm
mysql-community-embedded-5.7.16-1.el7.x86_64.rpm mysql-community-server-minimal-5.7.16- 
1.el7.x86_64.rpm
mysql-community-embedded-compat-5.7.16-1.el7.x86_64.rpm mysql-community-test-5.7.16-1.el7.x86_64.rpm
mysql-community-embedded-devel-5.7.16-1.el7.x86_64.rpm rh

(9.3)只需要按順序安裝4個包即可

[root@hadoop22 opt]# rpm -ivh mysql-community-common-5.7.16-1.el7.x86_64.rpm 
[root@hadoop22 opt]# rpm -ivh mysql-community-libs-5.7.16-1.el7.x86_64.rpm 
[root@hadoop22 opt]# rpm -ivh mysql-community-client-5.7.16-1.el7.x86_64.rpm 
[root@hadoop22 opt]# rpm -ivh mysql-community-server-5.7.16-1.el7.x86_64.rpm

(10.4)mysql起停

# 查看mysql是否啟動
service mysqld status

# 啟動mysql
service mysqld start

# 停止mysql
service mysqld stop

# 重啟mysql
service mysqld restart

(10.5)設定開機自啟動

[root@hadoop22 opt]# vim /etc/rc.local 
添加 service mysqld start

(9.6)確認mysql初始密碼

[root@hadoop22 log]# more /var/log/mysqld.log |grep password
2018-04-03T11:50:22.636798Z 1 [Note] A temporary password is generated for root@localhost: 
xMsoLF;oa7h=

(9.7)登錄mysql

[root@hadoop22 log]# mysql -p
Enter password: 
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.16

(9.8)修改密碼(大寫+小寫+特殊字符)

mysql> set password = password("Mysql_123456");
Query OK, 0 rows affected, 1 warning (0.00 sec)

(9.9)使用新密碼重新登陸就好了

[root@hadoop22 log]# mysql -uroot -pMysql_123456

(9.10)創建3個數據庫,並授權

create database hive DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
create database sentry DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
create database amon DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

grant all privileges on *.* to 'root'@'hadoop22' identified by 'Mysql_123456' with grant option;
flush privileges;

 

(三)安裝CM

(1)在主節點解壓cloudera manager

cloudera manager默認安裝在"/opt"目錄下,進入"/opt"目錄,解壓安裝包,生成2個文件夾cloudera和cm-5.7.6

[root@hadoop22 ~]# cd /opt
[root@hadoop22 opt]# tar -xzvf /root/Desktop/installPackage/cloudera-manager-centos7-cm5.7.6_x86_64.tar.gz 

 

(2) 在主節點為cloudera manager建立數據庫

首先解壓jdbc包:

# tar -xzvf mysql-connector-java-5.1.46

 解壓后的文件如下:

其中"mysql-connector-java-5.1.46-bin.jar"是我們需要的,將其拷貝到"/opt/cm-5.7.6/share/cmf/lib"路徑下。

在主節點初始化CM的數據庫:

/opt/cm-5.7.6/share/cmf/schema/scm_prepare_database.sh mysql -hhadoop22 -uroot -pMysql_123456 --scm-host hadoop22 scm scm Scm_123456

說明:這個腳本就是用來創建和配置CMS需要的數據庫的腳本。各參數是指:
mysql:數據庫用的是mysql,如果安裝過程中用的oracle,那么該參數就應該改為oracle。
-hhadoop22:數據庫建立在hadoop22主機上面。也就是主節點上面。注意主機前面有個“h”
-uroot:root身份運行mysql。-Mysql_123456:mysql的root密碼是Mysql_123456。
--scm-host hadoop22:CMS的主機,一般是和mysql安裝的主機是在同一個主機上。
最后三個參數是:數據庫名,數據庫用戶名,數據庫密碼。

(3)agent配置

修改主節點的agent配置文件,僅需修改server_host參數即可:

[root@hadoop22 ~]# vim /opt/cm-5.7.6/etc/cloudera-scm-agent/config.ini

server_host=hadoop22

(4)將CM拷貝到其它節點

scp -r /opt/cm-5.7.6/ root@hadoop23:/opt/
scp -r /opt/cm-5.7.6/ root@hadoop24:/opt/
scp -r /opt/cm-5.7.6/ root@hadoop25:/opt/

 (5)再所有節點創建cloudera-scm用戶

useradd --system --home=/opt/cm-5.7.6/run/cloudera-scm-server --no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm

(6)准備parcels,用於安裝CDH5

將CDH5相關的包放到主節點的"/opt/cloudera/parcel-repo"路徑下,parcels相關文件有以下3個

[root@hadoop22 parcel-repo]# cd /opt/cloudera/parcel-repo/
[root@hadoop22 parcel-repo]# ll
-rw-r--r--. 1 root root 1448796525 Apr 5 18:40 CDH-5.7.6-1.cdh5.7.6.p0.6-el7.parcel
-rw-r--r--. 1 root root 41         Apr 5 18:37 CDH-5.7.6-1.cdh5.7.6.p0.6-el7.parcel.sha1
-rw-r--r--. 1 root root 51240      Apr 5 18:38 manifest.json

重命名"CDH-5.7.6-1.cdh5.7.6.p0.6-el7.parcel.sha1"為"CDH-5.7.6-1.cdh5.7.6.p0.6-el7.parcel.sha",如果不修改,系統會重新下載"CDH-5.7.6-1.cdh5.7.6.p0.6-el7.parcel"文件。

 (7)啟動cm server

啟動腳本使用方法如下:

[root@hadoop22 ~]# /opt/cm-5.7.6/etc/init.d/cloudera-scm-server 
Usage: cloudera-scm-server {start|force_next_start|stop|restart|status|condrestart}

 (7.1)在主節點啟動cm server

[root@hadoop22 ~]# /opt/cm-5.7.6/etc/init.d/cloudera-scm-server start

(7.2)在所有節點(包括主節點)啟動cm agent

[root@hadoop23 ~]# /opt/cm-5.7.6/etc/init.d/cloudera-scm-agent start

(7.3)查看server和agent的狀態

在主節點,server和agent都在運行:

其它節點,server不運行,只有agent運行:

(8)開始安裝CM

(8.1)登陸http://10.141.71.22:7180

 

選擇免費版本,繼續

 

 選擇主機,全部選上,繼續

 選擇安裝方式,我們使用Parcesl,繼續

 

漫長的等待

 

自定義安裝,僅安裝zookeeoer即可,其他的服務待需要的時候在進行安裝。

最終安裝結果如圖所示:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM