zl程序教程

您现在的位置是:首页 >  其他

当前栏目

CDH安装环境预准备

安装 环境 准备 CDH
2023-09-14 09:13:17 时间

CDH安装环境预准备

step 1.检查是否安装了ntp相关包

[laowang@cdh201 ~]$ rpm -qa | grep ntp
fontpackages-filesystem-1.44-8.el7.noarch
python-ntplib-0.3.2-1.el7.noarch
ntpdate-4.2.6p5-22.el7.centos.x86_64

step 2.安装NTP【集群上的每一台机器都需要安装】

#!/bin/bash
for HOST in `cat hosts`
do
echo "install ntp"
ssh -t laowang@$HOST "sudo yum -y install ntp"
ssh -t laowang@$HOST "sudo systemctl enable ntpd"
ssh -t laowang@$HOST "sudo systemctl start ntpd"
done

注意事项:
(1)如果不是root用户,那么在安装软件的时候,必须使用sudo选项,否则会出现access denied。如果是root用户,则不能使用sudo
(2)echo “install ntp” 这个表达式只是打印语句,别无其他!

step 3.设置ntp服务器:[与外部公共的ntpd同步(标准时间)]
ntpdate -u cn.pool.ntp.org
编写shell脚本

#!/bin/bash
for HOST in `cat hosts`;do
ssh -t laowang@$HOST "sudo ntpdate -u cn.pool.ntp.org"
done

注意事项:
(1)NTP 是网络时间协议(Network Time Protocol)的简称。通过网络协议使计算机之间的时间同步化
(2)ntpq用来监视ntpd操作,ntpq -p查询网络中的NTP服务器,同时显示客户端和每个服务器的关系

step 4.安装kerberos Server
在10.22.5.103机器上
命令:yum install krb5-server krb5-libs krb5-auth-dialog
KDC的主机必须非常自身安全,一般该主机只运行KDC程序。本文中我们选择vmw201作为运行KDC的主机。在安装完上述的软件之后,会在KDC主机上生成配置文件/etc/krb5.conf和/var/kerberos/krb5kdc/kdc.conf,它们分别反映了realm name 以及 domain-to-realm mappings。

注意事项:
(1)设置的kerberos的数据库密码是:bilaowang
(2)kerberos的数据库管理员密码:bilaowang
(3)kerberos服务器端应该装在配置了免密的那台机器上,只有这样,在安装kerberos客户端的时候,就不需要输入密码了。

step 5.安装kerberos客户端
将kerberos服务端装在10.22.5.103机器上。其它机器就用作kerberos的客户端安装。因为105-108的机器性能较差,将其作为kafka集群建设。

#!/bin/bash
for HOST in `cat hosts`
do
echo $HOST
echo "check NTP"
ssh -t laowang@$HOST "sudo ntpq -p"
echo "install kerberos"
ssh -t laowang@$HOST "sudo yum install -y krb5-libs krb5-workstation"
scp -p /etc/krb5.conf laowang@$HOST:/tmp
ssh -t laowang@$HOST "sudo cp -p /tmp/krb5.conf /etc"
ssh -t laowang@HOST "sudo chmod 644 /etc/krb5.conf"
ssh -t laowang@HOST "sudo chown root:root /etc/krb5.conf"
done

step 6.关闭大页【即关闭透明大页】

#!/bin/bash
for HOST in `cat hosts`
do
echo $HOST
ssh -t laowang@$HOST "sudo bash -c 'echo never > /sys/kernel/mm/transparent_hugepage/enabled'"
ssh -t laowang@$HOST "sudo bash -c 'echo never > /sys/kernel/mm/transparent_hugepage/defrag'"
ssh -t laowang@$HOST "sudo cat /sys/kernel/mm/transparent_hugepage/defrag"
ssh -t laowang@$HOST "sudo cat /sys/kernel/mm/transparent_hugepage/enabled"
echo "add THP to rc.d" $HOST
ssh -t laowang@$HOST "sudo bash -c echo 'echo never > /sys/kernel/mm/transparent_hugepage/defrag' >> /etc/rc.d/rc.local"
ssh -t laowang@$HOST "sudo grep -i HugePages_Total /proc/meminfo"
done

