zoukankan      html  css  js  c++  java
  • Spark 分布式调试工具


     0. 说明

      编写工具类,考察 Spark 分布式程序的执行地点


    1. 工具类编写

      [ JMX ]

      Java Management Extend , Java 管理扩展服务。

      主要用于运维和监控。

      【测试 JMX】

      开启 nc,参考 [Linux] nc

    nc -lk 8888

      通过 Client 模式运行 Spark

    spark-shell --master spark://s101:7077  --deploy-mode client

      在 Spark Shell 下通过 :paste 执行以下代码

    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+")" + "
    "
    
    //发送数据给nc 服务器
    val sock = new java.net.Socket("s101" , 8888)
    val out = sock.getOutputStream
    out.write(info.getBytes())
    out.flush()
    out.close()
    }

      再执行以下命令

    sendInfo(this, "method001" , "argument001")

      在 nc 端监听到的数据如下

      

         IP                     进程id    线程     对象id                              方法(参数 )


    2. WordCount

      通过 Client 模式运行 Spark

    spark-shell --master spark://s101:7077  --deploy-mode client

      在 Spark Shell 下通过 :paste 执行以下代码

    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 监听到的数据(参考  [Linux] nc

       


    且将新火试新茶,诗酒趁年华。
  • 相关阅读:
    静态字段==全局变量
    异常处理原则
    结合冒泡排序学习委托和事件系列一
    Linq详解
    linq的延迟执行和立即执行
    统计一个目录下所有.cs文件的行数
    Multicast委托和Observer模式——委托系列二
    usb设备插入电脑,电脑显示MTP带有黄色感叹号,(Windows已找到设备的去驱动程序,但在尝试安装他们时遇到错误),解决办法
    博客地址变更
    Flex在线阅读 FlexBook FlexPaper
  • 原文地址:https://www.cnblogs.com/share23/p/9783419.html
Copyright © 2011-2022 走看看