Spark 分布式调试工具
生活随笔
收集整理的這篇文章主要介紹了
Spark 分布式调试工具
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
?0. 說明
編寫工具類,考察 Spark 分布式程序的執(zhí)行地點
?
?
1. 工具類編寫
[ JMX ]
Java Management Extend , Java 管理擴展服務(wù)。
主要用于運維和監(jiān)控。
?
【測試 JMX】
?
開啟 nc,參考?[Linux] nc
?
nc -lk 8888?
?
通過 Client 模式運行 Spark
spark-shell --master spark://s101:7077 --deploy-mode client?
在 Spark Shell 下通過 :paste 執(zhí)行以下代碼
?
def sendInfo(obj:Object ,m:String , param:String)= { val ip = java.net.InetAddress.getLocalHost.getHostAddress val pid = java.lang.management.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"//發(fā)送數(shù)據(jù)給nc 服務(wù)器 val sock = new java.net.Socket("s101" , 8888) val out = sock.getOutputStream out.write(info.getBytes()) out.flush() out.close() }?
?
再執(zhí)行以下命令
sendInfo(this, "method001" , "argument001")?
在 nc 端監(jiān)聽到的數(shù)據(jù)如下
IP? ? ? ? ? ? ? ? ? ? ?進程id? ? 線程? ? ?對象id? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 方法(參數(shù) )
?
?
?
?
2. WordCount
通過 Client 模式運行 Spark
spark-shell --master spark://s101:7077 --deploy-mode client?
在 Spark Shell 下通過 :paste 執(zhí)行以下代碼
val rdd1 = sc.textFile("/user/centos/data/11.txt" , 4) val rdd2 = rdd1.flatMap(line=>{ sendInfo(this , "flatMap" , line) line.split(" ")} ) val rdd3 = rdd2.map(word=>{ sendInfo(this , "map" , word) (word,1) }) val rdd4 = rdd3.reduceByKey((a,b)=>{ sendInfo(this, "reduceByKey", a + "," + b) a + b }) val arr = rdd4.collect()?
nc 監(jiān)聽到的數(shù)據(jù)(參考? [Linux] nc)
?
?
?
?
?
轉(zhuǎn)載于:https://www.cnblogs.com/share23/p/9783419.html
總結(jié)
以上是生活随笔為你收集整理的Spark 分布式调试工具的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: jQuery 选择器和筛选器
- 下一篇: 闭环思维之follow through和