hadoop自定义节点上的输入分布

gz5pxeao  于 2021-06-02  发布在  Hadoop
关注(0)|答案(1)|浏览(261)

我正在开发hadoop。目标是在网络流量(网络数据包)中检测某些关键词。我使用的是一个由4个节点组成的hadoop集群。我希望每个节点对不同类型的数据包(如tcp、smtp)执行操作。如何分发数据包?

prdp8dxp

prdp8dxp1#

要根据tcp ip协议识别数据包,可以使用pcap库(jnetpcap),它具有函数pcappacket.hasheader(协议示例)
在调用hasheader函数之前应该示例化协议对象的位置
e、 g.tcp=new tcp();
udp=新建udp();
pcappacket packet=//从某处得到
if(packet.hasheader(tcp){
     //数据包是tcp
     密钥=tcp
}
else if(packet.hasheader(udp)){
     //数据包是udp
     密钥=udp
}
通过这种方式,您可以将密钥设置为协议,将值设置为(key,value)对的数据包数据,以提供给hadoop的mapreduce的reducer。
然后所有具有相同键的(键,值)对将转到一个减速机。

相关问题