本地运行Alluxio
前提条件
这部分的前提条件是你安装了Java(JDK 8或更高版本)。
下载 Alluxio 二进制发行版。
在独立模式下运行,请执行以下操作:
通过拷贝conf/alluxio-site.properties.template
文件,创建conf/alluxio-site.properties
。
-
将
conf/alluxio-site.properties
中的alluxio.master.hostname
设置为localhost
(即alluxio.master.hostname=localhost
)。 -
将
conf/alluxio-site.properties
中的alluxio.master.mount.table.root.ufs
设置为一个本地文件系统上的临时文件夹(例如,alluxio.master.mount.table.root.ufs=/tmp
)。 -
开启远程登录服务,确保
ssh localhost
能成功。为了避免重复输入密码,你可以将本机的ssh公钥添加到~/.ssh/authorized_keys
文件中。更多细节请参考该指南。挂载RAMFS文件系统
运行以下命令以挂载RAMFS文件系统。
$ ./bin/alluxio-mount.sh SudoMount
格式化Alluxio文件系统
注意:这个步骤只有在第一次运行Alluxio系统时才需要执行。 如果用户在已部署好的Alluxio集群上运行格式化命令, 当前服务器上之前保存的Alluxio文件系统的所有数据和元数据都会被清除。 但是,底层数据不会改变。
$ ./bin/alluxio format
本地启动Alluxio文件系统
简单运行如下的命令来启动Alluxio文件系统。
# 如果您尚未挂载ramdisk或要重新挂载(如为了改变ramdisk大小)
$ ./bin/alluxio-start.sh local SudoMount
# 或者,如果已经安装了ramdisk
$ ./bin/alluxio-start.sh local
注意:用户在linux系统下运行上述命令需要输入密码来获取sudo权限, 以便启动RAMFS。如果用户不想每次运行命令输入密码, 或者没有sudo权限,可以使用常见问题中介绍的其他方法。
验证Alluxio是否运行
为了确认Alluxio处于运行状态,用户可以访问 http://localhost:19999,或者查看logs
文件夹下的日志。
运行一个更全面的系统完整性检查:
$ ./bin/alluxio runTests
可以在任意时刻执行以下命令以关闭Alluxio:
$ ./bin/alluxio-stop.sh local
FAQ
为什么在linux上运行Alluxio需要sudo权限?
默认情况下,Alluxio使用RAMFS 存储内存数据。用户在MacOS系统下可以挂载ramfs,不需要超级用户身份。然而,在linux系统下,用户运行”mount”命令(以及 “umount”, “mkdir” 和 “chmod” 命令)需要sudo权限。
用户没有sudo权限,仍然可以在linux下使用Alluxio么?
假设用户没有sudo权限,那么必须有一个RAMFS(例如/path/to/ramdisk
)已经被系统管理员挂载,并且用户对此RAMFS有读写权限。你可以在conf/alluxio-site
.properties
文件中指定该路径:
alluxio.worker.tieredstore.level0.alias=MEM
alluxio.worker.tieredstore.level0.dirs.path=/path/to/ramdisk
然后在不需要请求root权限的情况下启动Alluxio,使用上述的目录作为存储器:
$ ./bin/alluxio-start.sh local NoMount
另外,用户可以使用Linux tmpFS存储数据,
Tmpfs是一个由内存支持的临时文件夹(e.g.,常见的Linux下的 /dev/shm
),但会使用交换空间,
因此相比于使用RAMFS,Tmpfs提供的性能会稍差。和使用预先挂载的RAMFS类似,用户可以通过conf/alluxio-site.properties
配置项配置Tmpfs文件夹
alluxio.worker.tieredstore.level0.alias=MEM
alluxio.worker.tieredstore.level0.dirs.path=/dev/shm
其次是:
$ ./bin/alluxio-start.sh local NoMount
我怎样避免通过输入密码运行sudo命令?
选项:
- 通过超级用户身份启动Alluxio。
- 在sudoers中增加启动Alluxio的用户。
- 在Linux文件
/etc/sudoers
下添加下面一行,赋予当前用户(e.g., “alluxio”)有限的sudo权限alluxio ALL=(ALL) NOPASSWD: /bin/mount * /mnt/ramdisk, /bin/umount * /mnt/ramdisk, /bin/mkdir * /mnt/ramdisk, /bin/chmod * /mnt/ramdisk
这允许”alluxio”用户应用sudo权限在一个具体路径
/mnt/ramdisk
下执行命令mount, umount, mkdir 和 chmod (假设命令在/bin/
) ,并且不需要输入密码。 查看更多关于 Sudoer User Specifications的介绍。