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進行調試(見下圖):
    在這裏插入圖片描述
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章