Ansible实现自动decommission Hadoop node

介绍

如何用ansible的playbook实现自动decommission hadoop 的node ?

正文

  1. 对于如何部署安装ansible ,请看http://haohaozhang.blog.51cto.com/9176600/1610499
  2. hadoop部署,请看http://haohaozhang.blog.51cto.com/9176600/1607089
  3. 使用hadoop用户创建目录ansible_decom,里面的目录结构如下:
ansible_decom/
ansible_decom/roles
ansible_decom/roles/nn
ansible_decom/roles/nn/tasks
ansible_decom/roles/nn/tasks/main.yml
ansible_decom/roles/decom
ansible_decom/roles/decom/tasks
ansible_decom/roles/decom/tasks/main.yml
ansible_decom/roles/rm
ansible_decom/roles/rm/tasks
ansible_decom/roles/rm/tasks/main.yml
ansible_decom/roles/get-status
ansible_decom/roles/get-status/tasks
ansible_decom/roles/get-status/tasks/main.yml
ansible_decom/group_vars
ansible_decom/group_vars/all
ansible_decom/exclude-iplist
ansible_decom/site.yml
ansible_decom/hosts

以yml结尾的是playbook文件,其中site.yml是主文件,他会调用roles下面的子yml文件。

hosts文件定义的是主机列表。

[rmservers]
10.9.214.151
10.9.214.15
10.9.214.105
10.9.214.113
[nnservers]
10.9.214.151
10.9.214.15
10.9.214.105
10.9.214.113
[client]
10.9.214.149
[decomnodes]
10.9.214.149
10.9.214.160

exclude-iplist定义的是要decommission的主机列表。

10.9.214.160
10.9.214.149

site.yml

---
# this playbook displays decommission nodes 
- name: add node to mapred-exclude and refreshnode
  hosts: rmservers
  remote_user: hadoop
  roles: 
    - rm
- name: add node to hdfs-exclude and refreshnodes
  hosts: nnservers
  remote_user: hadoop
  roles:
    - nn
- name: stop nodemanager and datanode service
  hosts: decomnodes
  remote_user: hadoop
  roles:
    - decom
- name: get status for hosts
  hosts: client
  roles:
    - get-status

roles/decom/tasks/main.yml

---
# stop services
- name: stop nodemanager
  command: /opt/hadoop-2.6.0/sbin/yarn-daemon.sh stop nodemanager
- name: stop datanode
  command: /opt/hadoop-2.6.0/sbin/hadoop-daemon.sh stop datanode

roles/nn/tasks/main.yml

---
# step1. add decom nodes to hdfs-excluse file
# step2. refresh nodes 
- name: add decom nodes to hdfs-exclude file
  copy: src=exclude-iplist dest=/opt/hadoop-2.6.0/etc/hadoop/
- shell: cd /opt/hadoop-2.6.0/etc/hadoop/ ; cat exclude-iplist >> hdfs-exclude ; rm exclude-iplist
- name: refresh nodes
  shell: /opt/hadoop-2.6.0/bin/hdfs dfsadmin -refreshNodes

roles/rm/tasks/main.yml

---
# step1. add decom nodes to mapred-excluse file
# step2. refresh nodes 
- name: add decom nodes to mapred-exclude file
  copy: src=exclude-iplist dest=/opt/hadoop-2.6.0/etc/hadoop/
  
- shell: cd /opt/hadoop-2.6.0/etc/hadoop/ ; cat exclude-iplist >> mapred-exclude ; rm exclude-iplist
- name: refresh nodes
  shell: /opt/hadoop-2.6.0/bin/yarn rmadmin -refreshNodes

4. 执行ansible的playbook

asible-playbook -i hosts site.yml

执行若有失败会报错的。

5. 完成之后查看http://10.9.214.151:50070看Live Node和Dead Node的数目和个数是不是变了。

时间: 2024-11-25 05:40:16

Ansible实现自动decommission Hadoop node的相关文章

自动实现Hadoop Decommission shell脚本版

介绍 之前我有篇博文是介绍如何用ansible的playbook来自动化Hadoop Decommission的,本文介绍用shell脚本来实现. 脚本都放在跳板机上,远端服务器调用本地脚本完成所有操作,不需要拷贝文件到远端服务器. 正文 主脚本:decom.sh #!/bin/bash iplist=/home/hadoop/shell_scripts/iplist #1. process iplist ,append them into exclude files  # call appen

使用ansible搭建自动发布系统

