0753-6.3.3-如何在Redhat7.6安裝CDH6.3.3

​文檔編寫目的

CDH6.3.3於2020年2月4日發佈,從該版本開始,Cloudera將不再提供CDH免費版,用戶只能通過試用或者購買正式許可證才能夠下載CDH安裝包及使用,參考《0743-Cloudera Enterprise 6.3.3發佈》。這篇文檔主要介紹了在Redhat7.6環境下安裝CDH6.3.3集群的詳細步驟。

操作環境

1.操作系統:RedHat7.6

2.集群環境:CDH6.3.3

3.操作用戶:root


前置準備

2.1 網絡設置

修改網絡IP,並設置為靜態:

<code>vim /etc/sysconfig/network-scripts/ifcfg-ens192/<code>


2.2 yum源配置

1.掛載系統鏡像

準備系統鏡像文件,注意:準備的系統鏡像文件必須與當前系統版本一致

<code>cat /etc/redhat-release/<code>

在/media目錄下創建DVD文件夾,然後掛載,系統鏡像到此目錄

<code>mkdir /media/DVD
mount -o loop /dev/cdrom /media/DVD//<code>

查看鏡像已經掛載成功

<code>df -h/<code>

進入 /etc/yum.repos.d 文件夾,創建os.repo文件並編輯該文件,編輯內容如下:

<code>[osrepo]
name=RedHat7.6
baseurl=file:///media/DVD/
enabled=true
gpgcheck=false/<code>


<code>cd /etc/yum.repos.d/
touch os.repo
vim os.repo/<code>

保存退出。然後執行命令 yum repolist:

在下面2.4節做好交互式腳本後,使用腳本進行同步到集群所有節點:

<code>sh batch_scp.sh node.list /etc/yum.repos.d/os.repo /etc/yum.repos.d//<code>

執行yum repolist:

<code>sh batch_cmd.sh node.list "yum repolist"/<code>


2.3 安裝httpd

1.下載安裝httpd:

<code>yum install -y httpd/<code>


2.修改配置文件

啟動httpd,並設置開機自動啟動,查看httpd狀態:

<code>systemctl start httpd
systemctl enable httpd
systemctl status httpd/<code>


2.修改系統yum源配置

創建/var/www/html/iso目錄,然後將/media/DVD目錄下的所有內容拷貝到/var/www/html/iso目錄

