Spark的優勢在於內存計算,然而在計算中難免會用到一些元數據或中間數據,有的存在關係型數據庫中, Redis基於內存的讀寫則可以完美解決此類問題。在Pyspark計算的時候如何將數據 寫入Redis中,除了官方的英文文檔,相關的介紹不多。下面介紹基於Yarn的Pypark如何與Redis交互。
首先把redis包引入工程,這樣就不需要在集群裡每臺機器上安裝redis客戶端了。
$pip3 install redis
$cd /usr/local/lib/python3.4/dist-packages
$zip -r redis.zip redis/*
$hadoop fs -put redis.zip /user/data/
然後就可以在代碼裡使用 addPyFile加載redis.zip了。
運行:
$SPARK_HOME/bin/spark-submit \
--conf spark.yarn.submit.waitAppCompletion=true \
--master yarn-cluster \
--num-executors 4 \
--driver-memory 32G \
--executor-memory 32G \
--executor-cores 4 \
--queue root.default \
/opt/spark_redis.py
相關推薦
'Redis:Redis數據持久化,及實現方式'
"我們的Redis必須使用數據持久化嗎?如果我們的Redis服務器只作為緩存使用,Redis中存儲的所有數據都是從其他地方同步過來的備份,那麼就沒必要開啟數據持久化的選項。Redis提供了將數據定期自動持久化至硬盤的能力,包括RDB和AOF兩種方案,兩種方案分別有其長處和短...
Redis緩存和MySQL數據一致性方案
在高併發的業務場景下,數據庫大多數情況都是用戶併發訪問最薄弱的環節。所以,就需要使用redis做一個緩衝操作,讓請求先訪問到redis,而不是直接訪問M...
Redis 如何保持和 MySQL 數據一致
1.MySQL持久化數據,Redis只讀數據2.MySQL和Redis處理不同的數據類型幾個例子在高併發下解決場景二要注意的問題1.MySQL持久化數據,...
BloomFilter(大數據去重)+Redis(持久化)策略
背景之前在重構一套文章爬蟲系統時,其中有塊邏輯是根據文章標題去重,原先去重的方式是,插入文章之前檢查待插入文章的標題是否在ElasticSearch中存在,這無疑加重了ElasticSearch的負擔也勢必會影響程序的性能!BloomFilter算法簡介:布隆過濾器實際上是...
推薦中...