大数据集群之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 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 ~]#
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 ~]#
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 ~]#
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 ~]#
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 ~]#
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 ~]#
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 ~]#
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 ~]#
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@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@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@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 ~]#
十一、安装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,以同样的方式部署其他节点,到此基础配置就完成了!