<code>mkdir /var/www/html/iso
cp -r /media/DVD/* /var/www/html/iso//<code>

然後修改/etc/yum.repos.d/os.repo文件如下:

<code>baseurl=http://192.168.0.193/iso//<code>

然後執行yum repolist命令

使用Web訪問iso目錄測試如下目錄

3.配置Cloudera Manager的repo源

將Cloudera Manager的所有rpm包放到 /var/www/html/目錄的新建目錄cm6.3.3下:

在/var/www/html/cm6.3.3目錄下執行命令:createrepo . 生成rpm元數據:

在/etc/yum.repos.d/目錄下新建cm.repo文件,並添加如下內容:

<code>[cm_repo]
name = cm_repo
baseurl = http://192.168.0.193/cm6.3.3/
enable = true
gpgcheck = false/<code>

保存退出。

執行

<code>yum clean all
yum repolist/<code>

驗證安裝JDK

<code>yum -y install openjdk8-8.0+232_9-cloudera/<code>

2.4 準備交互式腳本

上傳腳本到master節點,執行

<code>yum -y install expect /<code>


2.5 主機名設置

1.使用hostnamectl set-hostname 主機名 :(所有節點執行)

<code>hostnamectl set-hostname cdp1.hadoop.com/<code>


2.配置 /etc/hosts

添加主機IP映射

主機IP hostname

<code>192.168.0.193 cdp1.hadoop.com
192.168.0.194 cdp2.hadoop.com
192.168.0.196 cdp3.hadoop.com/<code>

保存退出。

使用腳本分發到所有節點:

重開窗口確認主機名生效


2.6 禁止Selinux

執行如下命令(所有節點):

<code>./batch_cmd.sh node.list "setenforce 0"/<code>

修改配置文件


2.7 關閉防火牆

批量關閉防火牆(所有節點):

使用腳本命令:

<code>./batch_cmd.sh node.list "systemctl stop firewalld"/<code>

設置開機不啟動防火牆:

使用腳本命令:

<code>./batch_cmd.sh node.list "systemctl disable firewalld"/<code>

查看防火牆狀態:

使用腳本命令:

<code>./batch_cmd.sh node.list "systemctl status firewalld"/<code>



2.8 關閉透明大頁面

使用腳本命令批量執行如下操作(所有節點):

<code>sh batch_cmd.sh node.list "echo never > /sys/kernel/mm/transparent_hugepage/defrag"
sh batch_cmd.sh node.list "echo never > /sys/kernel/mm/transparent_hugepage/enabled"/<code>

修改/etc/rc.d/rc.local文件,設置開機自動關閉透明大頁面,添加內容如下:

<code>if test -f /sys/kernel/mm/transparent_hugepage/enabled; then


echo never > /sys/kernel/mm/transparent_hugepage/enabled
fi
if test -f /sys/kernel/mm/transparent_hugepage/defrag; then
echo never > /sys/kernel/mm/transparent_hugepage/defrag
fi/<code>


<code>vim /etc/rc.d/rc.local /<code>

將修改後的文件分發到所有節點,然後修改文件可執行權限

<code>sh batch_scp.sh node.list /etc/rc.d/rc.local /etc/rc.d/
sh batch_cmd.sh node.list "chmod +x /etc/rc.d/rc.local"
sh batch_cmd.sh node.list "ls -l /etc/rc.d/|grep rc.local"/<code>


2.9 設置swappiness

使用腳本批量執行(所有節點)

<code>sh batch_cmd.sh node.list "sysctl vm.swappiness=1"
sh batch_cmd.sh node.list "echo 1 > /proc/sys/vm/swappiness"/<code>

永久修改

<code>vim /etc/sysctl.conf
vm.seappiness = 1/<code>

分發到所有節點

<code>sh batch_scp.sh node.list /etc/sysctl.conf /etc//<code>

查看swappiness的值:

<code>sh batch_cmd.sh node.list "cat /proc/sys/vm/swappiness"/<code>

2.10安裝ntp時間

1.卸載chrony

在Redhat7.x的操作系統上,已經默認的安裝了chrony,我們這裡先卸載chrony,然後安裝ntp。使用ntp來配置各臺機器的時鐘同步。

所有節點卸載chrony

<code>./batch_cmd.sh node.list "yum -y remove chrony"/<code>


2.所有節點下載安裝ntp服務

使用腳本批量執行

<code>./batch_cmd.sh node.list "yum -y install ntp"/<code>


Master節點修改 /etc/ntp.conf文件:

註釋部分內容

添加以下內容:

<code>server 127.127.1.0 
fudge 127.127.1.0 stratum 10/<code>

集群其他節點修改/etc/ntp.conf文件如下:

啟動ntpd服務並設置開機自啟:

<code>sh batch_cmd.sh node.list "systemctl start ntpd"
sh batch_cmd.sh node.list "systemctl enable ntpd"
sh batch_cmd.sh node.list "systemctl status ntpd | grep Active"/<code>

查看同步狀態:

<code>sh batch_cmd.sh node.list "ntpq -p"/<code>

2.11安裝數據庫

1.安裝外部數據庫

<code>yum -y install mariadb mariadb-server/<code>

啟動MariaDB數據庫服務,並設置未開機自啟:

<code>systemctl start mariadb
systemctl enable mariadb
systemctl status mariadb/<code>

配置mariadb,設置密碼為password

<code>/usr/bin/mysql_secure_installation/<code>


2.創建集群所需要的數據庫

<code>create database metastore default character set utf8;
CREATE USER 'hive'@'%' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON metastore.* TO 'hive'@'%';
FLUSH PRIVILEGES;
create database scm default character set utf8;
CREATE USER 'scm'@'%' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON scm.* TO 'scm'@'%';
FLUSH PRIVILEGES;
create database rm default character set utf8;
CREATE USER 'rm'@'%' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON rm.* TO 'rm'@'%';


FLUSH PRIVILEGES;

create database am default character set utf8;
CREATE USER 'am'@'%' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON am.* TO 'am'@'%';
FLUSH PRIVILEGES;
create database hue default character set utf8;
CREATE USER 'hue'@'%' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON hue.* TO 'hue'@'%';
FLUSH PRIVILEGES;
create database oozie default character set utf8;
CREATE USER 'oozie'@'%' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON oozie.* TO 'oozie'@'%';
FLUSH PRIVILEGES;
create database sentry default character set utf8;  
CREATE USER 'sentry'@'%' IDENTIFIED BY 'password';   
GRANT ALL PRIVILEGES ON sentry. * TO 'sentry'@'%';   
FLUSH PRIVILEGES;
create database nav_ms default character set utf8;  
CREATE USER 'nav_ms'@'%' IDENTIFIED BY 'password';   
GRANT ALL PRIVILEGES ON nav_ms. * TO 'nav_ms'@'%';   
FLUSH PRIVILEGES;
create database nav_as default character set utf8;  
CREATE USER 'nav_as'@'%' IDENTIFIED BY 'password';   
GRANT ALL PRIVILEGES ON nav_as. * TO 'nav_as'@'%';   
FLUSH PRIVILEGES;/<code>

3.安裝jdbc驅動

創建/usr/share/java/文件夾,然後將MySQL的JDBC驅動包上傳至該目錄

注意:不是所有節點都需要MySQL驅動,只有節點上有服務需要數據庫時,該節點才需要驅動jar包。

使用軟鏈接的形式去掉驅動jar包的版本號

<code>ln -s mysql-connector-java-5.1.34.jar mysql-connector-java.jar/<code>

集群的部署安裝

3.1 安裝並啟動Cloudera-Manager-Server

在master節點上安裝Cloudera-Manager-Server:

<code>yum -y install cloudera-manager-server/<code>

初始化數據庫:

<code>/opt/cloudera/cm/schema/scm_prepare_database.sh mysql scm scm password/<code>

啟動cloudera-scm-server,並查看7180端口是否被監聽。當出現如下所示7180端口被監聽,則可以打開瀏覽器Web頁面。

<code>/opt/cloudera/cm/schema/scm_prepare_database.sh mysql scm scm password/<code>

3.2 集群安裝嚮導

3.2.1 登錄CM

通過網頁訪問192.168.193:7180

輸入賬戶:admin

密碼:admin登錄CM


3.2.2 選擇60天試用,點擊繼續

點擊繼續

繼續,輸入集群名稱,可以使用默認的“Cluster 1”。


3.2.3 指定安裝主機

指定集群主機機器

根據輸入搜索到指定主機,點擊繼續


3.2.4 設置存儲庫

添加自定義的cm存儲庫URL

設置自定義的parcel存儲庫URL和cm存儲庫URL

添加自定義的Parcel存儲卡URL

點擊繼續


3.2.5 安裝JDK

選擇JDK,點擊繼續


3.2.6 ssh登錄

選擇用戶,並輸入密碼

安裝…

安裝成功

安裝選定parcel…

安裝成功,繼續


3.2.7 主機正確性檢查

主機正確性檢查,確保全部通過後點完成


3.2.8 組件安裝

群集設置,

選擇自己要安裝的組件


3.2.9 數據庫連接測試

測試數據庫連接

審核更改

首次運行命令,啟動集群服務

集群設置配置成功,點擊完成

集群安裝完成,進入Cloudera Manager主頁


總結

1.從安裝方式上來看,CDH6與CDH5變化不大,這也方便了CDH5的用戶可以較為快速的遷移到CDH6,以及適應CDH6的安裝與使用。

2.安裝條件前置沒有任何變化,包括防火牆,Selinux關閉,ntp同步等等

3.在配置Cloudera Manager連接到數據庫時的腳本有所變化。以前是/usr/share/cmf/schema/scm_prepare_database.sh,現在是/opt/cloudera/cm/schema/scm_prepare_database.sh

4.在JDK方面,CDH自帶JDK1.8.0_181,將不再支持JDK1.7。

5.從CDH6.3.3開始已經不再提供免費版,安裝界面只有2個選擇,一個是試用60天,另一個是上傳許可證後繼續安裝。