基於記憶體的分散式檔案儲存系統Alluxio
如果是隻有欄位快取的話,redis應該是夠用了。但是如果涉及到大量檔案,尤其是用hdfs作為底層儲存結構的,建議用alluxio升級一下。一方面有利於spark資源控制,另一方面也可以統一入口便於擴充套件。
1 叢集規劃
三臺伺服器hadoop-master-001、hadoop-slave-001、hadoop-slave-002,節點與名稱相同。部署spark standalone叢集、hadoop standalone叢集、alluxio叢集。
2 軟體版本
jdk-8u144
scala-2.11.8
spark-2.2.0-hadoop2.7
hadoop-2.7.3
alluxio-1.8.0
3 配置
3.1 下載並解壓
root使用者下
wget http://alluxio.org/downloads/files/1.8.0/alluxio-1.8.0-bin.tar.gz
mkdir –p /app/alluxio/
tar -zxvf alluxio-1.8.0-bin.tar.gz -C /app/alluxio/
3.2 修改配置檔案alluxio-env.sh
cd /app/alluxio/alluxio-1.8.0/ conf
cp alluxio-env.sh.template alluxio-env.sh
vim alluxio-env.sh
鍵入
export JAVA_HOME=/app/soft/jdk1.8.0_144
export ALLUXIO_MASTER_HOSTNAME=hadoop-master-001
export ALLUXIO_WORKER_MEMORY_SIZE=4096M
export ALLUXIO_UNDERFS_ADDRESS=hdfs://hadoop-master-001:9000
其中第一行是JDK路徑、第二行是master的hostname(alluxio均是以hostname命名各伺服器)、第三行是worker的執行記憶體、第四行為hdfs的地址。
3.3 修改配置檔案alluxio-site.properties
# cp alluxio-site.properties.template alluxio-site.properties
vim alluxio-site.properties
鍵入
alluxio.master.hostname=hadoop-master-001
3.4 修改配置檔案workers
vim workers
鍵入
hadoop-slave-001
hadoop-slave-002
3.5 修改一點啟動小bug
為防止依賴庫的啟動java路徑錯誤,建議修改啟動指令碼$ALLUXIO_HOME/libexec/alluxio-config.sh,禁止which java檢索,而改為固定路徑。
#if [[ -z "$(which java)" ]]; then
# echo "Cannot find the 'java' command."
# exit 1
#fi
JAVA_HOME=/app/soft/jdk1.8.0_144
#JAVA_HOME=${JAVA_HOME:-"$(dirname $(which java))/.."}
3.6 複製到worker節點
scp -r /app/alluxio/ [email protected]:/app/
scp -r /app/alluxio/ [email protected]:/app/
3.7 格式化
../bin/alluxio format
3.8 啟動
../bin/alluxio-start.sh all SudoMount
3.9 檢查是否成功
可以從logs/資料夾下檢視記錄,或者web瀏覽:masterIP:19999/
3.10 Spark與alluxio連線
需要保證alluxio在各節點均為相同路徑後,在Spark目錄下conf/spark-default.conf中追加
#alluxio
spark.driver.extraClassPath /app/alluxio/alluxio-1.8.0/client/alluxio-1.8.0-client.jar
spark.executor.extraClassPath /app/alluxio/alluxio-1.8.0/client/alluxio-1.8.0-client.jar
修改完成後在shell進行測試
如在原hdfs存放一個圖片檔案在/image/out1/180129175801175-0.jpg路徑下。
從shell中讀取
val file = sc.textFile("alluxio://hadoop-master-001:19998/image/out1/180129175801175-0.jpg")
至於HA如何在Zookeeper中如何設定,官方文件寫的很清楚,自己拿去玩吧。