大數據集群之Centos7.6系統調優


                     大數據集群之Centos7.6系統調優

 

一、設置主機網絡與host文件配置

1、修改主機名:

[root@hadoop-C12-120 ~]# hostnamectl set-hostname --static hadoop-C12-120
[root@hadoop-C12-120 ~]# hostnamectl set-hostname hadoop-C12-120         
[root@hadoop-C12-120 ~]# hostname
hadoop-c12-120
#注意:設置hostname時,最好全是小寫,不然會有提示安裝kerberos后hdfs啟動不了 hostname設置的名稱用小寫字母

2、更新到最新系統:

[root@hadoop-C12-122 ~]# yum -y update

3、網卡ensxxx改為eth0:

  先用ip a查看網卡名稱信息:

  

  根據查看到信息更新腳本並執行:

vim ens192_eht0.sh 
sed -i 's/"ens192"/"eth0"/g' /etc/sysconfig/network-scripts/ifcfg-ens192
mv /etc/sysconfig/network-scripts/ifcfg-ens192 /etc/sysconfig/network-scripts/ifcfg-eth0
sed -i 's/"crashkernel=auto rhgb quiet"/"crashkernel=auto  rd.lvm.lv=centos\/root rd.lvm.lv=centos\/swap rhgb quiet "net.ifnames=0 biosdevname=0""/g' /etc/default/grub
grub2-mkconfig -o /boot/grub2/grub.cfg

  查看/etc/sysconfig/network-scripts/ifcfg-ens192下的內容是否有"",如果沒有將腳本中的""也要同時修改

  

4、添加集群各節點主機名稱映射關系

[root@hadoop-c12-120 ~]# vim /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

172.20.102.120  hadoop-c12-120
172.20.102.121  hadoop-c12-121
172.20.102.122  hadoop-c12-122
172.20.102.123  hadoop-c12-123

 5、安裝所需要的基本服務:

[root@hadoop-C12-120 ~]# yum -y install vim wget lrzsz unzip

 

二、關閉防火牆和selinux

1、關閉防火牆

[root@Hexindai-C12-120 ~]# systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
   Active: inactive (dead)
     Docs: man:firewalld(1)

Jun 29 23:11:40 localhost.localdomain systemd[1]: Starting firewalld - dynamic firewall daemon...
Jun 30 07:11:27 localhost.localdomain systemd[1]: Started firewalld - dynamic firewall daemon.
Jun 30 01:43:07 Hexindai-C12-120 systemd[1]: Stopping firewalld - dynamic firewall daemon...
Jun 30 01:43:08 Hexindai-C12-120 systemd[1]: Stopped firewalld - dynamic firewall daemon.
systemctl status firewalld #查看防火牆狀態
systemctl stop firewalld  #關閉防火牆
systemctl disable firewalld #禁止防火牆開機啟動

2、關閉Selinux

[root@hadoop-C12-120 ~]# sed -i s'#SELINUX=enforcing#SELINUX=disabled#' /etc/selinux/config

3、關閉DNS PTR反向查詢(SSHD服務優化)

UseDNS 選項打開狀態下,當客戶端試圖登錄SSH服務器時,服務器端先根據客戶端的IP地址進行DNS PTR反向查詢出客戶端的主機名,然后根據查詢出的客戶端主機名進行DNS正向A記錄查詢,驗證與其原始IP地址是否一致,這是防止客戶端欺騙的一種措施,但一般我們的是動態IP不會有PTR記錄,打開這個選項不過是在白白浪費時間而已,不如將其關閉。
    
  具體操作如下:
[root@Hexindai-C12-120 ~]# grep UseDNS /etc/ssh/sshd_config
#UseDNS yes
[root@Hexindai-C12-120 ~]# sed -i 's@#UseDNS yes@UseDNS no@g' /etc/ssh/sshd_config
[root@Hexindai-C12-120 ~]# grep UseDNS /etc/ssh/sshd_config
UseDNS no
[root@Hexindai-C12-120 ~]# 
sed -i 's@#UseDNS yes@UseDNS no@g' /etc/ssh/sshd_config

4、關閉GSSAPI身份驗證(SSHD服務優化)

GSSAPIAuthentication  當這個參數開啟( GSSAPIAuthentication  yes )的時候,通過SSH登陸服務器時候會有些會很慢!這是由於服務器端啟用了GSSAPI。登陸的時候客戶端需要對服務器端的IP地址進行反解析,如果服務器的IP地址沒有配置PTR記錄,那么就容易在這里卡住了。
  
  具體操作如下:
[root@Hexindai-C12-120 ~]# grep GSSAPIAuthentication /etc/ssh/sshd_config
GSSAPIAuthentication yes
[root@Hexindai-C12-120 ~]# sed -i 's@^GSSAPIAuthentication yes@GSSAPIAuthentication no@g' /etc/ssh/sshd_config
[root@Hexindai-C12-120 ~]# grep GSSAPIAuthentication /etc/ssh/sshd_config
GSSAPIAuthentication no
[root@Hexindai-C12-120 ~]# systemctl restart sshd
[root@Hexindai-C12-120 ~]# 
sed -i 's@^GSSAPIAuthentication yes@GSSAPIAuthentication no@g' /etc/ssh/sshd_config

5、檢查DNS配置

[root@hadoop-C12-120 ~]# hostname --fqdn
hadoop-C12-120
[root@hadoop-C12-120 ~]# 

三、關閉透明大頁(重啟生效)

一.透明大頁(Transparent Huge Pages,簡稱THP)
    在Linux6.x之后的平台,在安裝Oracle數據庫的時候都建議關閉透明大頁。Linux下的大頁分為兩種類型:標准大頁(Huge Pages)和透明大頁(Transparent Huge Pages)。
1>.標准大頁(Huge Pages)
    是從Linux Kernel 2.6后被引入的。目的是使用更大的內存頁面(memory page size) 以適應越來越大的系統內存,讓操作系統可以支持現代硬件架構的大頁面容量功能。
2>.透明大頁(Transparent Huge Pages)縮寫為THP,
    這個是RHEL 6開始引入的一個功能。

3>.HP和THP的區別
    這兩者的區別在於大頁的分配機制,標准大頁管理是預分配的方式,而透明大頁管理則是動態分配的方式。目前透明大頁與傳統大頁混合使用會出現一些問題,導致性能問題和系統重啟。
    ORACLE官方不建議在使用RedHat 6, OEL 6, SLES 11 and UEK2 kernels 時開啟透明大頁(THP),因為透明大頁存在一些問題:
        
      3.1>.在RAC環境下 透明大頁(Transparent HugePages )會導致異常節點重啟和性能問題;
        
      3.2>.在單機環境中,透明大頁(Transparent HugePages ) 也會導致一些異常的性能問題;
      3.3>.THP是一個使用Huge Pages自動化的抽象層。它會引起cpu占用率增大,需要將其關閉。
什么是透明大頁
 Linux7 默認情況下 是開啟透明大頁功能的。默認情況下,狀態為always,需要調整為never。

[root@Hexindai-C12-120 ~]# uname -r
3.10.0-957.21.3.el7.x86_64
[root@Hexindai-C12-120 ~]# cat /etc/redhat-release 
CentOS Linux release 7.6.1810 (Core) 
[root@Hexindai-C12-120 ~]# cat /sys/kernel/mm/transparent_hugepage/enabled 
[always] madvise never
[root@Hexindai-C12-120 ~]#  cat /etc/default/grub  | grep GRUB_CMDLINE_LINUX  #在原有的配置上添加:transparent_hugepage=never
GRUB_CMDLINE_LINUX="crashkernel=auto  rd.lvm.lv=centos\/root rd.lvm.lv=centos\/swap rhgb quiet "net.ifnames=0 biosdevname=0" transparent_hugepage=never"
[root@Hexindai-C12-120 ~]#
[root@Hexindai-C12-120 ~]# grub2-mkconfig -o /boot/grub2/grub.cfg
[root@Hexindai-C12-120 ~]# reboot  #重啟操作系統,配置生效!
[root@Hexindai-C12-120 ~]# cat /sys/kernel/mm/transparent_hugepage/enabled    #重啟后,查看結果
always madvise [never]
關閉透明大頁,方法一,僅供參考
據Cloudera和Hortonworks的專家介紹,THP壓縮會降低Hadoop的性能。所以,禁用透明大頁是一個很好的做法。具體操作如下:  
[root@hadoop-C12-120 ~]# vim /etc/rc.d/rc.local
[root@hadoop-C12-120 ~]# tail -8 /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
[root@hadoop-C12-120 ~]#  chmod +x /etc/rc.d/rc.local 
[root@hadoop-C12-120 ~]# ll /etc/rc.d/rc.local        
-rwxr-xr-x. 1 root root 732 Jun 30 01:44 /etc/rc.d/rc.local

注意:如果沒有配置的話,我們在安裝CDH服務也能成功安裝,可能會出現如下圖所示的提示信息:

 

四、修改Linux內核參數

