一、概述
Alluxio, formerly Tachyon, enables any application to interact with any data from any storage system at memory speed.
From http://www.alluxio.org/
Alluxio,原名為 Tachyon,使任何應用以內存級速度進行文件系統上的數據交換。
二、安裝與配置
2.1 解壓
tar -xzf alluxio-1.4.0-bin.tar.gz
cd alluxio-1.4.0
2.2 配置
從模板文件中創建 conf/alluxio-env.sh
,也可通過命令配置:
./bin/alluxio bootstrapConf localhost
三、運行
3.1 單機啟動 Alluxio
3.1.1 格式化
格式化 Alluxio 為啟動 Alluxio 做准備。如下命令會格式化Alluxio的日志和worker存儲目錄,以便接下來啟動master和worker。
./bin/alluxio format
3.1.2 本地啟動
Alluxio 默認配置成在 localhost 啟動 master 和 worker 。使用如下命令在 localhost 啟動 Alluxio:
./bin/alluxio-start.sh local
3.1.3 驗證啟動
http://localhost:19999 --》 查看 Alluxio master 的運行狀態
http://localhost:30000 --》 查看 Alluxio worker 的運行狀態
或者,在運行命令 jps
,查看當前 java 進程中 AlluxioMaster、AlluxioWorker 信息。
3.2 集群運行 Alluxio
3.2.1 集群內節點的配置
為使集群的 master 與 worker 方便溝通,需要對 ssh 進行配置。
首先,在將要運行 master 的節點上通過如下命令生成相應公私鑰。
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 0600 ~/.ssh/authorized_keys
其次,將此處生成的 authorized_keys 分發到集群的 workers 中,放在 worker的 ~/.ssh/authorized_keys
然后,修改好所有節點的 /etc/hosts
文件,為各個節點取別名,方便溝通。
再者,修改 master 的配置文件 ./conf/alluxio-env.sh
,有三個關鍵點:
export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64 # java 的安裝目錄
export ALLUXIO_HOME=/root/alluxio # alluxio 的安裝目錄
export ALLUXIO_MASTER_HOSTNAME=master # 我的 host 文件中有一條記錄,“[master節點的ip] master”記錄
隨后,修改 master 的配置文件 ./conf/workers
:(workers 的別名,需要在 host 文件上配置,才能被解析)
最后,將 master 節點上的配置分發到各個 worker 節點上。使用如下命令
./bin/alluxio copyDir
如 ./bin/alluxio copyDir ./conf/workers
即可將該文件分發到各個節點的相同目錄下。需要保持一致的文件有:./conf/workers
全部配置,./conf/alluxio-env.sh
中的部分配置
更一般的,你甚至可以無需在 worker 節點上安裝 alluxio ,而是通過 ./bin/alluxio copyDir .
,將本節點上的 alluxio 目錄分發到各個節點上。
3.2.2 在集群內運行
上述配置完成后,即可在 master 上通過命令 ./bin/alluxio format
,./bin/alluxio-start.sh all Mount
在集群內運行 Alluxio。
同樣的,你可以通過 jps 去檢查運行狀態。
- master 上:出現 proxy、master
- worker 上:出現 proxy、worker
使用./bin/alluxio-start.sh all
停止運行 Alluxio。
3.2.3 錯誤
在集群內運行的時候,可能會出現 worker 啟動不了的問題。表現為 master 上的 AlluxioMaster、AlluxioProxy 正在運行,且通過 stop 命令無法關閉。
解決:我是通過查找到這兩個命令運行的父進程 id ,然后將父進程殺掉,再按 3.2.2 的命令。
3.3 文件系統操作
相關命令見:http://www.alluxio.org/docs/1.4/cn/Command-Line-Interface.html