Spark中Broadcast的理解

廣播變量
應用場景:在提交做業後,task在執行的過程當中,
有一個或多個值須要在計算的過程當中屢次從Driver端拿取時,此時會必然會發生大量的網絡IO,
這時,最好用廣播變量的方式,將Driver端的變量的值事先廣播到每個Worker端,
之後再計算過程當中只須要從本地拿取該值便可,避免網絡IO,提升計算效率。
廣播變量在廣播的時候,將Driver端的變量廣播到每個每個Worker端,一個Worker端會收到一份僅一份該變量的值
注意:廣播的值必須是一個確切的值,不能廣播RDD(由於RDD是一個數據的描述,沒有拿到確切的值),
若是想要廣播RDD對應的值,須要將該RDD對應的數據獲取到Driver端而後再進行廣播。
廣播的數據是不可改變的。
廣播變量的數據不可太大,若是太大,會在Executor佔用大量的緩存,相對於計算的時候的緩存就少不少。緩存


相關文章
相關標籤/搜索