Apache spark 火花流分割
我们正在使用Kafka和Spark流媒体处理贸易数据。 我们从卡夫卡接收avro格式[键,字节[]]的数据。我们对数据进行反序列化,并将其进一步发送以进行处理。我们正在spark流媒体应用程序中使用数据流。 我们需要根据接收到的avro记录中的密钥对数据进行分区。因此,每当我们以流的形式从卡夫卡接收数据时,它都应该将记录发送给指定的执行者 我们可能从卡夫卡那里收到10种不同类型的钥匙。 因此,所有带有key1的记录都应该转到Node1,key2应该转到Node2,以此类推 作为接收到的流数据,我们映射到RDD而不是PAIRDDApache spark 火花流分割,apache-spark,apache-kafka,spark-streaming,Apache Spark,Apache Kafka,Spark Streaming,我们正在使用Kafka和Spark流媒体处理贸易数据。 我们从卡夫卡接收avro格式[键,字节[]]的数据。我们对数据进行反序列化,并将其进一步发送以进行处理。我们正在spark流媒体应用程序中使用数据流。 我们需要根据接收到的avro记录中的密钥对数据进行分区。因此,每当我们以流的形式从卡夫卡接收数据时,它都应该将记录发送给指定的执行者 我们可能从卡夫卡那里收到10种不同类型的钥匙。 因此,所有带有key1的记录都应该转到Node1,key2应该转到Node2,以此类推 作为接收到的流数据,我
请告知我们是否可以根据从kafka收到的记录的密钥配置分区。如果我有此要求,我会首先记住一些概念-
如果你还想获得更多的控制权,可以考虑使用简单的微服务,而不是Spark streaming。如果我有这个要求,我会首先记住一些概念-
如果你还想获得更多的控制权,可以考虑使用简单的微服务,而不是Spark streaming。阿披舍克所说的是正确的。在发送数据时,你需要使用基于密钥的分区器,并拥有足够数量的分区,以便属于每个密钥的数据最终都位于一个分区中。 在spark stream中使用direct stream方法,因为这将产生为kafka主题中的分区提供服务器所需数量的使用者。
spark中的每个分区都有kafka的相应分区中存在的数据。但是我们不能指定某个特定的分区应由特定的节点处理。阿披舍克所说的是正确的。在发送数据时,您需要使用基于密钥的分区器,并拥有足够数量的分区,以便属于每个密钥的数据最终都位于一个分区中。 在spark stream中使用direct stream方法,因为这将产生为kafka主题中的分区提供服务器所需数量的使用者。 spark中的每个分区都有kafka的相应分区中存在的数据。但是我们不能指定一个特定的分区应该由一个特定的节点来处理