ansible安装包_Ansible 部署 CDH

de9b9658ff953f545e22df65e8e4f516.png

部署准备

本次部署采用 ansible,以及 CDH (cloudera hadoop)。由于作为例子,仅展示最小化的集群部署( 六个节点 )。

详细部署方式可以参考官方文档。点击这里

角色分配

cdh-01: nn, rm, hmaster
cdh-02: nn, rm, hmaster
cdh-03: dn, nm, zk, jn, rs
cdh-04: dn, nm, zk, jn, rs
cdh-05: dn, nm, zk, jn, rs
cdh-client: hive, spark, hue, jhs-httpfs, hbase-thriftserver, mysql

( -- 我感觉读这篇文章的你肯定能猜到上面的缩写是什么呢。 )

部署细节

我使用 ansible 部署这套 cdh 集群的时候,遇到的难题主要是如何令到整个部署过程更加顺滑。

这里面其实就是 ansible 的使用哲学,主机组的定义以及 role 的编排。

这里面我目前想到的是两种编写 ansible 脚本的方式。

  1. 一种是一个组件一个 role 一个对应的主机组。比如,hdfs 这一个组件写成一个 role,主机组里面写 hdfs 需要的全部主机,然后 role 里面的 task 就需要写得比较复杂一点,因为不同主机安装不同的包和下发不同的配置文件。
  2. 另一种是以主机角色区分 role,主机组也是以主机角色进行编排。比如,前面两台机 cdh-0[1,2] 我定义在了 hadoop-master 和 hbase-master 的组里面,cdh-0[3,4,5] 我定义在了 hadoop-slave 和 hbase-slave 的组里面,分别对应不同的 role,role 里面的 task 就可以写得比较简单,只需要关注某一个角色的安装包和配置文件即可。

同时,每个组的配置文件所需要的变量都配置在该组的 group_vars 里面,这样做可以令到部署的条理较为清晰,便于日后维护。

除了以上还需要记录几点:

  • 使用了 kerberos 提高集群的安全性,访问数据以及提交任务都需要使用对应用户的 keytab,需搭建 krb 认证服务和 dns 服务,生成用户 keytab 和服务 keytab
  • hive 的 metastore 使用的是 remote 方式,暂时将 mysql 装在 client 节点上,是单节点,生产环境需要搭建主从可切换
  • 集群的底层资源控制使用的是 cgroup,cgroup 可以更好地将主机资源进行有效分配,任务层面的资源调度使用的是 fair-scheduler
  • 配置文件里面涉及到帐号密码等敏感信息建议使用 ansible-valut 来进行加密

安装脚本

LEUNGUU/ansible-cdh​github.com

欢迎批评指正,谢谢!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值