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()
}
}
如何实现使用此代码捕获的数据包接收器的火花?
我建议你包括相关的代码示例,并提供你想要达到什么样的更清晰的说明。 –
下面是使用Jnetpcap库捕获数据包的scala代码的链接:https://github.com/swe0523/PacketCapture-in-Spark/blob/master/src/main/scala/PacketCapture1.scala如何实现火花接收器为使用此代码捕获的数据包? – user3823859