集群部署主机前置条件
1.1硬件条件:
1.1.1 cpu
cpu要求至少4颗8核2~2.5GHz,计算节点要求较高。
理论依据:集群的cpu资源主要进行job计算的,所以计算节点对cpu的要求要高点,管理节点相对耗cpu资源较少。计算节点定位为部署以下进程:datanode,nodemanager,Hregionserver,worker的节点。
Cpu资源如果不够,当job提交到YARN队列计算处理时,相应的job处理耗时会延长。
1.1.2内存
管理节点:至少namenode节点内存要在256G。
理论依据:为了hdfs快速访问元数据,namenode需要将元数据合并成FSimage镜像文件加载到namenode内存里面去。随着集群扩容增大或者集群小文件增多,hdfs元数据会增大,为了防止内存不够用,所以namenode内存需要至少256G。(一个数据块大约占1k元数据空间)
数据节点:计算节点的内存至少128G
理论依据:经测试,nodemanager节点在配置30个container左右时最稳定。一般一个container配置为:<1V 2G>,所以yarn至少需要一个节点60G的内存。HRegionServer分配16G,datanode预留10G,系统预留42G。
内存资源如果不够,job可能会提交或运行失败。
注:如果使用spark建议提高计算节点内存。
1.1.3磁盘
一个磁盘阵列中要有12到24个1~4TB硬盘。
1.1.4网络
至少千兆网,压测吞吐量100M/s以上。
1.2软件条件:
1.2.1 支持的操作系统:
l Red Hat
64-bit: RHEL5.7, CentOS 5.7,Oracle Linux 5.6 (UEK), RHEL6.2,CentOS6.2
32-bit:RHEL 6.2,CentOS 6.2
l SUSE
64-bit:SLES 11
l Ubuntu
64-bit:LTS releases Lucid(10.04) and Precise (12.04)
l Debian
64-bit:Squeeze(6.0.3)
注:如果使用RHEL7,会发生系统使用cpu资源过大情况,需要进行优化。
redhat 7
echo never > /sys/kernel/mm/transparent_hugepage/enabled
1.2.2安装有ssh,并处于运行状态。
通过ssh –v验证本机是否安装了ssh,如提示出ssh的信息则已经安装。一般操作系统均默认安装了ssh。
1.2.3集群间各主机已关闭防火墙。
1.2.4 集群间启动ntp服务,定时同步集群间主机时间。
1.2.5 需要root权限。
1.2.6 数据节点挂载目录不做raid
可挂载多个文件系统,配置多个数据存储目录。
1.2.7.集群间主机名不重复,
均已加入到所有主机/etc/hosts文件中。
一行一个ip及对应主机名。如下:
10.147.137.131 drm001
10.147.137.132 drm002
……
1.2.8.更改系统资源配置
ulimit –a用于查看系统进程所占用的资源,例如:
-bash-4.1$ ulimit -a
core file size (blocks, -c) unlimited
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 159690
max locked memory (kbytes, -l) 64
max memory size (kbytes, -m) unlimited
open files (-n) 1048576
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 10240
cpu time (seconds, -t) unlimited
max user processes (-u) 655350
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
红色字体的几个参数值需要调整。配置用户级参数操作方式如下:
a) 在用户home目录下的.bash_profile中增加如下几行:
ulimit -n 1048576
ulimit -s 10240
ulimit -u 655350
b) 重新登录终端设置生效。
c) 使用ulimit –a查看,确认设置生效。
1.2.7 SSH无密码访问配置
主要包含三部分:HBASE、HDFS和ZOOKEEPER,hbase集群、hadoop集群之间需要无密码访问,因此集群之前需要完成集群对应主从节点之间的SSH无密码访问配置。可以通过一次生成ssh密钥多个拷贝的方式实现集群间所有主机之间用户的无密码访问。
具体操作方式如下
1. 使用test用户登录详单云存储环境任意一台主机,如10.137.47.131(主机名为drm001),进入用户目录(/test),执行ssh-keygen -t rsa -P ''命令,看到提示就回车,然后会在/test /.ssh下生成一对公钥和密钥文件。
2. 执行cat /test/.ssh/id_rsa.pub >> /test/.ssh/authorized_keys命令,建立本机该用户之间的无密码登陆。
3. 执行chmod 600 /test/.ssh/authorized_keys命令,设置authorized_keys文件权限。
4. 完成配置后,使用ssh drm001命令进行测试,首次连接需要输入密码,之后直接可以建立连接不在需要输密码,这样表示设置成功。
5. 然后通过scp –r /test /.ssh test@drm002: /test命令将生成的.ssh文件拷贝到集群其他主机(drm002…drm009)。此时还需要输入密码。
6. 拷贝完成后,进行集群主机间无密码访问验证。通过ssh +主机名进行验证。不需要密码直接可以访问说明配置成功。
1、主机检查(HDP)
检查home目录磁盘空间(ocdc执行):df -h|grep home (目录空间大于50G)
检查打开文件数量及最大进程数(ocdc执行):ulimit -n && ulimit -u (输出大于等于65535)
检查selinux(ocdc执行):getenforce (输出disable)
检查uid(ocdc执行):id (输出大于等于1001)
检查scp功能(ocdc执行):scp (输出命令帮助信息)
检查配置umask(root执行):umask (输出为0022或0002)
检查防火墙(root执行)service iptables status (输出包含disable)
检查NTP同步(root执行):crontab -l|grep ntpdate (输出 0 0 * * * /usr/sbin/ntpdate -u 10.31.100.12)
检查yum源配置(root执行):cat /etc/redhat-release && cat /etc/yum.repos.d/HDP.repo|grep url && cat /etc/yum.repos.d/HDP-UTILS.repo|grep url (输出三条记录,并且其中包含的系统版本数据一致)
检查软件检查(root执行):rpm -qa|grep -i -E '^yum-[0-9]|^curl-[0-9]|^unzip-[0-9]|^tar-[0-9]|^wget-[0-9]|^python-[0-9]'|wc -l (输出为6)
2、snappy版本检查
若扩容节点操作系统版本为redhat 7.1,则需要对snappy版本进行降级处理
在root下执行:
rpm -qa | grep snappy | xargs yum -y remove
yum -y install snappy-1.0.5-1.el6.x86_64
部署原则
2.1 规划部署架构
以12台机器举例,HDP集群部署的服务规划如下图所示:
网友评论