注意事项:
(1)标准大页(Huge Pages)是从Linux Kernel 2.6后被引入的。目的是使用更大的内存页面(memory page size) 以适应越来越大的系统内存,让操作系统可以支持现代硬件架构的大页面容量功能。
(2)透明大页(Transparent Huge Pages)缩写为THP,这个是RHEL 6开始引入的一个功能。
大页的分配机制,标准大页管理是预分配的方式,而透明大页管理则是动态分配的方式
(3)cat /sys/kernel/mm/transparent_hugepage/enabled
(4)vi /etc/default/grub[针对centos 7版本]
(5)/sys/kernel/mm/transparent_hugepage/defrag与/sys/kernel/mm/transparent_hugepage/enabled这两个文件只能输入值always或者never。否则报错,测试如下:

[root@littlelawson rc.d]# cat /sys/kernel/mm/transparent_hugepage/defrag 
[always] madvise never

[root@littlelawson rc.d]# echo never >> /sys/kernel/mm/transparent_hugepage/defrag
[root@littlelawson rc.d]# cat /sys/kernel/mm/transparent_hugepage/defrag 
always madvise [never]

[root@littlelawson rc.d]# echo ndfsdfsdfever >> /sys/kernel/mm/transparent_hugepage/defrag
-bash: echo: write error: Invalid argument

step 7.安装sssd
(1)切换到当前目录:cd
(2)新建一个文件sssd.conf,内容如下:

[sssd]
config_file_version=2
services=nss,pam
domains=default

[nss]
filter_users=root,ldap

[pam]

[domain/default]
auth_provider=ldap
id_provider=ldap
chpass_provider=ldap
ldap_schema=rfc2307
ldap_uri=ldap://10.22.5.102:389

ldap_search_base=dc=enmonster,dc=storage
ldap_access_filter=(&(objectclass=dcObject)(objectclass=organization))
ldap_tls_reqcert=never
ldap_id_use_start_tls=False
ldap_tls_cacertdir=/etc/openldap/certs
cache_credentials=True
entry_cache_timeout=600
ldap_network_timeout=3

(3)编写如下脚本用以在节点安装:vi installSSSD.sh

for HOST in `cat hosts`
do
echo "install sssd"
ssh -t laowang@$HOST "sudo yum install -y mlocate sssd authconfig" 
ssh -t laowang@$HOST "sudo authconfig --enablesssd --enablesssdauth --enablelocauthorize --enablemkhomedir --update"
scp sssd.conf laowang@$HOST:/tmp
ssh -t laowang@$HOST "sudo cp /tmp/sssd.conf /etc/sssd/sssd.conf"
ssh -t laowang@$HOST "sudo chmod 600 /etc/sssd/sssd.conf"
ssh -t laowang@$HOST "sudo systemctl enable sssd"
ssh -t laowang@$HOST "sudo systemctl restart sssd"
ssh -t laowang@$HOST "sudo systemctl status sssd"
ssh -t laowang@$HOST "sudo chkconfig sssd on"
done

step 8.OS limit调大

#!/bin/bash
for HOST in `cat hosts`
do
echo "max open file limit"
ssh -t laowang@$HOST "sudo bash -c 'echo ulimit -n 131070 >> /etc/profile'"
ssh -t laowang@$HOST "sudo bash -c 'echo soft nofile 131070 >> /etc/security/limits.conf'"
ssh -t laowang@$HOST "sudo bash -c 'echo hard nofile 131070 >> /etc/security/limits.conf'"
ssh -t laowang@$HOST "sudo sed -i "s/81920/unlimited/g" /etc/security/limits.d/20-nproc.conf"
done

注意事项:
(1)centos 7中是20-nproc.conf
(2)这里要使用bash -c参数,否则报错

step 9.LDAP 安装
01.LDAP是轻量目录访问协议,英文全称是Lightweight Directory Access Protocol,一般都简称为LDAP。
02.编写脚本vi installLDAP.sh

