Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java ApacheSpark可以使用TCP侦听器作为输入吗?_Java_Apache Spark_Spark Streaming - Fatal编程技术网

Java ApacheSpark可以使用TCP侦听器作为输入吗?

Java ApacheSpark可以使用TCP侦听器作为输入吗?,java,apache-spark,spark-streaming,Java,Apache Spark,Spark Streaming,ApacheSpark可以使用TCP侦听器作为输入吗?如果是的话,也许有人有java代码的例子,可以执行这个操作 我试图找到有关的示例,但所有教程都说明了如何通过TCP定义到数据服务器的输入连接,而不是使用等待传入数据的TCP侦听器。是的,可以使用Spark侦听TCP端口并处理任何输入数据。你要找的是 在和中有一个侦听TCP源的小指南。为方便起见: import org.apache.spark.*; import org.apache.spark.api.java.function.*; im

ApacheSpark可以使用TCP侦听器作为输入吗?如果是的话,也许有人有java代码的例子,可以执行这个操作


我试图找到有关的示例,但所有教程都说明了如何通过TCP定义到数据服务器的输入连接,而不是使用等待传入数据的TCP侦听器。

是的,可以使用Spark侦听TCP端口并处理任何输入数据。你要找的是

在和中有一个侦听TCP源的小指南。为方便起见:

import org.apache.spark.*;
import org.apache.spark.api.java.function.*;
import org.apache.spark.streaming.*;
import org.apache.spark.streaming.api.java.*;
import scala.Tuple2;

// Create a local StreamingContext with two working thread and batch interval of 1 second
SparkConf conf = new SparkConf().setMaster("local[2]").setAppName("NetworkWordCount");
JavaStreamingContext jssc = new JavaStreamingContext(conf, Durations.seconds(1));

// Create a DStream that will connect to hostname:port, like localhost:9999
JavaReceiverInputDStream<String> lines = jssc.socketTextStream("localhost", 9999);

// Split each line into words
JavaDStream<String> words = lines.flatMap(x -> Arrays.asList(x.split(" ")).iterator());

// Count each word in each batch
JavaPairDStream<String, Integer> pairs = words.mapToPair(s -> new Tuple2<>(s, 1));
JavaPairDStream<String, Integer> wordCounts = pairs.reduceByKey((i1, i2) -> i1 + i2);

// Print the first ten elements of each RDD generated in this DStream to the console
wordCounts.print();