[email protected] 2015-2-3 23:23:08 1. 需求描述 1.1 后台开发者的体力劳动 互联网公司的后台工程师每天大部分时间都是对着黑黑的屏幕敲命令,敲代码.编译.部署到测试环境.测试.部署到生产环境.灰度升级.临时停掉服务.临时重启服务.发现问题回滚到上一个版本等等 如果你是在做一件服务全球用户的事情,如果你的IDC就有四五十个.机器几百台,还搞的定麽? 你可能想到写脚本来解决这个问题,不幸的是写脚本会把你拉向另一个深渊.具体原因以后有时间再说 后台开发者必须用这

ansible批量自动配置Juniper

一.需求 有几台新上线的Juniper,需要批量配置下syslog,ntp,snmp基础配置 二.拓扑 三.实施步骤 1.读取配置并输出作为初步核查 2.把配置载入网络其中一台网络设备中,并做一个show | compare输出,然后做一个commit check核查,最后退出设备 3.输出一个提醒,要求输入yes 或者no.yes代表继续tasks,进入第4步;no代表退出playbook,终止程序 4.将配置输入到设备,并设定一个10分钟倒回时间 5.commit check 确认配置,停止

Ansible 部署 Node.js

目录 1.1        添加额外的源 1.2        部署一个Node.js app 1.3        运行一个Node.js app 1.4        Node.js app服务器总结. 下面我们将要在我们的服务器上配置Nodejs,启动一个简单的nodejs实例,这个服务器有很简单的架构. 开始了,首先创建一个playbook文件,我们尽量让它保持简单. --- - hosts: all   tasks: 定义一些运行这个playbook的主机,然后下面列出一系列的task

ansible实战--批量自动安装与删除zabbix agentd

想必做网站运维的,对目前主流的开源监控组件zabbix应该不陌生.它功能是很强悍,但是被监控的客户端安装agentd是一件很吃力且费时的工作.如果你管理的server数量不多还好,大不了手工1台1台的安装.相反你管理的server数量很多,不采取自动化,真的会让人做梦都会想到安装zabbix agentd. 本次实战ansible批量自动安装与卸载zabbix agentd,版本zabbix-2.0.14+centos6.4+ansible1.8.1 下面就开始吧 1.安装配置ansible工具

eclipse下安装配置hadoop(含WordCount程序测试)

这里我为大家介绍如何在windows下安装配置hadoop.,以及测试一个程序 所需要使用的插件和分别有: 一.准备工作 1.eclipse,最好是JAVAEE版本的,以为可以改变模式. 2.hadoop和eclipse的连接器: hadoop-eclipse-plugin-1.2.1.jar(这个是我所使用的,在这里可以自定义选取版本) 3.是hadoop源码包(下载最新的就可以). 将hadoop-0.20.2-eclipse-plugin.jar 复制到eclipse/plugins目录下

在Eclipse中运行、配置Hadoop

版权所有: [email protected]  严禁转载! 1.安装插件 准备程序: eclipse-3.3.2(这个版本的插件只能用这个版本的eclipse) hadoop-0.20.2-eclipse-plugin.jar (在hadoop-0.20.2/contrib/eclipse-plugin目录下) 将hadoop-0.20.2-eclipse-plugin.jar 复制到eclipse/plugins目录下,重启eclipse. 2.打开MapReduce视图 Window ->

Hadoop集群完全分布式模式环境部署和管理的5大工具

当你利用 Hadoop 进行大数据分析和处理时,首先你需要确保配置.部署和管理集群.这个即不容易也没有什么乐趣,但却受到了开发者们的钟爱.本文提供了5款工具帮助你实现. Apache Ambari Apache Ambari是对Hadoop进行监控.管理和生命周期管理的开源项目.它也是一个为Hortonworks数据平台选择管理组建的项目.Ambari向Hadoop MapReduce.HDFS. HBase.Pig, Hive.HCatalog以及Zookeeper提供服务. Apache M

自动化部署工具——Ansible二次探索

playbook简介     playbook是ansible用于配置.部署和管理被控节点的剧本,通过playbook的详细描述,执行其中的一系列tasks,可以让远程主机达到预期的状态,playbook就像Ansible控制器给被控节点列出的一系列to-do-list,而被控节点必须要完成. 也可以这样理解,pplaybook是由一个或多个"play"组成的列表.play的主要功能在于将事先归并为一组的主机装扮成事先通过ansible中的task定义好的角色.从根本上来讲所谓task