[root@hadoop-C12-120 ~]# tail -8 /etc/sysctl.conf #編輯內核參數文件,對Linux內核參數的修改如下
#Add by wangruopeng
fs.aio-max-nr=1048576
net.core.rmem_default=262144
net.core.wmem_default=262144
net.core.rmem_max=16777216
net.core.wmem_max=16777216
net.ipv4.tcp_rmem=4096    262144 16777216
net.ipv4.tcp_wmem=4096  262144 16777216
[root@hadoop-C12-120 ~]# 
[root@hadoop-C12-120 ~]# sysctl -p             #使用該命令使配置生效
fs.aio-max-nr = 1048576                   #最大並發I/O請求數
net.core.rmem_default = 262144            #操作系統接收緩沖區的默認大小
net.core.wmem_default = 262144            #操作系統發送緩沖區的默認大小
net.core.rmem_max = 16777216            #操作系統接收緩沖區最大值
net.core.wmem_max = 16777216            #操作系統發送緩沖區最大值
net.ipv4.tcp_rmem = 4096    262144 16777216    #接收窗口尺寸的最小,默認,最大值
net.ipv4.tcp_wmem = 4096  262144 16777216      #發送窗口尺寸的最小,默認,最大值

五、增加文件限制

為了避免集群中的任何文件描述符錯誤,需要增加單個用戶或進程一次可以打開的文件數量的限制。可以使用以下命令檢查當前限制。

[root@hadoop-C12-120 ~]# tail -7 /etc/security/limits.conf
* hard nofile 1048576
* soft nproc 1048576
* hard nproc 1048576
* soft memlock unlimited
* hard memlock unlimited 

# End of file
[root@hadoop-C12-120 ~]# tail -3 /etc/security/limits.d/20-nproc.conf

*          soft    nproc     1048576
root       soft    nproc     unlimited
[root@hadoop-C12-120 ~]# 

以上參數輸出解讀:
  第一列表示用戶和組
    如果是"*",則表示所有用戶或組進行限制。

  第二列表示軟限制還是硬限制,
    當進程使用的資源超過軟限制時系統日志會有警告產生,當進程使用的資源達到硬限制時,則無法繼續使用更多的限制,甚至有的程序會直接拋出異常,比如MySQL程序。

  第三列表示限制的資源類型
    如nofile表示打開文件描述符的最大數目,memlock表示最大鎖定內存地址空間(KB),nporc表示最大數量的進程,as表示地址空間的限制(KB),cpu表示最大CPU時間(分鍾)等等,這些在"/etc/security/limits.conf"配置文件有相應的說明。

  第四列表示限制的最大值
    也就是我們針對某個參數配置的具體數值。比如"* soft nofile 1048576",表示任何用戶對於文件句柄數的軟限制最大打開文件描述符是1048576。

溫馨提示:
  "/etc/security/limits.conf" 配置文件可限制文件打開數,系統進程等資源,在該文件配置中寫的最大用戶進程數是受"/etc/security/limits.d/90-nproc.conf"配置上限影響的。
  一般系統普通用戶進程數滿了都是修改/etc/security/limits.d/90-nproc.conf文件。

六、禁用Swap

理想情況下,服務器都不應該swap,尤其是DataNodes。
可以使用一下命令檢查服務器上的swap狀態。
[root@hadoop-C12-120 ~]# swapon -s
Filename                                Type            Size    Used    Priority
/dev/sda3                               partition       20971516        0       -2
[root@hadoop-C12-120 ~]# 
[root@hadoop-C12-120 ~]# free -m
              total        used        free      shared  buff/cache   available
Mem:          15884         229       15426           8         228       15348
Swap:         20479           0       20479
[root@hadoop-C12-120 ~]# 
可以使用以下命令在這些服務器上完全禁用該功能。
[root@hadoop-C12-120 ~]# swapoff -a
[root@hadoop-C12-120 ~]# swapon -s
[root@hadoop-C12-120 ~]# free -m   
              total        used        free      shared  buff/cache   available
Mem:          15884         213       15442           8         228       15364
Swap:             0           0           0
[root@hadoop-C12-120 ~]# 
默認情況下,大多數Linux操作系統的swappiness被設置為60.如果swappiness設置為0,除非內存不足,Linux將避免使用磁盤,而設置100表示操作系統立即將程序切換到磁盤。我們知道,這是為60意味着從內存使用量達到操作系統分配的內存的一半左右的時間開始,操作系統會相當頻繁地使用磁盤上的交換文件。例如,如果將swappiness調低到10,則只有當RAM占用率達到90%左右時,操作系統才會使用磁盤上的交換文件。
[root@hadoop-C12-120 ~]# cat /proc/sys/vm/swappiness 
30
[root@hadoop-C12-120 ~]# 
Linux管理員可以將以下設置添加到"/etc/sysctl.conf"文件中來更改系統的swappiness值:
[root@hadoop-C12-120 ~]# tail -1 /etc/sysctl.conf  
vm.swappiness = 1
管理員必須重新啟動服務器或者執行"sysctl -p"指定才能使新的swappiness設置生效。對於將swappiness值設置多低,沒有特別明確的強制規定。Cloudera專家建議將其設置為1。如果你的服務器是256G的內存的且你確定你的程序永遠不必發生OOM,可以將改值設置為0.
[root@hadoop-C12-120 ~]# sysctl -q vm.swappiness  
vm.swappiness = 1