jssc.start();              // Start the computation
jssc.awaitTermination();   // Wait for the computation to terminate
import org.apache.spark.*;
导入org.apache.spark.api.java.function.*;
导入org.apache.spark.streaming.*;
导入org.apache.spark.streaming.api.java.*;
导入scala.Tuple2;
//创建具有两个工作线程和1秒批处理间隔的本地StreamingContext
SparkConf conf=new SparkConf().setMaster(“local[2]”)。setAppName(“NetworkWordCount”);
JavaStreamingContext jssc=新的JavaStreamingContext(conf,Durations.seconds(1));
//创建一个将连接到hostname:port的数据流,如localhost:9999
JavaReceiverInputdStreamLines=jssc.socketTextStream(“localhost”,9999);
//把每行分成几个字
JavaDStream words=lines.flatMap(x->Arrays.asList(x.split(“”).iterator());
//计算每批中的每个单词
JavaPairDStream pairs=words.mapToPair(s->newtuple2(s,1));
JavaPairDStream wordCounts=pairs.reduceByKey((i1,i2)->i1+i2);
//将此数据流中生成的每个RDD的前十个元素打印到控制台
wordCounts.print();
jssc.start();//开始计算
jssc.awaitTermination();//等待计算结束

是的,可以使用Spark监听TCP端口并处理任何输入数据。你要找的是

在和中有一个侦听TCP源的小指南。为方便起见:

import org.apache.spark.*;
import org.apache.spark.api.java.function.*;
import org.apache.spark.streaming.*;
import org.apache.spark.streaming.api.java.*;
import scala.Tuple2;

// Create a local StreamingContext with two working thread and batch interval of 1 second
SparkConf conf = new SparkConf().setMaster("local[2]").setAppName("NetworkWordCount");
JavaStreamingContext jssc = new JavaStreamingContext(conf, Durations.seconds(1));

// Create a DStream that will connect to hostname:port, like localhost:9999
JavaReceiverInputDStream<String> lines = jssc.socketTextStream("localhost", 9999);

// Split each line into words
JavaDStream<String> words = lines.flatMap(x -> Arrays.asList(x.split(" ")).iterator());

// Count each word in each batch
JavaPairDStream<String, Integer> pairs = words.mapToPair(s -> new Tuple2<>(s, 1));
JavaPairDStream<String, Integer> wordCounts = pairs.reduceByKey((i1, i2) -> i1 + i2);

// Print the first ten elements of each RDD generated in this DStream to the console
wordCounts.print();

jssc.start();              // Start the computation
jssc.awaitTermination();   // Wait for the computation to terminate
import org.apache.spark.*;
导入org.apache.spark.api.java.function.*;
导入org.apache.spark.streaming.*;
导入org.apache.spark.streaming.api.java.*;
导入scala.Tuple2;
//创建具有两个工作线程和1秒批处理间隔的本地StreamingContext
SparkConf conf=new SparkConf().setMaster(“local[2]”)。setAppName(“NetworkWordCount”);
JavaStreamingContext jssc=新的JavaStreamingContext(conf,Durations.seconds(1));
//创建一个将连接到hostname:port的数据流,如localhost:9999
JavaReceiverInputdStreamLines=jssc.socketTextStream(“localhost”,9999);
//把每行分成几个字
JavaDStream words=lines.flatMap(x->Arrays.asList(x.split(“”).iterator());
//计算每批中的每个单词
JavaPairDStream pairs=words.mapToPair(s->newtuple2(s,1));
JavaPairDStream wordCounts=pairs.reduceByKey((i1,i2)->i1+i2);
//将此数据流中生成的每个RDD的前十个元素打印到控制台
wordCounts.print();
jssc.start();//开始计算
jssc.awaitTermination();//等待计算结束

Spark没有内置的TCP服务器来等待生产者和缓冲区数据。Spark通过其API库为TCP、Kafka等提供轮询机制。。要使用传入的TCP数据,您需要一个Spark可以连接的外部TCP服务器,如示例中Shaido所述。

Spark没有内置的TCP服务器来等待生产者和缓冲区数据。Spark通过其API库为TCP、Kafka等提供轮询机制。。要使用传入的TCP数据,您需要一个Spark可以连接到的外部TCP服务器,如示例中Shaido所述。

Hi,感谢您的回答,但我已经从《用户指南》中测试了这段代码。此代码连接到现有的TCP服务器,并从中接收数据。我需要TCP侦听器,它将等待数据,并从另一台服务器发送代理。@Vakhtang:您好,这段代码将侦听发送到TCP套接字的任何数据的指定端口。它将等待发送的任何数据,所以我认为这是您想要的?如果没有,你能更具体一点区别是什么吗?嗨,我再次测试这段代码。。。此代码尝试连接到现有的TCP套接字。。即使在代码中,您也可以看到注释:“创建一个将连接到hostname:port的数据流,比如localhost:9999”。如果此端口中没有服务器,您将收到错误:
连接到本地主机时出错:9999:java.net.ConnectException:连接被拒绝:connect
如果我了解情况,则没有现成的解决方案。您好,谢谢您的回答,但我已经从用户指南中测试了此代码。此代码连接到现有的TCP服务器,并从中接收数据。我需要TCP侦听器,它将等待数据,并从另一台服务器发送代理。@Vakhtang:您好,这段代码将侦听发送到TCP套接字的任何数据的指定端口。它将等待发送的任何数据,所以我认为这是您想要的?如果没有,你能更具体一点区别是什么吗?嗨,我再次测试这段代码。。。此代码尝试连接到现有的TCP套接字。。即使在代码中,您也可以看到注释:“创建一个将连接到hostname:port的数据流,比如localhost:9999”。如果此端口中没有服务器,则会收到错误:
连接到本地主机时出错:9999:java.net.ConnectException:连接被拒绝:connect
如果我了解情况,则没有现成的解决方案。