1. 程式人生 > >"Spark 1.6 + Alluxio 1.2 HA + OFF_HEAP" 的配置

"Spark 1.6 + Alluxio 1.2 HA + OFF_HEAP" 的配置

2、將alluxio-core-client-spark-1.2.0-jar-with-dependencies.jar、 spark-alluxio-blockstore.jar 放到所有Spark節點的lib目錄下。並在 conf/spark-env.sh 的 SPARK_CLASSPATH 環境變數中加上這兩個jar的路徑,Spark 叢集中所有的節點都需要這樣配置。

echo 'export SPARK_CLASSPATH=/usr/spark-1.6.0/lib/alluxio-core-client-spark-1.2.0-jar-with-dependencies.jar:$SPARK_CLASSPATH'
>> conf/spark-env.sh echo 'export SPARK_CLASSPATH=/usr/spark-1.6.0/lib/ spark-alluxio-blockstore.jar:$SPARK_CLASSPATH' >> conf/spark-env.sh

3、在conf目錄下建立 alluxio-site.properties,並新增如下內容:

alluxio.zookeeper.enabled=true
alluxio.zookeeper.address=192.168.1.151:2181

3、在 conf/spark-defaults.conf 修改 spark.externalBlockStore 的相關配置,如下:

spark.externalBlockStore.blockManager org.apache.spark.storage.AlluxioBlockManager
spark.externalBlockStore.subDirectories 8
spark.externalBlockStore.url alluxio-ft://unknown:19998 //此處可以任意的主機名和任意埠
spark.externalBlockStore.baseDir /tmp_spark_alluxio

三、測試

1、以檔案方式訪問

val file = sc.textFile("/home/hadoop/sample-1g"
) //此處可以任意的主機名和任意埠 file.saveAsTextFile("alluxio-ft://unknown:19998/sample-1g") val alluxioFile = sc.textFile("alluxio-ft://unknown:19998/sample-1g") alluxioFile.count()

2、呼叫RDD的persist,並使用OFF_HEAP進行資料快取
在 spark-shell 中執行下面的測試程式碼:

val file = sc.textFile("/home/hadoop/sample-1g",4)
file.persist(org.apache.spark.storage.StorageLevel.OFF_HEAP)
file.count()

6、檢視 Alluxio 中的快取情況
這裡寫圖片描述
從上面的圖片中可以看到,已經快取到Alluxio中了。

由於這個是開源的方案,所以在應用到真實環境之前,大家還是要多測試測試。