zoukankan      html  css  js  c++  java
  • Spark远程调试函数

    Spark远程调试函数

    1、sendInfo

    该函数用于分布式程序的调试,非常方便,在spark的rdd操作中嵌入sendInfo,启动nc服务器后,可以收集到所有需要的运行时信息,该函数可以捕获host、进程id、线程名称等主要的信息。

    2、函数实现

    def sendInfo(obj: Object, m: String, param: String) = {
        import java.net.InetAddress
        import java.lang.management.ManagementFactory
        val ip = InetAddress.getLocalHost.getHostAddress
        val pid = ManagementFactory.getRuntimeMXBean.getName.split("@")(0)
        val tname = Thread.currentThread().getName
        val classname = obj.getClass.getSimpleName
        val objHash = obj.hashCode()
        val info = ip + "/" + pid + "/" + tname + "/" + classname + "@" + objHash + "/" + m + "(" + param + ")" + "
    "
    
        //发送数据给nc 服务器
        val sock = new java.net.Socket("s101", 8888)
        val out = sock.getOutputStream
        out.write(info.getBytes())
        out.flush()
        out.close()
    }
    

    3、使用函数

    1. 启动nc服务器

      $>nc -lk 8888
      
    2. 使用sendInfo发送信息

      $>sparks-shell
      $scala>sc.makeRDD(1 to 10 , 5).map(e=>{sendInfo(this , "map" , e + "") ; e}).collect
      
  • 相关阅读:
    JDK5的新特性
    反射(一)类加载器、反射、动态代理
    泛型(五)
    spring自定义注解实现登陆拦截器
    java国际化
    Codeforces 231A
    Codeforces 231A
    CCF CSP 201909-2 小明种苹果(续)
    CCF CSP 201909-2 小明种苹果(续)
    CCF CSP 201909-1 小明种苹果
  • 原文地址:https://www.cnblogs.com/xupccc/p/9800355.html
Copyright © 2011-2022 走看看