一:机群数量看公司业务需求,至少要三台。
作者这里做演示,所以使用VM虚拟三台主机(cdh不支持docker_cluster)。对于物理主机请参考作者另一篇文章制作好Centos启动盘[1]。
接下来开始装Centos,我用的是7.6dvd中basic webserver,添加了perl依赖的安装模式,因为mysql安装和cdh安装需要perl,关于内存设置我等下会讲,现在先搭一个机器出来。
这些都不重要是吧,反正可以后期调。
启动后,选择Install Centos,等待片刻。
搞错了,只能选英文,不然后有字符集错误,我靠,程序员不要选中文啊,除非不需要兼容别的东西。
所以分区应该如何配置,点击INSTALLTION DESTINATION图标。
cm节点的分区推荐
agent节点分区推荐。
总结以上两张图分区里面就是/var 5g以上,/opt 15g,/usr 1g以上,其他看你们自己了吧,没啥要注意了的。
对于不同的机群数量,对于/var分区的不同配置
网络配置
自己参考vm中nat配置改下,记得关闭ipv6,cdh不支持ipv6
嗯全部配完了,后面就是配置你的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
cdh6.X推荐的oracle jdk环境
openjdk推荐
他说安装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
systemctl restart ntpd.service #重启服务
systemctl status ntpd.service #查看状态加以下内容。
ntpq -p//查看运行状态
客户端
vi /etc/ntp.conf
ntpq -p //查看下
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
四:系统调优
直接上官网图吧,不多比比了
总结就是通过关闭一些linux服务,来提升文件系统性能(centos7 文件io性能确实比centos6要高)
1:关闭tuned
systemctl status tuned //看下状态
tuned-adm off
tuned-adm list
显示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
最后
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