Pulsar adaptor for Apache Spark
Le récepteur Spark Streaming pour Pulsar est un récepteur personnalisé qui permet à Apache Spark Streaming de recevoir des données de Pulsar.
Une application peut recevoir des données au format Resilient Distributed Dataset (RDD) via le récepteur Spark Streaming de Pulsar et peut les traiter de différentes façons.
Prerequisites
Pour utiliser le récepteur, il faut inclure une dépendance à la bibliothèque pulsar-spark
dans votre configuration Java.
Maven
Si vous utilisez Maven, ajoutez ceci à votre pom.xml
:
<!-- in your <properties> block -->
<pulsar.version>2.7.1</pulsar.version>
<!-- in your <dependencies> block -->
<dependency>
<groupId>org.apache.pulsar</groupId>
<artifactId>pulsar-spark</artifactId>
<version>${pulsar.version}</version>
</dependency>
Gradle
Si vous utilisez Gradle, ajoutez ceci à votre fichier build.gradle
:
def pulsarVersion = "2.7.1"
dependencies {
compile group: 'org.apache.pulsar', name: 'pulsar-spark', version: pulsarVersion
}
Usage
Pour utiliser le receiver de Pulsar, il faut passer une instance de SparkStreamingPulsarReceiver
à la méthode receiverStream
de JavaStreamingContext
:
String serviceUrl = "pulsar://localhost:6650/";
String topic = "persistent://public/default/test_src";
String subs = "test_sub";
SparkConf sparkConf = new SparkConf().setMaster("local[*]").setAppName("Pulsar Spark Example");
JavaStreamingContext jsc = new JavaStreamingContext(sparkConf, Durations.seconds(60));
ConsumerConfigurationData<byte[]> pulsarConf = new ConsumerConfigurationData();
Set<String> set = new HashSet<>();
set.add(topic);
pulsarConf.setTopicNames(set);
pulsarConf.setSubscriptionName(subs);
SparkStreamingPulsarReceiver pulsarReceiver = new SparkStreamingPulsarReceiver(
serviceUrl,
pulsarConf,
new AuthenticationDisabled());
JavaReceiverInputDStream<byte[]> lineDStream = jsc.receiverStream(pulsarReceiver);
For a complete example, click here. In this example, the number of messages that contain the string "Pulsar" in received messages is counted.