当SparkStream通过socket方式(TCP)获取输入的数据源时,其本身是作为客户端去连接服务器端的,并不是自己作为服务器端等待客户端发送数据给自己。
public class TestSparkStream implements Serializable{
public static void main(String[] args) throws InterruptedException {
SparkConf sparkConf = new SparkConf();
sparkConf.setMaster("local[2]");
sparkConf.setAppName("test_spark_st");
sparkConf.set("spark.ui.enabled","false");
Duration du = new Duration(5000);
JavaStreamingContext sc = new JavaStreamingContext(sparkConf,du);
//这里作为客户端,连接服务器
JavaReceiverInputDStream<String> stream = sc.socketTextStream("101.218.118.144", 9999, StorageLevel.MEMORY_ONLY());
stream.print();
sc.start();
sc.awaitTermination();
sc.stop();
}
}