一:机群数量看公司业务需求,至少要三台。
作者这里做演示,所以使用VM虚拟三台主机(cdh不支持docker_cluster)。对于物理主机请参考作者另一篇文章制作好Centos启动盘[1]。
接下来开始装Centos,我用的是7.6dvd中basic webserver,添加了perl依赖的安装模式,因为mysql安装和cdh安装需要perl,关于内存设置我等下会讲,现在先搭一个机器出来。
![fd9f3f820f79cb5e90fe5810914670da.png](https://img-blog.csdnimg.cn/img_convert/fd9f3f820f79cb5e90fe5810914670da.png)
启动后,选择Install Centos,等待片刻。
![44eccaceea3b4d95c91467532881642b.png](https://img-blog.csdnimg.cn/img_convert/44eccaceea3b4d95c91467532881642b.png)
![c78f4b737bf23ba5dc12ecad6f53ee69.png](https://img-blog.csdnimg.cn/img_convert/c78f4b737bf23ba5dc12ecad6f53ee69.png)
![32d83f70e3fcd48786497827caed3877.png](https://img-blog.csdnimg.cn/img_convert/32d83f70e3fcd48786497827caed3877.png)
所以分区应该如何配置,点击INSTALLTION DESTINATION图标。
![19987309db6d836057be82aabbfa1e5a.png](https://img-blog.csdnimg.cn/img_convert/19987309db6d836057be82aabbfa1e5a.png)
![29a48520fbba00512a6aea92f531c7eb.png](https://img-blog.csdnimg.cn/img_convert/29a48520fbba00512a6aea92f531c7eb.png)
![8213596a0a4c3709543e057e35be2d27.png](https://img-blog.csdnimg.cn/img_convert/8213596a0a4c3709543e057e35be2d27.png)
总结以上两张图分区里面就是/var 5g以上,/opt 15g,/usr 1g以上,其他看你们自己了吧,没啥要注意了的。
![e754bde378914d90316fdcdd6e44d2dc.png](https://img-blog.csdnimg.cn/img_convert/e754bde378914d90316fdcdd6e44d2dc.png)
![6d0ba62e587dd91de164b7150de9797f.png](https://img-blog.csdnimg.cn/img_convert/6d0ba62e587dd91de164b7150de9797f.png)
![0d145e9dec96399bbf9e3d7c99c1fa9c.png](https://img-blog.csdnimg.cn/img_convert/0d145e9dec96399bbf9e3d7c99c1fa9c.png)
![8df8b116222d19b8fb1fe6b62082473d.png](https://img-blog.csdnimg.cn/img_convert/8df8b116222d19b8fb1fe6b62082473d.png)
嗯全部配完了,后面就是配置你的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
![e71f0dfbbfa826068ec3dfe4c03a3530.png](https://img-blog.csdnimg.cn/img_convert/e71f0dfbbfa826068ec3dfe4c03a3530.png)
![e66cb319e371c878cb2879d7a729a7a6.png](https://img-blog.csdnimg.cn/img_convert/e66cb319e371c878cb2879d7a729a7a6.png)
![c1f27dc8d6188de60827629d8e121c7b.png](https://img-blog.csdnimg.cn/img_convert/c1f27dc8d6188de60827629d8e121c7b.png)
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
![6311282ef5a062d6b92acef241844256.png](https://img-blog.csdnimg.cn/img_convert/6311282ef5a062d6b92acef241844256.png)
systemctl restart ntpd.service #重启服务
systemctl status ntpd.service #查看状态加以下内容。
ntpq -p//查看运行状态
![7fbfb690183930cc83fb099bb58e1293.png](https://img-blog.csdnimg.cn/img_convert/7fbfb690183930cc83fb099bb58e1293.png)
客户端
vi /etc/ntp.conf
![24511c32f83843c47429c5c8d5488845.png](https://img-blog.csdnimg.cn/img_convert/24511c32f83843c47429c5c8d5488845.png)
ntpq -p //查看下
![b55b6b66fb3cb32b9b4d8ff9d3f5dcfe.png](https://img-blog.csdnimg.cn/img_convert/b55b6b66fb3cb32b9b4d8ff9d3f5dcfe.png)
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
四:系统调优
直接上官网图吧,不多比比了
![134b99c22aa3481054b09e0c184198bd.png](https://img-blog.csdnimg.cn/img_convert/134b99c22aa3481054b09e0c184198bd.png)
总结就是通过关闭一些linux服务,来提升文件系统性能(centos7 文件io性能确实比centos6要高)
1:关闭tuned
systemctl status tuned //看下状态
tuned-adm off
tuned-adm list
![9c41ba39076b08decd50c47d8450eb4a.png](https://img-blog.csdnimg.cn/img_convert/9c41ba39076b08decd50c47d8450eb4a.png)
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
![c3d2f95b0c8454e9bf999463603ff2d8.png](https://img-blog.csdnimg.cn/img_convert/c3d2f95b0c8454e9bf999463603ff2d8.png)
最后
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的博客,可以学到很多东西。
参考
- ^Centos启动盘制作 https://zhuanlan.zhihu.com/p/76567117
- ^硬件明细 https://www.cloudera.com/documentation/enterprise/6/release-notes/topics/rg_hardware_requirements.html