• Hadoop hadoop 机架感知配置


    机架感知脚本

    使用python3编写机架感知脚本,报存到topology.py,给予执行权限

    import sys
    import os
    
    DEFAULT_RACK="/default-rack"
    HADOOP_CONF_DIR = os.environ['HADOOP_CONF_DIR']
    FILE="topology.data"
    
    host_rack={}
    for line in open(os.path.join(HADOOP_CONF_DIR, FILE)):
        (host, rack) = line.split()
        host_rack[host] = rack
    #获取命令行的输入
    for host in sys.argv[1:]:
        if host in host_rack:
            print(host_rack[host])
        else:
            print(DEFAULT_RACK)
    

      

    topology.data文件内容如下:
    [root@test ~ 18:29:00]#cat /data3/hadoop/hadoop/etc/hadoop/topology.data 
    192.168.4.46  /dn1/rack
    192.168.4.47  /dn2/rack

    执行脚本

    [root@test script_py 18:33:38]#python topology.py 192.168.4.46 192.168.4.47 192.168.4.48
    /dn1/rack
    /dn2/rack
    /default-rack

    shell编写脚本,报存到topology.sh,给予执行权限。

    #!/bin/bash
    #HADOOP_CONF=/tmp
    while [ $# -gt 0 ] ;
    do
     nodeArg=$1
    #文件内容输入到标准输入流
     exec<${HADOOP_CONF_DIR}/topology.data
     result=""
     while read line
     do
    #把输入的每一行定义为数组
     ar=( $line )
     if [ "${ar[0]}" = "$nodeArg" ]    #||[ "${ar[1]}" = "$nodeArg" ]
         then
         result="${ar[1]}"
     fi
     done
     shift
     if [ -z "$result" ]
         then
         echo  "/default-rack"
     else
         echo  "$result"
     fi
    done
    

      

    执行脚本:

    [root@test ~ 18:35:07]#bash topology.sh 192.168.4.46 192.168.4.47 192.168.4.48
    /dn1/rack
    /dn2/rack
    /default-rack

    配置core-site.xml文件

    <property>  
      <name>topology.script.file.name</name>  
      <value>${HADOOP_CONF_DIR}/topology.sh</value>  
    </property>

      

  • 相关阅读:
    nice -n 10 bash 和 chrt 10 bash 和 echo -17 > /proc/PID/oom_score_adj
    使用NGINX+LUA实现WAF功能 和nginx 防盗链
    hdfs 通过命令坏块监测和删除或者地址获取参数做监控
    kafka 的server.properties
    ntpd服务
    kafka笔记博客
    k8s高可用
    K8S集群Master高可用实践
    String:字符串常量池
    如何设计出优秀的Restful API?
  • 原文地址:https://www.cnblogs.com/yjt1993/p/11202925.html
Copyright © 2020-2023  润新知