2014-07-10 34 views
1

我一直在试图为SPARK 0.9实现接收器。我使用Jnetpcap库捕获数据包,并需要将它传递给Scala中的Spark。在“def receive()”方法中写入数据包的捕获部分足够了吗?在SPARK中实现接收器

编辑:这里是this link代码使用Jnetpcap库捕获数据包:

import java.util.Date 
import java.lang.StringBuilder 
import org.jnetpcap.Pcap 
import org.jnetpcap.packet.PcapPacket 
import org.jnetpcap.packet.PcapPacketHandler 

object PacketCapture1 { 
    def main(args: Array[String]){ 
    val snaplen = 64 * 1024 // Capture all packets, no trucation 
    val flags = Pcap.MODE_PROMISCUOUS // capture all packets 
    val timeout = 10 * 1000 
    //val errbuf = new StringBuilder() 

    val jsb = new java.lang.StringBuilder() 
    val errbuf = new StringBuilder(jsb); 
    val pcap = Pcap.openLive("eth0", snaplen, flags, timeout, errbuf) 
    if (pcap == null) { 
     println("Error : " + errbuf.toString()) 
    } 
    println(pcap) 
    val jpacketHandler = new PcapPacketHandler[String]() { 

     def nextPacket(packet: PcapPacket, user: String) { 
     println("Received packet at %s caplen=%4d len=%4d %s\n", new Date(packet.getCaptureHeader.timestampInMillis()), 
      packet.getCaptureHeader.caplen(), packet.getCaptureHeader.wirelen(), user) 
     } 
    } 
    pcap.loop(30, jpacketHandler, "jNetPcap works!") 
    pcap.close() 

    } 
} 

如何实现使用此代码捕获的数据包接收器的火花?

+0

我建议你包括相关的代码示例,并提供你想要达到什么样的更清晰的说明。 –

+1

下面是使用Jnetpcap库捕获数据包的scala代码的链接:https://github.com/swe0523/PacketCapture-in-Spark/blob/master/src/main/scala/PacketCapture1.scala如何实现火花接收器为使用此代码捕获的数据包? – user3823859

回答

相关问题