如何使用Ansible清除Hadoop YARN缓存?

时间:2017-08-17 15:24:01

标签: hadoop ansible ansible-2.x

我想删除Hadoop集群中的所有缓存文件夹。我已经写下了一些步骤,但我不确定如何继续使用Ansible脚本。总的来说,我理解Ansible,但是我对我应该使用哪些模块感到困惑。

步骤:

  1. 停止YARN服务。

    $ sudo service hadoop-mapreduce-historyserver stop
    $ sudo service hadoop-yarn-resourcemanager stop
    $ sudo service hadoop-yarn-nodemanager stop
    
  2. 登录所有节点并删除用户缓存目录的内容。例如:

    for i in cat list_of_nodes_in_cluster; do ssh $i rm -rf
    /prod/HDOP/data/13/daas.na/yarn/nm/usercache/*; done
    
  3. 验证所有节点中的所有用户缓存目录是否为空。

  4. 启动YARN服务。

    $ sudo service hadoop-mapreduce-historyserver start
    $ sudo service hadoop-yarn-resourcemanager start
    $ sudo service hadoop-yarn-nodemanager start
    
  5. 发送消息" YARN缓存已被刷新。"到我们的小组ID。

1 个答案:

答案 0 :(得分:0)

您可以使用此Ansible剧本来执行您的任务。

  1. 停止YARN服务。

    - name: service hadoop-mapreduce-historyserver stop
      service: 
        name: hadoop-mapreduce-historyserver
        state: stopped
    
    - name: service hadoop-yarn-resourcemanager stop
      service: 
        name: hadoop-yarn-resourcemanager
        state: stopped
    
    - name: service hadoop-yarn-nodemanager stop
      service: 
        name: hadoop-yarn-nodemanager
        state: stopped
    
  2. 登录所有节点并删除用户缓存目录的内容。

    - name: delete the content of the usercache directories
       file: path="{{ item }}" state=absent
       with_fileglob:
           - /prod/HDOP/data/13/daas.na/yarn/nm/usercache/*
    
  3. 验证所有节点中的所有用户缓存目录是否为空。

      - name:  Verify all usercache directories are empty.
        shell: /usr/bin/ls ~/soniya/ | wc -l
        register: total_size
    
      - debug:
             msg: "Directory total size is {{ total_size.stdout_lines }}"
            when: total_size.rc == 0
    
  4. 启动YARN服务。

    - name: service hadoop-mapreduce-historyserver start
      service: 
        name: hadoop-mapreduce-historyserver
        state: started
    
    - name: service hadoop-yarn-resourcemanager start
      service: 
        name: hadoop-yarn-resourcemanager
        state: started
    
    - name: service hadoop-yarn-nodemanager start
      service: 
        name: hadoop-yarn-nodemanager
        state: started
    
    1. 将按摩发送至" YARN Cache已刷新"到我们的小组ID

      您可以使用邮件模块。