Пакетный интервал для создания СДР - PullRequest
0 голосов
/ 14 января 2019

Чтобы создать СДР в Spark Streaming, как мне оценить правильный интервал между партиями, чтобы мои СДР не были ни слишком короткими, ни слишком длинными?

открытый класс FirstSparkApplication {

public static void main(String[] args) throws InterruptedException {
    SparkConf conf = new SparkConf().setMaster("local[*]").setAppName("FirstSparkApplication");
    JavaStreamingContext jssc = new JavaStreamingContext(conf, Durations.seconds(5));
    jssc.checkpoint("checkpoint_dir");
    Logger.getRootLogger().setLevel(Level.ERROR);
    JavaReceiverInputDStream<String> lines = jssc.socketTextStream("localhost", 9999);
    lines.flatMap(line -> Arrays.asList(line.split(" ")).iterator())
        .mapToPair(line -> new Tuple2<>(line, 1))
        .updateStateByKey((values, currentState) -> {
            int sum = (int) currentState.or(0);
            for (int i: values) {
                sum += i;
            }
            return Optional.of(sum);
        })
        .print();
    jssc.start();
    jssc.awaitTermination();
    jssc.close();
}

}

Я пытаюсь создать приложение Spark Streaming, которое получает данные из источника netcat и создает RDD. Однако я не знаю, как правильно создать интервал между партиями. Образец кода, который я привел здесь, подходит для простого использования, но в случае больших наборов данных мне нужно оценить наиболее оптимальный интервал для создания СДР. Итак, как мне это вычислить?

...