一:机群数量看公司业务需求,至少要三台。

作者这里做演示,所以使用VM虚拟三台主机(cdh不支持docker_cluster)。对于物理主机请参考作者另一篇文章制作好Centos启动盘[1]

接下来开始装Centos,我用的是7.6dvd中basic webserver,添加了perl依赖的安装模式,因为mysql安装和cdh安装需要perl,关于内存设置我等下会讲,现在先搭一个机器出来。




安装centos7 配置dns_centos7 运行 jar


这些都不重要是吧,反正可以后期调。

启动后,选择Install Centos,等待片刻。


安装centos7 配置dns_centos7 dns配置_02

搞错了,只能选英文,不然后有字符集错误,我靠,程序员不要选中文啊,除非不需要兼容别的东西。


安装centos7 配置dns_centos7 运行 jar_03


安装centos7 配置dns_centos7 运行 jar_04


所以分区应该如何配置,点击INSTALLTION DESTINATION图标。


安装centos7 配置dns_centos7修改主机名_05


安装centos7 配置dns_centos7 dns配置_06

cm节点的分区推荐

安装centos7 配置dns_centos7 dns配置_07

agent节点分区推荐。

总结以上两张图分区里面就是/var 5g以上,/opt 15g,/usr 1g以上,其他看你们自己了吧,没啥要注意了的。


安装centos7 配置dns_centos7 关闭selinux_08

对于不同的机群数量,对于/var分区的不同配置

安装centos7 配置dns_centos7 关闭selinux_09

网络配置

安装centos7 配置dns_centos7 dns配置_10

自己参考vm中nat配置改下,记得关闭ipv6,cdh不支持ipv6

安装centos7 配置dns_centos7 关闭selinux_11


嗯全部配完了,后面就是配置你的root密码和创建一个新用户,当然你可以只配置root密码。还有上面所讲分区规则是针对3个主机的机群,所以到底配多大还是请看官方说明。详细硬件配置请前往CDH网站查看。[2]

二:准备系统配置环境(全部主机都要操作,全部用root用户)

1:防火墙


关闭防火墙:systemctl stop firewalld
防止开机自启:systemctl disable firewalld
查看状态:firewall-cmd --state


2:配置主机名ip映射,cdh推荐我们使用dns服务进行映射。主机数量比较少所以直接


vi /etc/hosts
192.168.208.101 hadoop101


有兴趣可以去了解下dns服务映射。

3:关闭selinux

cdh官网也说了要关,不关会有一些问题。


vi /etc/selinux/config
将SELINUX设置为:SELINUX=disabled(通常为第4行)


注意别改错了,是SELINUX不是SELINUXTYPE,如果改错了将无法开机。

4:安装jdk


安装centos7 配置dns_centos7 运行 jar_12

cdh6.X推荐的oracle jdk环境

安装centos7 配置dns_centos7 关闭selinux_13

openjdk推荐

安装centos7 配置dns_centos7 运行 jar_14

他说安装java要安装到/usr/java,注意下。

vi /etc/profile
export JAVA_HOME=(/usr/java/jdk*****)
export PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/sbin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar


安装完成后


source /etc/profile
java -version


验证下java是否安装成功

5:配置ntp

服务器


yum -y install ntp
vi /etc/ntp.conf


安装centos7 配置dns_安装centos7 配置dns_15


systemctl restart ntpd.service   #重启服务
systemctl status  ntpd.service   #查看状态加以下内容。
ntpq -p//查看运行状态


安装centos7 配置dns_centos7 关闭selinux_16


客户端


vi /etc/ntp.conf


安装centos7 配置dns_安装centos7 配置dns_17


ntpq -p //查看下


安装centos7 配置dns_centos7 关闭selinux_18


6:ssh密钥配置


ssh-keygen -t rsa (一直回车直即可)
ssh-copy-id -i 主机名 //分发密钥


7:更改主机名


vi /etc/hostname


8:改ip


vi /etc/sysconfig/network-scripts/ifcfg-ens33 //这个最后这个if***是根据网卡来的。


三:其他依赖说明

python2.7,Perl,python-psycopg2,iproute package-

centos7.6自带python2.7,iproute4.1

所以先安装python-psycopg2

sudo yum install python-pip(已经有pip就可以不用做这一步)

sudo pip install psycopg2==2.7.5 --ignore-installed

四:系统调优

直接上官网图吧,不多比比了


安装centos7 配置dns_centos7 运行 jar_19


总结就是通过关闭一些linux服务,来提升文件系统性能(centos7 文件io性能确实比centos6要高)

1:关闭tuned


systemctl status tuned //看下状态
tuned-adm off
tuned-adm list


安装centos7 配置dns_centos7 dns配置_20

显示no current active profile即为关闭成功

systemctl stop tuned
systemctl disable tuned


2:关闭thp(重启生效)

先看下在不在跑


cat /sys/kernel/mm/transparent_hugepage/enabled
cat /sys/kernel/mm/transparent_hugepage/defrag


如果控制台出现always nerver,表示在跑。

嗯,开始关这个服务。


touch /var/lock/subsys/local
echo never > /sys/kernel/mm/transparent_hugepage/enabled 
 echo never > /sys/kernel/mm/transparent_hugepage/defrag
chmod +x /etc/rc.d/rc.local


修改grub配置(只有rhel 7.X需要这一步)


vi /etc/default/grub
在GRUB_CMDLINE_LINUX添加 transparent_hugepage=never


安装centos7 配置dns_centos7 运行 jar_21


最后


grub2-mkconfig -o /boot/grub2/grub.cfg


3:调整vm.swappiness

这个东西是一个数值,数值越高,swap使用的就越积极。基本机群都是128g内存的,所以直接调低点。


cat /proc/sys/vm/swappiness  //看看大小,linux默认就是60
sysctl -w vm.swappiness=1 //临时的修改
vi /etc/sysctl.conf 
最后一行加上
vm.swappiness=1


重启生效

五:总结

基本的主机环境就如上所示了。具体每个主机硬盘,分区,固态,内存,jvm堆大小怎么配还是要公司具体业务需求。

搭建多参考官方文档。

没事看看官网文档,clouder的博客,可以学到很多东西。

参考

  1. ^Centos启动盘制作 https://zhuanlan.zhihu.com/p/76567117
  2. ^硬件明细 https://www.cloudera.com/documentation/enterprise/6/release-notes/topics/rg_hardware_requirements.html