1. 利用一个spark receiver 接收多个flume agent
String host = args[0];
int port = Integer.parseInt(args[1]);
String host1 = args[2];
int port1 = Integer.parseInt(args[3]);
InetSocketAddress address1 = new InetSocketAddress(host,port);
InetSocketAddress address2 = new InetSocketAddress(host1,port1);
InetSocketAddress[] InetSocketAddressArray = {address1,address2};
JavaStreamingContext jssc = new JavaStreamingContext(new SparkConf().setAppName("JavaFlumeEventHandle_1"), Durations.seconds(2));
JavaReceiverInputDStream<SparkFlumeEvent> flumeStream = FlumeUtils.createPollingStream(jssc, InetSocketAddressArray, StorageLevel.MEMORY_AND_DISK_SER_2());
2. 2个spark receiver接收多个flume agent
String host = args[0];
int port = Integer.parseInt(args[1]);
String host1 = args[2];
int port1 = Integer.parseInt(args[3]);
InetSocketAddress address1 = new InetSocketAddress(host,port);
InetSocketAddress address2 = new InetSocketAddress(host1,port1);
InetSocketAddress[] InetSocketAddressArray = {address1,address2};
JavaStreamingContext jssc = new JavaStreamingContext(new SparkConf().setAppName("JavaFlumeEventHandle_1"), Durations.seconds(2));
// JavaReceiverInputDStream<SparkFlumeEvent> flumeStream = FlumeUtils.createPollingStream(jssc, InetSocketAddressArray, StorageLevel.MEMORY_AND_DISK_SER_2());
JavaReceiverInputDStream<SparkFlumeEvent> flumeStream = FlumeUtils.createPollingStream(jssc,host,port);
JavaReceiverInputDStream<SparkFlumeEvent> flumeStream1 = FlumeUtils.createPollingStream(jssc, host1, port1);
JavaDStream<SparkFlumeEvent> union = flumeStream.union(flumeStream1);
性能参照:
http://blog.sina.com.cn/s/blog_13122bdbc0102vay7.html
本文转自http://blog.youkuaiyun.com/kntao/article/details/44943267,所有权力归原作者所有。

本文介绍使用Spark Streaming通过两种不同方式从多个Flume agent接收数据的方法。一种方式是使用单个Spark Receiver来监听多个Flume agent;另一种则是创建两个独立的Spark Receiver,分别连接到不同的Flume agent,并将接收到的数据流进行合并。

517

被折叠的 条评论
为什么被折叠?



