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 + ")" + "\r\n" //发送数据给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

最新文章

  1. 5.Struts.xml标签中的一些小技巧
  2. Singleton<T>
  3. AndroidStudio-OSX 常用快捷键整理
  4. 关于报malformed or corrupted AST file: 'Unable to load module 的错~
  5. Java [leetcode 14] Longest Common Prefix
  6. 百度地图LBS云平台读写数据操作类
  7. Esper学习之六:EPL语法(二)
  8. js 计时器小练-20160601
  9. 系统装机硬盘格式 >> GPT或者UEFI
  10. ext4 关闭延迟分配
  11. Java语法细节 - 可见性
  12. Mysql 常用数据类型
  13. Docker使用札记 - 使用中遇到的问题总结
  14. Redis和RabbitMQ在项目中的使用
  15. PostgreSQL存储过程<转>
  16. 树莓派获取ip地址发送到邮箱
  17. 一款纯css3实现的机器人看书动画效果
  18. jQuqery append 和 after 区别
  19. MS Sql Server 中主从库的配置和使用介绍
  20. linux 的命令 -exec 的使用

热门文章

  1. git 合并某个提交commit到指定的分支上
  2. kafkaconsumer SimpleExample
  3. 第一章javascript简介
  4. Linpack之HPL测试
  5. java lamda
  6. [inner] bug
  7. 性能测试工具LoadRunner22-LR之Analysis 简介
  8. Python collections
  9. 搭建mysql集群,使用Percona XtraDB Cluster搭建
  10. 最新版本dede与discuz通过ucenter完美整合