一般情况下,分布式系统都会至少提供两种部署模式,一种是单机模式,通常用于测试、快速部署入门等,另一种是分布式模式,用于实际生产环境。比如Hadoop分布式系统,单机模式和伪分布式模式都上为了用于测试和快速部署入门,其中伪分布式以进程来模拟集群节点。Spark也是可以在单机上,手动启动Worker守护进程,来模拟伪分布式的Spark集群的。
Alluxio也同时提供了这两种部署模式,分别给出详细的部署案例。集群中部署的版本如下:
l Alluxio 1.7.0
l Hadoop 2.6.0
l Spark 2.2.1
Alluxio 1.7.0版本兼容Spark 2.2.1版本及Hadoop 2.6版本,上节的Alluxio、Spark源码编译的Jar包供读者练习使用,本节案例使用Alluxio官网提供Alluxio 1.7.0预编译版本。
基于Windows 10 + VMware Workstation 搭建的Linux虚拟机系统,首先在Linux系统安装Alluxio1.7.0。
(1) 在Alluxio官网http://downloads.alluxio.org/downloads/files/1.7.0/下载
alluxio-1.7.0-hadoop-2.6-bin.tar.gz包到Windows本地目录。
(2) 使用Winscp文件传输工具将alluxio-1.7.0-hadoop-2.6-bin.tar.gz从本地Windows传送到远程虚拟机系统;打开Winscp工具,连接Linux虚拟机,复制到/usr/local/setup_tools目录。
使用PieTTY远程连接工具,登录到Linux远程虚拟机,输入命令cd /usr/local/setup_tools进入setup_tools目录,输入ls命令,查看alluxio-1.7.0-hadoop-2.6-bin.tar.gz文件已经传到了远程虚拟机上。
[root@master sbin]#cd /usr/local/setup_tools
root@master:/usr/local/setup_tools# ls | grep alluxio
alluxio-1.7.0-hadoop-2.6-bin.tar.gz
(3) Alluxio 1.7.0解压缩。
输入Linux解压缩命令 # tar -zxvf alluxio-1.7.0-hadoop-2.6-bin.tar.gz,将alluxio-1.7.0-hadoop-2.6-bin.tar.gz解压到目录alluxio-1.7.0-hadoop-2.6。
root@master:/usr/local/setup_tools# tar -zxvf alluxio-1.7.0-hadoop-2.6-bin.tar.gz
(4) 解压到alluxio-1.7.0-hadoop-2.6目录以后,使用ls命令查看当前目录下 alluxio-1.7.0-hadoop-2.6已经解压完成,使用命令# mv alluxio-1.7.0-hadoop-2.6 /usr/local将alluxio-1.7.0-hadoop-2.6目录从当前目录/usr/local/setup_tools复制到/usr/local目录中。
root@master:/usr/local/setup_tools# ls -ltr |grepalluxio-1.7.0-hadoop-2.6
drwxr-xr-x 23 501root 4096 Jan 16 10:14alluxio-1.7.0-hadoop-2.6
root@master:/usr/local/setup_tools# mvalluxio-1.7.0-hadoop-2.6 /usr/local
root@master:/usr/local# ls |grep alluxio
alluxio-1.7.0-hadoop-2.6
(5) 配置Linux Alluxio 1.7.0的全局环境变量
输入名称# vi /etc/profile打开profile文件,按i可以进入文本输入模式,在profile文件的最后增加ALLUXIO_HOME及修改PATH的环境变量,输入:wq!保存退出。
export ALLUXIO_HOME=/usr/local/alluxio-1.7.0-hadoop-2.6
exportPATH=.:$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$SCALA_HOME/bin:$ALLUXIO_HOME/bin
(6) 环境变量配置生效
在命令行中输入source /etc/profile,使刚才修改的ALLUXIO_HOME及PATH配置文件生效。
[root@master ~]#source /etc/profile
(7) Alluxio测试验证
在命令行输入 # alluxio version,显示版本为1.7.0。
root@master:/usr/local# alluxio version
1.7.0
本节进行单机模式下Alluxio的部署。
1) Alluxio配置alluxio-site.properties文件。
l 将conf/alluxio-site.properties中的alluxio.master.hostname设置为localhost(即alluxio.master.hostname=localhost)。
l 将conf/alluxio-site.properties中的alluxio.underfs.address设置为本地文件系统上的临时文件夹(例如:alluxio.underfs.address= /usr/local/alluxio-1.7.0-hadoop-2.6/tmp)。
l 开启远程登录服务,确保ssh localhost能成功。为了避免重复输入密码,可以将本机的ssh公钥添加到~/.ssh/authorized_keys文件中。
root@master:/usr/local/alluxio-1.7.0-hadoop-2.6/conf# ls
alluxio-env.sh alluxio-env.sh.template alluxio-site.properties.template core-site.xml.template log4j.properties masters metrics.properties.template workers
root@master:/usr/local/alluxio-1.7.0-hadoop-2.6/conf# cpalluxio-site.properties.template alluxio-site.properties
root@master:/usr/local/alluxio-1.7.0-hadoop-2.6/conf# vialluxio-site.properties
……
alluxio.master.hostname=localhost
alluxio.underfs.address=/usr/local/alluxio-1.7.0-hadoop-2.6/tmp
…….
第0步:格式化Alluxio文件系统。
注意:格式化步骤只有在第一次运行Alluxio系统时才需要执行。如果用户
在已部署好的Alluxio集群上运行格式化命令,当前服务器上之前保存的Alluxio文件系统的所有数据和元数据都会被清除。但底层数据不会改变。
root@master:/usr/local/alluxio-1.7.0-hadoop-2.6# alluxioformat
Executing the following command on all worker nodes andlogging to /usr/local/alluxio-1.7.0-hadoop-2.6/logs/task.log:/usr/local/alluxio-1.7.0-hadoop-2.6/bin/alluxio formatWorker
Waiting for tasks to finish...
All tasks finished
Formatting Alluxio Master @ master
2018-02-11 20:02:30,195 INFO Configuration - Configuration file/usr/local/alluxio-1.7.0-hadoop-2.6/conf/alluxio-site.properties loaded.
…….
2018-02-11 20:02:30,488 INFO UfsJournal - Formatting/usr/local/alluxio-1.7.0-hadoop-2.6/journal/FileSystemMaster/v1
2018-02-11 20:02:30,492 INFO Format - Formatting complete
root@master:/usr/local/alluxio-1.7.0-hadoop-2.6#
第1步:本地启动Alluxio文件系统。
root@master:/usr/local/alluxio-1.7.0-hadoop-2.6#alluxio-start.sh local
Killed 0 processes on master
Killed 0 processes on master
Killed 0 processes on master
Killed 0 processes on master
Starting master @ master. Logging to/usr/local/alluxio-1.7.0-hadoop-2.6/logs
Starting secondary master @ master. Logging to/usr/local/alluxio-1.7.0-hadoop-2.6/logs
Formatting RamFS: /mnt/ramdisk (1012064256)
Starting worker @ master. Logging to/usr/local/alluxio-1.7.0-hadoop-2.6/logs
Starting proxy @ master. Logging to/usr/local/alluxio-1.7.0-hadoop-2.6/logs
2) 查看启动的Alluxio进程。
root@master:/usr/local/alluxio-1.7.0-hadoop-2.6# jps
3973 AlluxioMaster
3975 AlluxioSecondaryMaster
4136 AlluxioWorker
4139 AlluxioProxy
4191 Jps
3) 查看Alluxio Mount挂载的信息。
root@master:/usr/local/alluxio-1.7.0-hadoop-2.6# mount | grep ramdisk
ramfs on /mnt/ramdisk type ramfs (rw,size=1012064256)
当前新增了一个映射ramdisk,大小为默认值1G。
4) Alluxio Web页面验证。
为了确认Alluxio处于运行状态,查看Web Interface界面
(http://192.168.189.1:19999/home),如图6-6所示。
图 6 - 6 Alluxio的概览页面
Web Interface界面包含以下几部分内容:
l Overview:Alluxio集群的整体描述信息,包含当前运行的Alluxio URL信 息,运行中的Workers个数,以及当前集群使用情况;
l Workers:当前可用Workers及其相关信息,以及当前丢失的workers信息;
l Configuration:当前Alluxio集群的系统配置信息;
l Browse:Alluxio文件系统的浏览界面;
l In Alluxio Data:当前在内存中的文件信息;
到这一步,Alluxio单机模式已经部署成功。如果启动失败,可以查看启动日志,日志目录在logs下,当前日志包含:
root@master:/usr/local/alluxio-1.7.0-hadoop-2.6# ls logs
master_audit.log master.log master.out proxy.log proxy.out secondary_master.log secondary_master.out task.log user_root.log worker.log worker.out
5) 运行Alluxio系统完整性检查,验证通过。
root@master:/usr/local/alluxio-1.7.0-hadoop-2.6# alluxiorunTests
2018-02-11 20:09:07,831 INFO Configuration - Configuration file/usr/local/alluxio-1.7.0-hadoop-2.6/conf/alluxio-site.properties loaded.
2018-02-11 20:09:07,969 INFO MetricsSystem - Starting sinks with config:{}.
……..
2018-02-11 20:09:11,067 INFO BasicNonByteBufferOperations - readFile file/default_tests_files/BASIC_NON_BYTE_BUFFER_NO_CACHE_ASYNC_THROUGH took 9 ms.
Passed the test!
继续查看Web Interface界面。
l Overview页面:当前使用的内存已经发生变化,当前使用内存的变化如图 6-7 WorkersFree / Used所示。
图 6 - 7 Alluxio的概览页面上的内存变化
l Workers页面:Workers页面上的相应变化如图6-8 Space Used所示。
图 6 - 8 Alluxio的Workers页面上的变化
l Browse 页面:Alluxio的文件系统页面上的相应变化如图6-9所示。
图 6 - 9 Alluxio的文件系统页面上的变化
继续点击文件名,对应的文件具体内容如图6-10所示。
图 6 - 10文件具体内容
单机某个文件,可以进行下载,下载页面如图6-11所示。
图 6 - 11文件下载
l In Alluxio Data:查询在Alluxio中数据的界面如图6-12所示。
图 6 - 12 Alluxio的缓存在内存中文件的界面
6) Alluxio映射的Amdisk中的内容。
root@master:/mnt/ramdisk/alluxioworker# cd/mnt/ramdisk/alluxioworker
root@master:/mnt/ramdisk/alluxioworker# ls
100663296 134217728 16777216 184549376 218103808 251658240 285212672 318767104 335544320 402653184 67108864
117440512 150994944 167772160 201326592 234881024 268435456 301989888 33554432 385875968 50331648 83886080
7) 单机模式下可以作为入门测试使用,正式环境将部署集群模式。先停止单机模式,关闭Alluxio命令如下。
root@master:/usr/local/alluxio-1.7.0-hadoop-2.6# alluxio-stop.shlocal
Killed 1 processes on master
Killed 1 processes on master
Killed 1 processes on master
Killed 1 processes on master