七、禁用IPV6

Pv6被認為是IPv4的替代產品,它用來解決現有IPv4地址空間即將耗盡的問題。但我們的大數據集群一般都在內網運行。壓根就用不到IPv6的地址,因此開始IPv6功能對系統占用的資源是浪費的,因此我們可以考慮將其禁用。

  可以通過編輯"/etc/sysctl.conf"文件並在文件末尾加以下來禁用IPv6:
    [root@hadoop-C12-120 ~]# tail -1 /etc/sysctl.conf 
    net.ipv6.conf.all.disable_ipv6 = 1
    [root@hadoop-C12-120 ~]# 
有的網友說除了上面一行,還得添加"net.ipv6.conf.default.disable_ipv6 = 1""net.ipv6.conf.lo.disable_ipv6 = 1"兩個參數,其實這兩個參數壓根就不需要往上寫,我們"net.ipv6.conf.all.disable_ipv6"就以及表示禁用當前服務器所有的網卡的ipv6功能啦~

八、磁盤設置

1、掛載磁盤

確保在掛載所有磁盤時使用noatime時間以及掛載所有目錄時使用nodir時間。這樣,可以避免在對Linux文件系統中的文件或目錄進行讀取操作時的不必要寫入操作,從而提高集群性能。

[root@hadoop-C12-120 ~]# egrep -v "^#|^$" /etc/fstab 
UUID=3ebc3d68-a290-426e-97e1-859471fe42bd /                       xfs     defaults,noatime,nodiratime          0 0
UUID=e94562c0-673c-4a2d-854b-3763f51a69fd /boot                   xfs     defaults        0 0
UUID=9c4f0a66-2c24-4f28-a855-204eb1740054 /export                 xfs     defaults,noatime,nodiratime          0 0
UUID=cc6f063d-0edb-4365-a051-37eeb0079363 swap                    swap    defaults        0 0
[root@hadoop-C12-120 ~]# 

2、測試磁盤I/O速度

[root@hadoop-C12-120 ~]# hdparm -t /dev/sda5

/dev/sda5:
 Timing buffered disk reads: 5432 MB in  3.00 seconds = 1810.50 MB/sec
[root@hadoop-C12-120 ~]# 
#如果你沒有看到70MB以上的速度,這意味着有一個潛在的問題存在,即你的磁盤性能讀取很低!可能會對服務造成影響!(需要檢查磁盤是否有故障)

3、檢查服務器的BIOS設置

通過確保不啟用磁盤驅動IDE仿真等功能來保證服務器BIOS為最佳性能配置。存儲和系統管理員一般會關注這個配置。

九、更換默認的yum源

1、創建備份目錄

[root@Hexindai-C12-120 ~]# ll /etc/yum.repos.d/
total 32
-rw-r--r--. 1 root root 1664 Nov 23  2018 CentOS-Base.repo
-rw-r--r--. 1 root root 1309 Nov 23  2018 CentOS-CR.repo
-rw-r--r--. 1 root root  649 Nov 23  2018 CentOS-Debuginfo.repo
-rw-r--r--. 1 root root  314 Nov 23  2018 CentOS-fasttrack.repo
-rw-r--r--. 1 root root  630 Nov 23  2018 CentOS-Media.repo
-rw-r--r--. 1 root root 1331 Nov 23  2018 CentOS-Sources.repo
-rw-r--r--. 1 root root 5701 Nov 23  2018 CentOS-Vault.repo
[root@Hexindai-C12-120 ~]# mkdir -p /etc/yum.repos.d/{default,back}
[root@Hexindai-C12-120 ~]# ll /etc/yum.repos.d/                    
total 32
drwxr-xr-x. 2 root root    6 Jul  1 01:39 back
-rw-r--r--. 1 root root 1664 Nov 23  2018 CentOS-Base.repo
-rw-r--r--. 1 root root 1309 Nov 23  2018 CentOS-CR.repo
-rw-r--r--. 1 root root  649 Nov 23  2018 CentOS-Debuginfo.repo
-rw-r--r--. 1 root root  314 Nov 23  2018 CentOS-fasttrack.repo
-rw-r--r--. 1 root root  630 Nov 23  2018 CentOS-Media.repo
-rw-r--r--. 1 root root 1331 Nov 23  2018 CentOS-Sources.repo
-rw-r--r--. 1 root root 5701 Nov 23  2018 CentOS-Vault.repo
drwxr-xr-x. 2 root root    6 Jul  1 01:39 default
[root@Hexindai-C12-120 ~]# 
mkdir -p /etc/yum.repos.d/{default,back}

2、備份所有默認的配置文件

