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

  • 2020 年 2 月 24 日
  • 筆記

作者:段自強

文檔編寫目的

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,並設置為靜態:

vim /etc/sysconfig/network-scripts/ifcfg-ens192  

2.2 yum源配置

1.掛載系統鏡像

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

cat /etc/redhat-release  

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

mkdir /media/DVD  mount -o loop /dev/cdrom /media/DVD/  

查看鏡像已經掛載成功

df -h  

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

[osrepo]  name=RedHat7.6  baseurl=file:///media/DVD/  enabled=true  gpgcheck=false  
cd /etc/yum.repos.d/  touch os.repo  vim os.repo  

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

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

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

執行yum repolist:

sh batch_cmd.sh node.list "yum repolist"  

2.3 安裝httpd

1.下載安裝httpd:

yum install -y httpd  

2.修改配置文件

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

systemctl start httpd  systemctl enable httpd  systemctl status httpd  

2.修改系統yum源配置

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

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

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

baseurl=http://192.168.0.193/iso/  

然後執行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文件,並添加如下內容:

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

保存退出。

執行

yum clean all  yum repolist  

驗證安裝JDK

yum -y install openjdk8-8.0+232_9-cloudera  

2.4 準備互動式腳本

上傳腳本到master節點,執行

yum -y install expect  

2.5 主機名設置

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

hostnamectl set-hostname cdp1.hadoop.com  

2.配置 /etc/hosts

添加主機IP映射

主機IP hostname

192.168.0.193 cdp1.hadoop.com  192.168.0.194 cdp2.hadoop.com  192.168.0.196 cdp3.hadoop.com  

保存退出。

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

重開窗口確認主機名生效

2.6 禁止Selinux

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

./batch_cmd.sh node.list "setenforce 0"  

修改配置文件

2.7 關閉防火牆

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

使用腳本命令:

./batch_cmd.sh node.list "systemctl stop firewalld"  

設置開機不啟動防火牆:

使用腳本命令:

./batch_cmd.sh node.list "systemctl disable firewalld"  

查看防火牆狀態:

使用腳本命令:

./batch_cmd.sh node.list "systemctl status firewalld"  

2.8 關閉透明大頁面

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

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"  

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

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  
vim /etc/rc.d/rc.local  

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

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"  

2.9 設置swappiness

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

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

永久修改

vim /etc/sysctl.conf  vm.seappiness = 1  

分發到所有節點

sh batch_scp.sh node.list /etc/sysctl.conf /etc/  

查看swappiness的值:

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

2.10安裝ntp時間

1.卸載chrony

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

所有節點卸載chrony

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

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

使用腳本批量執行

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

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

注釋部分內容

添加以下內容:

server 127.127.1.0  fudge 127.127.1.0 stratum 10  

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

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

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"  

查看同步狀態:

sh batch_cmd.sh node.list "ntpq -p"  

2.11安裝資料庫

1.安裝外部資料庫

yum -y install mariadb mariadb-server  

啟動MariaDB資料庫服務,並設置未開機自啟:

systemctl start mariadb  systemctl enable mariadb  systemctl status mariadb  

配置mariadb,設置密碼為password

/usr/bin/mysql_secure_installation  

2.創建集群所需要的資料庫

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;  

3.安裝jdbc驅動

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

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

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

ln -s mysql-connector-java-5.1.34.jar mysql-connector-java.jar  

集群的部署安裝

3.1 安裝並啟動Cloudera-Manager-Server

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

yum -y install cloudera-manager-server  

初始化資料庫:

/opt/cloudera/cm/schema/scm_prepare_database.sh mysql scm scm password  

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

/opt/cloudera/cm/schema/scm_prepare_database.sh mysql scm scm password  

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天,另一個是上傳許可證後繼續安裝。