过一个完整的RESTful API把监控信息暴露出来,集成了现有的运维工具。平台使用Ganglia收集度量指标,用Nagios支持系统报警。
图 Ambari结构图
其中Ambari是一个分布式架构的软件,主要由两部分组成:Ambari Server 和 Ambari Agent,如图1-1所示。Ambari Server 会读取 Stack 和 Service 的配置文件。当用 Ambari 创建集群的时候,Ambari Server 传送 Stack 和 Service 的配置文件以及 Service 生命周期的控制脚本到 Ambari Agent。Agent 拿到配置文件后,会下载安装公共源里软件包(Redhat,就是使用 yum 服务)。安装完成后,Ambari Server 会通知 Agent 去启动 Service。之后 Ambari Server 会定期发送命令到 Agent 检查 Service 的状态,Agent 上报给 Server,并呈现在 Ambari 的 GUI 上,方便用户了解到集群的各种状态,并进行相应的维护。
图 1-1 Ambari架构图
2 基本环境配置
以两台节点为例来组件Hadoop分布式集群,这里采用的系统版本为Centos7,如下表所示:
主机名 master 内存 8192MB 硬盘 100G IP地址 角色 2.1 配置主机名
# master
# hostnamectl set-hostname master # hostname master # slaver1
# hostnamectl set-hostname slaver1 # hostname slaver1
2.2 修改hosts文件
# master & slaver1 # vi /etc/hosts master slaver1
2.3 修改yum源
# master
将挂在到/mnt目录下,将其中的ambari解压到/opt目录下,并在master节点配置ftp服务。
注意:
因为安装大数据相关软件包时,可能会用到相关依赖软件包,所以需要配置Centos7 Yum
源,这里可以采用IAAS中的Centos7 Yum源。 # master & slaver1 # cd /etc/ rm -vf * 配置Yum源 # vi [centos7]
baseurl= 注:具体的yum源根据真实环境配置,本次为实验室测试环境 ) gpgcheck=0 enabled=1 name=centos [ambari] name=ambari
baseurl= 注:具体的yum源根据真实环境配置,本次为实验室测试环境 ) enabled=1 gpgcheck=0
# master
# yum -y install httpd
将/mnt/文件夹中和两个文件夹拷贝到/var/www/html/目录下。启动httpd服务。 # systemctl enable # systemctl status
2.4 配置ntp
# master
# yum -y install ntp # vi /etc/
注释或者删除以下四行 server iburst server iburst server iburst server iburst 添加以下两行 server
fudge stratum 10 #systemctl enable ntpd #systemctl start ntpd # slaver1
# yum -y install ntpdate # ntpdate master
# systemctl enable ntpdate
2.5 配置SSH
# master & slaver1
检查2个节点是否可以通过无密钥相互访问,如果未配置,则进行SSH无密码公钥认证配置。如下:
# yum install openssh-clients # ssh-keygen # ssh-copy-id # ssh-copy-id
ssh登录远程主机查看是否成功 # ssh # exit
# ssh # exit
2.6 禁用Transparent Huge Pages
操作系统后台有一个叫做khugepaged的进程,它会一直扫描所有进程占用的内存,在可能的情况下会把4kpage交换为Huge Pages,在这个过程中,对于操作的内存的各种分配活动都需要各种内存锁,直接影响程序的内存访问性能,并且,这个过程对于应用是透明的,在应用层面不可控制,对于专门为4k page优化的程序来说,可能会造成随机的性能下降现象。
# master & slaver1
# cat /sys/kernel/mm/transparent_hugepage/enabled [always] madvise never
# echo never > /sys/kernel/mm/transparent_hugepage/enabled # echo never > /sys/kernel/mm/transparent_hugepage/defrag # cat /sys/kernel/mm/transparent_hugepage/enabled always madvise [never] 重启后失效,需要再次执行
2.7 安装配置JDK
# master
# mkdir /usr/jdk64/ # mount -o loop /mnt/ # cd /mnt/
# tar -zxvf -C /usr/jdk64/ # vi /etc/profile
export JAVA_HOME=/usr/jdk64/ PATH=$JAVA_HOME/bin:$PATH