簡體   English   中英

使用Apache Spark / Apache Flink進行擴展

[英]Scaling with Apache Spark/Apache Flink

我計划一個從Apache Kafka讀取的應用程序,然后(可能很耗時)將數據保存到數據庫中。

我的情況是消息,而不是流,但是為了可伸縮性,我正在考慮將其插入Spark或Flink,但無法掌握它們的擴展程度:當我的應用程序作為Spark / Flink的一部分時,應該從Kafka中讀取一些數據嗎?然后退出還是繼續閱讀?

然后,Spark / Flink將如何決定它們必須生成更多應用程序實例以提高吞吐量?

謝謝!

在Apache Flink中,您可以通過設置env.setParallelism(#parallelism)來使所有運算符與#parallelism並行實例一起運行來定義操作的並行性,甚至可以為每個運算符定義/覆蓋它,例如dataStream.map(...).setParallelism(#parallelism);

有關更多信息,請檢查Flink docs https://ci.apache.org/projects/flink/flink-docs-release-1.3/dev/parallel.html

關於從Kafa讀取內容,您可以定義並行接收器(同一組),以使用Kafka主題分區按比例放大/縮小: env.addSource(kafkaConsumer).setParallelism(#topicPartitions)

查看Kafka文檔以獲取有關Kafka主題,分區和使用者組的更多信息: https : //kafka.apache.org/documentation/

請注意,如果您未在Flink程序中指定並行度級別,而是將其部署在本地Flink群集上。 將使用配置文件flinkDir/conf/flink-conf.yamlparallelism.default參數的值。 除非您通過-p指定它,如./bin/flink run .... -p #parallelism 檢查Flink cli選項

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM