Spark远程调试函数
2024-08-23 10:02:33
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、使用函数
启动nc服务器
$>nc -lk 8888
使用sendInfo发送信息
$>sparks-shell
$scala>sc.makeRDD(1 to 10 , 5).map(e=>{sendInfo(this , "map" , e + "") ; e}).collect
最新文章
- 5.Struts.xml标签中的一些小技巧
- Singleton<;T>;
- AndroidStudio-OSX 常用快捷键整理
- 关于报malformed or corrupted AST file: &#39;Unable to load module 的错~
- Java [leetcode 14] Longest Common Prefix
- 百度地图LBS云平台读写数据操作类
- Esper学习之六:EPL语法(二)
- js 计时器小练-20160601
- 系统装机硬盘格式 >;>; GPT或者UEFI
- ext4 关闭延迟分配
- Java语法细节 - 可见性
- Mysql 常用数据类型
- Docker使用札记 - 使用中遇到的问题总结
- Redis和RabbitMQ在项目中的使用
- PostgreSQL存储过程<;转>;
- 树莓派获取ip地址发送到邮箱
- 一款纯css3实现的机器人看书动画效果
- jQuqery append 和 after 区别
- MS Sql Server 中主从库的配置和使用介绍
- linux 的命令 -exec 的使用