Bootstrap

Alluxio源码本地调试

  • 首先,请确保调试alluxio源码的环境是一个类Unix的系统环境

后台验证启动

在${ALLUXIO_HOME}目录下进行操作

在后台启动alluxio:
    $ ./bin/alluxio-start.sh local SudoMount
1.8.1-server启动后,后台运行四个进程($ jps 命令可以查看到当前后台运行的进程):
    AlluxioWorker
    AlluxioProxy
    AlluxioMaster
    AlluxioSecondaryMaster

idea中启动调试master/worker/proxy

查看后台运行的Alluxio进程的详细参数信息:(参数示例如下)
    $ jps -lmv | grep Alluxio
 
89271 alluxio.worker.AlluxioWorker -Dalluxio.home=/Users/Documents/GitProject/alluxio -Dalluxio.conf.dir=/Users/Documents/GitProject/alluxio/conf -Dalluxio.logs.dir=/Users/Documents/GitProject/alluxio/logs -Dlog4j.configuration=file:/Users/Documents/GitProject/alluxio/conf/log4j.properties -Dorg.apache.jasper.compiler.disablejsr199=true -Djava.net.preferIPv4Stack=true -Dalluxio.logger.type=WORKER_LOGGER -Xmx4g -XX:MaxDirectMemorySize=4g
89273 alluxio.proxy.AlluxioProxy -Dalluxio.home=/Users/Documents/GitProject/alluxio -Dalluxio.conf.dir=/Users/Documents/GitProject/alluxio/conf -Dalluxio.logs.dir=/Users/Documents/GitProject/alluxio/logs -Dlog4j.configuration=file:/Users/Documents/GitProject/alluxio/conf/log4j.properties -Dorg.apache.jasper.compiler.disablejsr199=true -Djava.net.preferIPv4Stack=true -Dalluxio.logger.type=PROXY_LOGGER
89097 alluxio.master.AlluxioMaster -Dalluxio.home=/Users/Documents/GitProject/alluxio -Dalluxio.conf.dir=/Users/Documents/GitProject/alluxio/conf -Dalluxio.logs.dir=/Users/Documents/GitProject/alluxio/logs -Dlog4j.configuration=file:/Users/Documents/GitProject/alluxio/conf/log4j.properties -Dorg.apache.jasper.compiler.disablejsr199=true -Djava.net.preferIPv4Stack=true -Dalluxio.logger.type=MASTER_LOGGER -Dalluxio.master.audit.logger.type=MASTER_AUDIT_LOGGER -Xmx8g
89099 alluxio.master.AlluxioSecondaryMaster -Dalluxio.home=/Users/Documents/GitProject/alluxio -Dalluxio.conf.dir=/Users/Documents/GitProject/alluxio/conf -Dalluxio.logs.dir=/Users/Documents/GitProject/alluxio/logs -Dlog4j.configuration=file:/Users/Documents/GitProject/alluxio/conf/log4j.properties -Dorg.apache.jasper.compiler.disablejsr199=true -Djava.net.preferIPv4Stack=true -Dalluxio.logger.type=SECONDARY_MASTER_LOGGER -Xmx8g

运行AlluxioMaster(下面的详细步骤是以AlluxioMaster为例,验证是否能够正常运行):
在这里插入图片描述

在idea中选择如下选项:
在这里插入图片描述

复制jps -lmv 命令查看到的AlluxioMaster对应的 jvm -D参数到idea到vm配置中(并修改vm参数中日志打印到类型为Console),并保存:
在这里插入图片描述

配置完成后,再次运行AlluxioMaster(前提是后台已经无正在运行的Alluxio进程),后台jps 查看进程,即可发现AlluxioMaster已在后台启动。
worker、proxy的启动和AlluxioMaster的方法是一样的

  • idea中启动调试master/worker/proxy
    现在已经能够通过IDEA在后台成功启动master等进程之后,通过打断点,并以Debug的形式进行调试。

命令调试指导

Alluxio有很多文件系统的命令,下面以copyFromLocal命令为例进行说明。

在${ALLUXIO_HOME}目录下,后台启动1.8.1-server:
    $ ./bin/alluxio-start.sh local
启动后,通过jps命令进行验证进程是否启动。
通过命令行debug Alluxio命令及其相关参数信息:(如下图,在打印日志的最后,会有该命令运行的入口以及需要传入的program arguments和vm options)
    $ bash -x ./bin/alluxio fs ls /

省略bash -x后展示的命令行调试参数的截图

找到alluxio.cli.fs.FileSystemShell,像AlluxioMaster调试那样,先运行一次:
在这里插入图片描述
像设置AlluxioMaster参数那样,进入到FileSystemShell的Application配置界面,将命令行打印出的program arguments和vm options的参数分别复制到配置中保存:
在这里插入图片描述

  • alluxio文件系统命令调试
    配置完成后,在命令的入口处打断点(并在其他调用的方法关键处打断点),然后进行debug进行调试(见下图):
    在这里插入图片描述
;