RocketMQ踩坑之Name Server啓動問題

今天剛開始學 RocketMQ,在運行的時候 Name Server 就怎麼也運行不起來,搗鼓了很長時間才弄好,在這裏把解決方法記錄下來

版本說明

操作系統:MacOS 10.13.5
RocketMQ版本: 4.5.1

情景復現

下載 rocketmq-all-4.5.1-bin-release.zip 後,使用如下命令解壓

unzip rocketmq-all-4.5.1-bin-release.zip

切換目錄到 RocketMQ 根目錄並啓動 Name Server

> cd rocketmq-all-4.5.1-bin-release
> nohup sh bin/mqnamesrv &

這時會返回如下結果

[1] 19430
appending output to nohup.out                                                   
[1]  + 19430 exit 1     nohup sh bin/mqnamesrv

這和我的預期明顯是不相符的,而且使用 jps 查看進程也沒有 NamesrvStartup

問題分析

使用 cat nohup.out 命令查看 nohup.out 文件,會輸出如下信息

ERROR: Please set the JAVA_HOME variable in your environment, We need java(x64)! !!

到此問題顯而易見了,我使用的是 Mac 系統,當初安裝 jdk 的 dmg 文件,安裝完成就能用了,一直沒有配置環境變量,所以報了這個錯誤

解決方法

那麼我們就來配置一下 java 環境變量:

  1. 通過 /usr/libexec/java_home 命令可以找到已經安裝好的 jdk 位置
  2. 通過 vim ~/.bash_profile 命令打開 .bash_profile,如果沒有該文件可以通過 touch ~/.bash_profile 命令創建
  3. 添加如下配置,其中 jdk 的位置填入第一步中你自己查找出的 jdk 的位置
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_201.jdk/Contents/Home
  1. 使用 source ~/.bash_profile 命令使配置生效

到這裏來說應該就可以了,但是我自己配置後啓動 RocketMQ 的 Name Server 還是不行,所以我又進行了如下配置,同樣沒有成功的小夥伴不要着急,繼續往下來

  • 打開 RocketMQ 的 bin 目錄下的 runserver.shrunbroker.sh,將設置 JAVA_HOME 的第二三行註釋掉,把第一行 JAVA_HOME 設置爲上面通過命令 /usr/libexec/java_home 獲取到的 jdk 的安裝目錄,如下所示
[ ! -e "$JAVA_HOME/bin/java" ] && JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_201.jdk/Contents/Home
# [ ! -e "$JAVA_HOME/bin/java" ] && JAVA_HOME=/usr/java
# [ ! -e "$JAVA_HOME/bin/java" ] && error_exit "Please set the JAVA_HOME variable in your environment, We need java(x64)!"

修改後記得保存,再次運行 nohup sh bin/mqnamesrv &nohup sh bin/mqbroker -n localhost:9876 & ,便可以通過 jps 查看到 BrokerStartupNamesrvStartup 這兩個進程啦~
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章