分布式内存文件系统Alluxio实战
前言
Alluxio是一个分布式内存文件系统,可以在集群里以访问内存的速度来访问存在Alluxio里的文件。把Alluxio是架构在最底层的分布式文件存储和上层的各种计算框架之间的一种中间件,其前身为Tachyon。
Alluxio起源于Alluxio公司创始人李浩源读博期间在 UC Berkeley AMPLab实验室的博士课题。自从Alluxio的第一个开源版本发布之后,项目发展迅猛。社区贡献者人数已经迅速增加到200多个,这200多人来自50多家公司,其中不乏国际巨头,例如Barclays,IBM,Intel等等。另外更多的公司将Alluxio部署到了自己的生产环境中。
官方网站:http://www.alluxio.org/
规划
master 10.64.8.3
slave 10.64.8.3、10.64.8.4、10.64.8.5
一:安装
slave1、slave2、slave3
(1)安装jdk
$ wget http:
//download
.Oracle.com
/otn-pub/java/jdk/8u112-b15/jdk-8u112-linux-x64
.
tar
.gz
$
tar
xf jdk-8u112-linux-x64.
tar
.gz -C
/opt
$ vim
/etc/profile
增加
export
JAVA_HOME=
/opt/jdk1
.8.0_112
export
PATH=$PATH:$JAVA_HOME
/bin
export
CLASSPATH=$JAVA_HOME
/lib/dt
.jar:$JAVA_HOME
/lib/tools
.jar
$
source
/etc/profile
(2)安装alluxio
$
cd
opt
$ wget http:
//downloads
.alluxio.org
/downloads/files/1
.3.0
/alluxio-1
.3.0-bin.
tar
.gz
$
tar
xf alluxio-1.3.0-bin.
tar
.gz
$
cd
alluxio-1.3.0
二:集群配置
slave1、slave2、slave3
1:使用conf/alluxio-env.sh.template复制一份配置。
$
cp
conf
/alluxio-env
.sh.template conf
/alluxio-env
.sh
#!/usr/bin/env bash
#alluxio的安装目录
ALLUXIO_HOME=
/opt/alluxio-1
.3.0
# Log目录 (默认: ${ALLUXIO_HOME}/logs).
#ALLUXIO_LOGS_DIR=/var/log/alluxio
# master的主机名
ALLUXIO_MASTER_HOSTNAME=slave1
# master节点ip,将在V2版本废弃该配置
# ALLUXIO_MASTER_ADDRESS=10.64.8.3
# worker节点保存in-memory数据的目录 (Default: /mnt/ramdisk).
#ALLUXIO_RAM_FOLDER
# 底层存储系统的地址,默认为本地文件系统 (Default: ${ALLUXIO_HOME}/underFSStorage)
#ALLUXIO_UNDERFS_ADDRESS
# worker节点的内存设置. (Default: 1GB)
ALLUXIO_WORKER_MEMORY_SIZE= 50GB
# 下面jmx的远程调试
# ALLUXIO_JAVA_OPTS
# ALLUXIO_MASTER_JAVA_OPTS
# ALLUXIO_WORKER_JAVA_OPTS
# ALLUXIO_USER_JAVA_OPTS
2:配置worker节点
$ vim conf
/workers
10.64.8.3
10.64.8.4
10.64.8.5
三:启动
(1)格式化Alluxio日志和工作程序存储目录。
slave1、slave2、slave3
$ .
/bin/alluxio
format
(2)启动master节点,使用local参数同时启动master和worker。
slave1
$ .
/bin/alluxio-start
.sh
local
(3)启动worker节点
slave2、slave3
$ .
/bin/alluxio-start
.sh worker
四:访问
(1)访问的http://localhost:19999看到Alluxio的master
(2)能看到所有alluxio中的文件。
(3)worker里面能看到所有worker的状态
(4)访问http://localhost:30000看到当前worker的信息。
五:使用alluxio命令行
(1)查看aullio,默认使用本地地址端口
$ .
/bin/alluxio
fs
ls
alluxio:
//10
.64.8.3:19999/
$ .
/bin/alluxio
fs
ls
/
(2)从本地文件系统copy文件到alluxio
$ .
/bin/alluxio
fs copyFromLocal
/opt/cassandra/conf/
/cassandra
Copied
/opt/cassandra
to
/cassandra
(3)cat命令可以输出文件内容
$ .
/bin/alluxio
fs
cat
/test
.txt
(4)从alluxio拷贝文件到本地
$ .
/bin/alluxio
fs copyToLocal
/602
.txt
/tmp/602
.txt
Copied
/602
.txt to
/tmp/602
.txt
(5)将alluxio数据持久化到本地
alluxio的数据是存在内存中的,默认使用本地的文件系统作为底层的系统,可以将alluxio中的数据持久化到本地文件系。路径由ALLUXIO_UNDERFS_ADDRESS指定,默认为./underFSStorage/
$ .
/bin/alluxio
fs persist
/cassandra
$
ls
.
/underFSStorage/
cassandra
(6)常见支持的命令,与linux系统命令用法相同。
.
/bin/alluxio
fs
cat
.
/bin/alluxio
fs
chmod
.
/bin/alluxio
fs
chown
.
/bin/alluxio
fs
cp
.
/bin/alluxio
fs
mv
.
/bin/alluxio
fs
rm
.
/bin/alluxio
fs
touch
.
/bin/alluxio
fs
mkdir