[root@Hexindai-C12-120 ~]# ll /etc/yum.repos.d/
total 32
drwxr-xr-x. 2 root root    6 Jul  1 01:39 back
-rw-r--r--. 1 root root 1664 Nov 23  2018 CentOS-Base.repo
-rw-r--r--. 1 root root 1309 Nov 23  2018 CentOS-CR.repo
-rw-r--r--. 1 root root  649 Nov 23  2018 CentOS-Debuginfo.repo
-rw-r--r--. 1 root root  314 Nov 23  2018 CentOS-fasttrack.repo
-rw-r--r--. 1 root root  630 Nov 23  2018 CentOS-Media.repo
-rw-r--r--. 1 root root 1331 Nov 23  2018 CentOS-Sources.repo
-rw-r--r--. 1 root root 5701 Nov 23  2018 CentOS-Vault.repo
drwxr-xr-x. 2 root root    6 Jul  1 01:39 default
[root@Hexindai-C12-120 ~]# mv /etc/yum.repos.d/*repo /etc/yum.repos.d/default/
[root@Hexindai-C12-120 ~]# ll /etc/yum.repos.d/                               
total 0
drwxr-xr-x. 2 root root   6 Jul  1 01:39 back
drwxr-xr-x. 2 root root 187 Jul  1 01:41 default
[root@Hexindai-C12-120 ~]#
mv /etc/yum.repos.d/*repo /etc/yum.repos.d/default/

3、下載阿里的yum源

[root@Hexindai-C12-120 ~]# ll /etc/yum.repos.d/                               
total 0
drwxr-xr-x. 2 root root   6 Jul  1 01:39 back
drwxr-xr-x. 2 root root 187 Jul  1 01:41 default
[root@Hexindai-C12-120 ~]# curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  2523  100  2523    0     0  25877      0 --:--:-- --:--:-- --:--:-- 26010
[root@Hexindai-C12-120 ~]# ll /etc/yum.repos.d/
total 4
drwxr-xr-x. 2 root root    6 Jul  1 01:39 back
-rw-r--r--. 1 root root 2523 Jul  1 01:41 CentOS-Base.repo
drwxr-xr-x. 2 root root  187 Jul  1 01:41 default
[root@Hexindai-C12-120 ~]#
[root@hadoop-C12-120 ~]# curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

4、安裝第三方軟件源REPO

[root@Hexindai-C12-120 ~]# ll /etc/yum.repos.d/
total 4
drwxr-xr-x. 2 root root    6 Jul  1 01:39 back
-rw-r--r--. 1 root root 2523 Jul  1 01:41 CentOS-Base.repo
drwxr-xr-x. 2 root root  187 Jul  1 01:41 default
[root@Hexindai-C12-120 ~]# yum -y install epel-release
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.aliyun.com
 * extras: mirrors.aliyun.com
 * updates: mirrors.aliyun.com
base                                                                                                                                                                          | 3.6 kB  00:00:00     
extras                                                                                                                                                                        | 3.4 kB  00:00:00     
updates                                                                                                                                                                       | 3.4 kB  00:00:00     
Resolving Dependencies
--> Running transaction check
---> Package epel-release.noarch 0:7-11 will be installed
--> Finished Dependency Resolution

Dependencies Resolved


=====================================================================================================================================================================================================
 Package                                             Arch                                          Version                                       Repository                                     Size
=====================================================================================================================================================================================================
Installing:
 epel-release                                        noarch                                        7-11                                          extras                                         15 k

Transaction Summary
=====================================================================================================================================================================================================
Install  1 Package

Total download size: 15 k
Installed size: 24 k
Downloading packages:
epel-release-7-11.noarch.rpm                                                                                                                                                  |  15 kB  00:00:00     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : epel-release-7-11.noarch                                                                                                                                                          1/1 
  Verifying  : epel-release-7-11.noarch                                                                                                                                                          1/1 

Installed:
  epel-release.noarch 0:7-11                                                                                                                                                                         

Complete!

[root@Hexindai-C12-120 ~]# ll /etc/yum.repos.d/       
total 12
drwxr-xr-x. 2 root root    6 Jul  1 01:39 back
-rw-r--r--. 1 root root 2523 Jul  1 01:41 CentOS-Base.repo
drwxr-xr-x. 2 root root  187 Jul  1 01:41 default
-rw-r--r--. 1 root root  951 Oct  2  2017 epel.repo
-rw-r--r--. 1 root root 1050 Oct  2  2017 epel-testing.repo
[root@Hexindai-C12-120 ~]# 
[root@hadoop-C12-120 ~]# yum -y install epel-release

5、生成緩存(該步可選,若網絡較卡可能會需要5-10分鍾左右)

[root@Hexindai-C12-120 ~]# yum makecache
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
epel/x86_64/metalink                                                                                                                                                          | 6.5 kB  00:00:00     
 * base: mirrors.aliyun.com
 * epel: mirrors.yun-idc.com
 * extras: mirrors.aliyun.com
 * updates: mirrors.aliyun.com
base                                                                                                                                                                          | 3.6 kB  00:00:00     
epel                                                                                                                                                                          | 5.3 kB  00:00:00     
extras                                                                                                                                                                        | 3.4 kB  00:00:00     
updates                                                                                                                                                                       | 3.4 kB  00:00:00     
(1/15): epel/x86_64/group_gz                                                                                                                                                  |  88 kB  00:00:00     
(2/15): base/7/x86_64/other_db                                                                                                                                                | 2.6 MB  00:00:00     
(3/15): base/7/x86_64/filelists_db                                                                                                                                            | 7.1 MB  00:00:02     
(4/15): epel/x86_64/filelists_db                                                                                                                                              |  11 MB  00:00:01     
(5/15): epel/x86_64/updateinfo                                                                                                                                                | 978 kB  00:00:00     
(6/15): epel/x86_64/prestodelta                                                                                                                                               |  717 B  00:00:00     
(7/15): epel/x86_64/primary_db                                                                                                                                                | 6.8 MB  00:00:00     
(8/15): epel/x86_64/other_db                                                                                                                                                  | 3.2 MB  00:00:00     
(9/15): epel/x86_64/updateinfo_zck                                                                                                                                            | 1.4 MB  00:00:00     
(10/15): extras/7/x86_64/filelists_db                                                                                                                                         | 246 kB  00:00:00     
(11/15): extras/7/x86_64/other_db                                                                                                                                             | 127 kB  00:00:00     
(12/15): updates/7/x86_64/filelists_db                                                                                                                                        | 4.4 MB  00:00:00     
(13/15): updates/7/x86_64/prestodelta                                                                                                                                         | 797 kB  00:00:00     
(14/15): updates/7/x86_64/other_db                                                                                                                                            | 641 kB  00:00:00     
(15/15): extras/7/x86_64/prestodelta                                                                                                                                          |  65 kB  00:00:10     
Metadata Cache Created
[root@Hexindai-C12-120 ~]# 
[root@hadoop-C12-120 ~]# yum makecache

6、備份yum源

[root@Hexindai-C12-120 ~]# cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/back/
[root@Hexindai-C12-120 ~]# ll /etc/yum.repos.d/
total 12
drwxr-xr-x. 2 root root   30 Jul  1 01:50 back
-rw-r--r--. 1 root root 2523 Jul  1 01:41 CentOS-Base.repo
drwxr-xr-x. 2 root root  187 Jul  1 01:41 default
-rw-r--r--. 1 root root  951 Oct  2  2017 epel.repo
-rw-r--r--. 1 root root 1050 Oct  2  2017 epel-testing.repo
[root@Hexindai-C12-120 ~]# ll /etc/yum.repos.d/back/
total 4
-rw-r--r--. 1 root root 2523 Jul  1 01:50 CentOS-Base.repo
[root@Hexindai-C12-120 ~]# ll /etc/yum.repos.d/default/
total 32
-rw-r--r--. 1 root root 1664 Nov 23  2018 CentOS-Base.repo
-rw-r--r--. 1 root root 1309 Nov 23  2018 CentOS-CR.repo
-rw-r--r--. 1 root root  649 Nov 23  2018 CentOS-Debuginfo.repo
-rw-r--r--. 1 root root  314 Nov 23  2018 CentOS-fasttrack.repo
-rw-r--r--. 1 root root  630 Nov 23  2018 CentOS-Media.repo
-rw-r--r--. 1 root root 1331 Nov 23  2018 CentOS-Sources.repo
-rw-r--r--. 1 root root 5701 Nov 23  2018 CentOS-Vault.repo
[root@Hexindai-C12-120 ~]# 
[root@hadoop-C12-120 ~]# cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/back/

7、檢查某個命令需要哪個安裝包(例如檢查ifconfig 屬於哪個安裝包)

[root@Hexindai-C12-120 ~]# yum provides ifconfig   
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.aliyun.com
 * epel: mirrors.yun-idc.com
 * extras: mirrors.aliyun.com
 * updates: mirrors.aliyun.com
net-tools-2.0-0.24.20131004git.el7.x86_64 : Basic networking tools
Repo        : @base
Matched from:
Filename    : /usr/sbin/ifconfig
[root@hadoop-C12-120 ~]# yum provides ifconfig
[root@Hexindai-C12-120 ~]# yum -y install net-tools
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.aliyun.com
 * epel: mirrors.yun-idc.com
 * extras: mirrors.aliyun.com
 * updates: mirrors.aliyun.com
Resolving Dependencies
--> Running transaction check
---> Package net-tools.x86_64 0:2.0-0.24.20131004git.el7 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

=====================================================================================================================================================================================================
 Package                                      Arch                                      Version                                                        Repository                               Size
=====================================================================================================================================================================================================
Installing:
 net-tools                                    x86_64                                    2.0-0.24.20131004git.el7                                       base                                    306 k

Transaction Summary
=====================================================================================================================================================================================================
Install  1 Package

Total download size: 306 k
Installed size: 918 k
Downloading packages:
net-tools-2.0-0.24.20131004git.el7.x86_64.rpm                                                                                                                                 | 306 kB  00:00:00     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : net-tools-2.0-0.24.20131004git.el7.x86_64                                                                                                                                         1/1 
  Verifying  : net-tools-2.0-0.24.20131004git.el7.x86_64                                                                                                                                         1/1 

Installed:
  net-tools.x86_64 0:2.0-0.24.20131004git.el7                                                                                                                                                        

Complete!
[root@Hexindai-C12-120 ~]# 
[root@hadoop-C12-120 ~]# yum -y install net-tools

十、創建免密鑰:

[root@Hexindai-C12-120 ~]# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:ipZglwrRhabSM43AMUFrOKFhir4d2Qz693WHh2Eh7i0 root@bogon
The key's randomart image is:
+---[RSA 2048]----+
|=*o..            |
|B==.             |
|BB.+     . .     |
|=o* *.  . . .    |
|ooo=oo  S. o     |
| o++.o .. o +    |
| ..o+..  E = o   |
|   .. . . o o    |
|       .         |
+----[SHA256]-----+
[root@Hexindai-C12-120 ~]#
#執行命令后一路回車即可
[root@Hexindai-C12-120 ~]# cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys

然后將各節點中的公鑰統一加到第一個節點中的/root/.ssh/authorized_keys 里面
[root@hadoop-C12-120 ~]# ssh-keygen -t rsa
[root@Hexindai-C12-120 ~]# cat /export/ssh-copy.sh    
IP="
172.20.102.121
172.20.102.122
172.20.102.123
"

for node in ${IP};do
scp /root/.ssh/authorized_keys ${node}:/root/.ssh/authorized_keys
echo "${node} 基礎配置優化完成"
done
[root@Hexindai-C12-120 ~]# 
執行 sh /export/ssh-copy.sh命令,同步到其他節點中

十一、安裝JDK1.8,並替換JCE文件(Kerberos等需要加密的組件會用到)

1、在Oracle官網下載相應的安裝包(https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html)

2、擴充密鑰長度(下載JCE文件)

Kerberos 需要使用256為的AES加密算法,而JRE默認中的密鑰長度比較短,並且不足以支撐。所以我們需要升級集群中所有服務器節點JRE的安全策略,使其能夠解除密鑰長度的限制。修改的方式是下載並替換JRE中的Unlimited JCEPolicy文件。

以JDK1.8為例,JCE8的下載地址為:https://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html。

 3、將下載的JDK版本進行解壓安裝並配置環境變量

[root@hadoop-C12-120 ~]# ll /export/software/
total 190436
-rw-r--r--. 1 root root      8409 Jul  1 02:27 jce_policy-8.zip
-rw-r--r--. 1 root root 194990602 Jul  1 02:55 jdk-8u211-linux-x64.tar.gz
[root@hadoop-C12-120 ~]#
[root@hadoop-C12-120 ~]# cat /export/ssh-copy.sh 
IP="
172.20.102.121
172.20.102.122
172.20.102.123
"

for node in ${IP};do
scp -r /export/software/ ${node}:/export/
echo "${node} 基礎配置優化完成"
done
[root@hadoop-C12-120 ~]# 
[root@hadoop-C12-120 ~]# sh /export/ssh-copy.sh 
jce_policy-8.zip                                                                                                                                                   100% 8409     6.5MB/s   00:00    
jdk-8u211-linux-x64.tar.gz                                                                                                                                         100%  186MB 134.9MB/s   00:01    
172.20.102.121 基礎配置優化完成
jce_policy-8.zip                                                                                                                                                   100% 8409     7.1MB/s   00:00    
jdk-8u211-linux-x64.tar.gz                                                                                                                                         100%  186MB 123.6MB/s   00:01    
172.20.102.122 基礎配置優化完成
jce_policy-8.zip                                                                                                                                                   100% 8409     7.3MB/s   00:00    
jdk-8u211-linux-x64.tar.gz                                                                                                                                         100%  186MB 118.2MB/s   00:01    
172.20.102.123 基礎配置優化完成
[root@hadoop-C12-120 ~]# 
[root@hadoop-C12-120 ~]# mkdir /export/servers
[root@hadoop-C12-120 ~]# tar zxvf /export/software/jdk-8u211-linux-x64.tar.gz -C /export/servers/
#添加JAVA環境變量到/etc/profile文件
[root@hadoop-C12-120 ~]# tail -4 /etc/profile
#Add by wangruopeng
export JAVA_HOME=/export/servers/jdk1.8.0_211
export JAVA_BIN=/export/servers/jdk1.8.0_211/bin
export PATH=$PATH:$JAVA_HOME/bin:$MAVEN_HOME/bin
[root@hadoop-C12-120 ~]# source /etc/profile
[root@hadoop-C12-120 ~]# java -version       
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)
[root@hadoop-C12-120 ~]# 
將其他節點也同時配置java環境變量

4、將下載后的jce文件拷貝已經安裝的jdk1.8目錄中($JAVA_HOME/jre/lib/security/)

root@hadoop-C12-120 ~]# ll /export/software/
total 190436
-rw-r--r--. 1 root root      8409 Jul  1 02:27 jce_policy-8.zip
-rw-r--r--. 1 root root 194990602 Jul  1 02:55 jdk-8u211-linux-x64.tar.gz
[root@hadoop-C12-120 ~]# cd  /export/software/
[root@hadoop-C12-120 software]#  unzip /export/software/jce_policy-8.zip 
Archive:  /export/software/jce_policy-8.zip
   creating: UnlimitedJCEPolicyJDK8/
  inflating: UnlimitedJCEPolicyJDK8/local_policy.jar  
  inflating: UnlimitedJCEPolicyJDK8/README.txt  
  inflating: UnlimitedJCEPolicyJDK8/US_export_policy.jar  
[root@hadoop-C12-120 software]#  mv UnlimitedJCEPolicyJDK8/*.jar /export/servers/jdk1.8.0_211/jre/lib/security/
[root@hadoop-C12-120 software]#  ll /export/servers/jdk1.8.0_211/jre/lib/security/
total 172
-rw-r--r--. 1   10  143   4054 Apr  1 23:48 blacklist
-rw-r--r--. 1   10  143   1273 Apr  1 23:48 blacklisted.certs
-rw-r--r--. 1   10  143 105894 Apr  1 23:48 cacerts
-rw-r--r--. 1   10  143   2466 Apr  1 23:48 java.policy
-rw-r--r--. 1   10  143  42959 Apr  1 23:48 java.security
-rw-r--r--. 1   10  143     98 Apr  1 23:48 javaws.policy
-rw-rw-r--. 1 root root   3035 Dec 20  2013 local_policy.jar
drwxr-xr-x. 4   10  143     38 Apr  1 23:48 policy
-rw-r--r--. 1   10  143      0 Apr  1 23:48 trusted.libraries
-rw-rw-r--. 1 root root   3023 Dec 20  2013 US_export_policy.jar
[root@hadoop-C12-120 software]# 

5、如果沒有安裝JDK可能會報錯如下:

安裝完JDK后我們需要做一些軟連接,該鏈接為CM默認查找JDK環境的路徑,如果你盡管安裝JDK但沒有做軟連接可能會遇到下面的坑。

問題分析
  
  Inspector did not run successfully.一般是由於沒有配置JDK環境。

  這種情況應該是你安裝了Oracle版本的JDK且自定義了JDK HOME路徑,盡管你將自己的JDK加入到“/etc/profile”中,CM Agent並不識別,它識別JDK的路徑是通過讀取自己的配置文件,即:“/opt/cloudera-manager/cm-5.15.1/lib64/cmf/service/common/cloudera-config.sh”。

解決方案有兩種:
  (1)一種是將jdk環境加入“local JAVA8_HOME_CANDIDATES”屬性中;
  (2)另一種就是配置軟連接,將“/usr/java/jdk1.8”指向你服務的JDK PATH即可。
  我推薦大家使用第二種方法,做一個軟連接即可也不需要去修改CM的配置文件,具體操作如下:
    [root@hadoop-c12-120 ~]# mkdir /usr/java && cd /usr/java
    [root@hadoop-c12-120 /usr/java]# 
    [root@hadoop-C12-120 /usr/java]# ln -s /export/servers/jdk1.8.0_211/ /usr/java/jdk1.8
    [root@hadoop-C12-120 /usr/java]# 
    [root@hadoop-C12-120 /usr/java]# ll
    total 0
    lrwxrwxrwx 1 root root 36 Jun 9 18:57 jdk1.8 -> /export/servers/jdk1.8.0_211/
    [root@hadoop-C12-120/usr/java]#

 

  #注意:配置完成后,需要重啟機器,因為配置Selinux后,需要重啟機器才會生效,否則執行如下命令時還是開啟狀態:
    getenforce:

 

 OK,以同樣的方式部署其他節點,到此基礎配置就完成了!

 


免責聲明!

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



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