学习 Alluxio(二):集群部署

免密码登录

Master 节点需要通过 SSH 运行在 Worker 节点的脚本,需要配置 Master 节点到 Worker 节点 SSH 免密码登录。

在 Master 节点上生成公钥和私钥:

ssh-keygen -t rsa  

将公钥分发到所有 Worker 节点。有自动和手动两种方式:

自动分发:

ssh-copy-id -i .ssh/id_rsa.pub workder  

手动分发:

cat .ssh/id_rsa.pub | ssh worker 'cat >> .ssh/authorized_keys'  

配置

编辑 etc/alluxio-site.properties 文件:

alluxio.master.hostname=master  
alluxio.underfs.address=hdfs://<NAMENODE>:<PORT>/alluxio  

编辑 etc/masters 文件:

master  

编辑 etc/workers 文件:

worker1  
worker2  
worker3  

分发配置:

bin/alluxio copyDir conf/  

格式化

执行命令:

bin/alluxio format  

启动

一键启动

在 Master 节点执行:

bin/alluxio-start.sh all SudoMount  

要求用户在集群所有节点配置为 sudoer 且免密码。

手动启动

在 Master 节点执行:

bin/alluxio-start.sh master  

在 Worker 节点执行:

bin/alluxio-start.sh worker SudoMount  

测试

执行命令:

bin/alluxio runTests  

Q&A

访问 http://master:19999 抛异常 org.apache.jasper.JasperException: PWC6345: There is an error in invoking javac. A full JDK (not just JRE) is required

解决办法:

首先,确认 JDK 正确安装且环境变量 JAVA_HOME 正确配置。

编辑 conf/alluxio-env.sh 文件:

ALLUXIO_MASTER_JAVA_OPTS="-Dorg.apache.jasper.compiler.disablejsr199=true"  

参考:https://stackoverflow.com/questions/9113346/pwc6345-there-is-an-error-in-invoking-javac-error-when-using-jetty-wtp-plugi

参考