#!/bin/bash
for HOST in `cat hosts`
do
echo "install ldap rpm"
ssh -t laowang@$HOST "sudo yum install -y openldap openldap-* compat-openldap migrationtolls"
ssh -t laowang@$HOST "sudo systemctl stop firewalld"
ssh -t laowang@$HOST "sudo systemctl start slapd"
ssh -t laowang@$HOST "sudo systemctl enable slapd"
ssh -t laowang@$HOST "rpm -qa | grep ldap"
ssh -t laowang@$HOST "sudo slapd -VV" 
ssh -t laowang@$HOST "sudo systemctl status slapd"
ssh -t laowang@$HOST "sudo cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG"
ssh -t laowang@$HOST "sudo chown ldap:ldap -R /var/lib/ldap"
ssh -t laowang@$HOST "sudo chmod 700 -R /var/lib/ldap"
ssh -t laowang@$HOST "sudo ll /var/lib/ldap"
ssh -t laowang@$HOST "sudo slappasswd -s bilaowang"
done

03.为其它机器安装client

#!/bin/bash
for HOST in `cat hosts`
do
ssh -t root@$HOST "sudo yum -y install openldap-clients"
done;

注意事项:
(1)ssh -t laowang@ HOSTsudoecho\”echonever>/sys/kernel/mm/transparenthugepage/defrag\”>>/etc/rc.d/rc.localechonever>/sys/kernel/mm/transparenthugepage/defrag/etc/rc.d/rc.local:sshtlaowang@ H O S T “ s u d o e c h o \” e c h o n e v e r > / s y s / k e r n e l / m m / t r a n s p a r e n t h u g e p a g e / d e f r a g \” >> / e t c / r c . d / r c . l o c a l ” 的 意 思 是 : 将 e c h o n e v e r > / s y s / k e r n e l / m m / t r a n s p a r e n t h u g e p a g e / d e f r a g 这 条 命 令 导 入 到 / e t c / r c . d / r c . l o c a l 这 个 文 件 中 。 其 实 这 条 命 令 也 可 以 写 成 如 下 这 个 样 子 : s s h − t l a o w a n g @ HOST “sudo echo ‘echo never > /sys/kernel/mm/transparent_hugepage/defrag’ >> /etc/rc.d/rc.local”
(2)那么/etc/rc.d/rc.local又是什么呢?可以使用cat命令查看一下:

[root@littlelawson rc.d]# cat rc.local 
#!/bin/sh
#
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here if you don't
# want to do the full Sys V style init stuff.

touch /var/lock/subsys/local

这个rc.local文件【其实是一个shell脚本】的意思就是:这个脚本将在所有其他init脚本【应该是系统初始化类脚本】之后执行。你可以把你自己的初始化的东西放在这里,如果你不想做完整的系统v样式的init脚本。
stuff:材料—>脚本
(3)验证LDAP是否正常启动,其端口号是389。Verify the LDAP。使用命令:netstat -antup | grep -i 389
(4)因为openldap有很多依赖包,所以千万不能使用–nodeps删除包,正确的删除报的命令及顺序如下:

[root@server5 openldap]# rpm -e openldap-servers-sql-2.4.44-15.el7_5.x86_64
[root@server5 openldap]# rpm -e compat-openldap-2.3.43-5.el7.x86_64
[root@server5 openldap]# rpm -qa |grep openldap
openldap-2.4.44-15.el7_5.x86_64
openldap-servers-2.4.44-15.el7_5.x86_64
openldap-clients-2.4.44-15.el7_5.x86_64
openldap-devel-2.4.44-15.el7_5.x86_64
[root@server5 openldap]# rpm -e openldap-servers-2.4.44-15.el7_5.x86_64
[root@server5 openldap]# rpm -e openldap-clients-2.4.44-15.el7_5.x86_64
[root@server5 openldap]# rpm -e openldap-devel-2.4.44-15.el7_5.x86_64
[root@server5 openldap]# rpm -e openldap-2.4.44-15.el7_5.x86_64