1. 程式人生 > >CentOS erlang安裝、emqtt_benchmark配置

CentOS erlang安裝、emqtt_benchmark配置

由於想對EMQTT進行壓力測試,所有使用了官方推薦的emqtt_benchmark測試,但一解壓就出現了問題。

[[email protected] bak]# cd emqtt_benchmark/
[[email protected] emqtt_benchmark]# ls
CHANGELOG.md  emqtt_bench_pub  emqtt_bench_sub  LICENSE  Makefile  README.md  rebar  rebar.config  src
[[email protected] emqtt_benchmark-master]# make
/usr/bin/env: escript: No such file or directory make: *** [get-deps] Error 127
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

網上檢視escrpt是erlang的一種高階特性,所以需要先安裝Erlang,先安裝的是otp_src_R14B04,但執行emqtt_benchmark時一起報錯,後更新為otp_src_18配置成功。

安裝erlang

如果未安裝以後程式,請先安裝依賴

$sudo yum install gcc gcc-c++ glibc-devel make ncurses-devel openssl-devel autoconf java-1.8
.0-openjdk-devel git
  • 1
wget http://erlang.org/download/otp_src_18.3.tar.gz
tar zxvf otp_src_18.tar.gz#(解壓) 
cd otp_src_18.3/ #(進入到解壓好的資料夾中)
  • 1
  • 2
  • 3

編譯安裝

./configure  --prefix=/home/erlang(指定安裝目錄)
make(編譯) 
make install(安裝)
  • 1
  • 2
  • 3

配置環境變數

更新環境變數

vim /etc/profile
  • 1

在最後一行加上

export PATH=/home/erlang/bin:$PATH 
  • 1

儲存退出後

source /etc/profile
  • 1

或者

新增系統環境變數

export PATH=$PATH:/home/erlang/bin
  • 1

檢視環境變數:

echo $PATH
  • 1

驗證erlang

命令列中輸入erl看是否安裝成功!

[root@iZuf6ixy03u72vzno4jsiuZ bak]# erl
Erlang/OTP 18 [erts-7.3] [source] [64-bit] [smp:4:4] [async-threads:10] [hipe] [kernel-poll:false]

Eshell V7.3  (abort with ^G)
1> 
  • 1
  • 2
  • 3
  • 4
  • 5

驗證emqtt_benchmark


[[email protected] emqtt_benchmark-master]# make
WARN:  Expected /chroot/www/bak/emqtt_benchmark-master/deps/emqttc to be an app dir (containing ebin/*.app), but no .app found.
WARN:  Expected /chroot/www/bak/emqtt_benchmark-master/deps/getopt to be an app dir (containing ebin/*.app), but no .app found.
==> emqtt_benchmark-master (get-deps)
WARN:  Expected /chroot/www/bak/emqtt_benchmark-master/deps/emqttc to be an app dir (containing ebin/*.app), but no .app found.
WARN:  Expected /chroot/www/bak/emqtt_benchmark-master/deps/getopt to be an app dir (containing ebin/*.app), but no .app found.
Pulling emqttc from {git,"git://github.com/emqtt/emqttc.git",
                         {branch,"master"}}
Cloning into 'emqttc'...
Pulling getopt from {git,"https://github.com/jcomellas/getopt.git",
                         {branch,"master"}}
Cloning into 'getopt'...
WARN:  Expected /chroot/www/bak/emqtt_benchmark-master/deps/gen_logger to be an app dir (containing ebin/*.app), but no .app found.
==> emqttc (get-deps)
WARN:  Expected /chroot/www/bak/emqtt_benchmark-master/deps/gen_logger to be an app dir (containing ebin/*.app), but no .app found.
Pulling gen_logger from {git,"https://github.com/emqtt/gen_logger.git",
                             {branch,"master"}}
Cloning into 'gen_logger'...
WARN:  Expected /chroot/www/bak/emqtt_benchmark-master/deps/lager to be an app dir (containing ebin/*.app), but no .app found.
==> gen_logger (get-deps)
WARN:  Expected /chroot/www/bak/emqtt_benchmark-master/deps/lager to be an app dir (containing ebin/*.app), but no .app found.
Pulling lager from {git,"https://github.com/basho/lager.git",
                        {branch,"master"}}
Cloning into 'lager'...
WARN:  Expected /chroot/www/bak/emqtt_benchmark-master/deps/goldrush to be an app dir (containing ebin/*.app), but no .app found.
==> lager (get-deps)
WARN:  Expected /chroot/www/bak/emqtt_benchmark-master/deps/goldrush to be an app dir (containing ebin/*.app), but no .app found.
Pulling goldrush from {git,"https://github.com/basho/goldrush.git",
                           {tag,"0.1.9"}}
Cloning into 'goldrush'...
==> goldrush (get-deps)
==> getopt (get-deps)
==> goldrush (compile)
Compiled src/gr_param.erl
Compiled src/gr_counter_sup.erl
Compiled src/glc_ops.erl
Compiled src/gr_app.erl
Compiled src/gr_param_sup.erl
Compiled src/glc_run.erl
Compiled src/gre.erl
Compiled src/gr_sup.erl
Compiled src/gr_manager.erl
Compiled src/gr_context.erl
Compiled src/gr_manager_sup.erl
Compiled src/gr_counter.erl
Compiled src/glc_lib.erl
Compiled src/glc.erl
Compiled src/glc_code.erl
==> lager (compile)
Compiled src/lager_util.erl
Compiled src/lager_transform.erl
Compiled src/lager_backend_throttle.erl
Compiled src/lager_handler_watcher_sup.erl
Compiled src/lager_crash_log.erl
Compiled src/lager_format.erl
Compiled src/lager_sup.erl
Compiled src/lager_file_backend.erl
Compiled src/lager_manager_killer.erl
Compiled src/error_logger_lager_h.erl
Compiled src/lager_msg.erl
Compiled src/lager_default_formatter.erl
Compiled src/lager_common_test_backend.erl
Compiled src/lager_console_backend.erl
Compiled src/lager_trunc_io.erl
Compiled src/lager_handler_watcher.erl
Compiled src/lager_config.erl
Compiled src/lager_app.erl
Compiled src/lager.erl
Compiled src/lager_stdlib.erl
==> gen_logger (compile)
Compiled src/gen_logger.erl
Compiled src/error_logger_logger.erl
Compiled src/console_logger.erl
Compiled src/lager_logger.erl
==> emqttc (compile)
Compiled src/emqttc_reconnector.erl
Compiled src/emqttc_message.erl
Compiled src/emqttc_serialiser.erl
Compiled src/emqttc_socket.erl
Compiled src/emqttc_parser.erl
Compiled src/emqttc_opts.erl
Compiled src/emqttc_protocol.erl
Compiled src/emqttc_keepalive.erl
Compiled src/emqttc_packet.erl
Compiled src/emqttc_topic.erl
/chroot/www/bak/emqtt_benchmark-master/deps/emqttc/src/emqttc.erl:658: Warning: variable 'Logger' is unused
/chroot/www/bak/emqtt_benchmark-master/deps/emqttc/src/emqttc.erl:658: Warning: variable 'Name' is unused
Compiled src/emqttc.erl
==> getopt (compile)
Compiled src/getopt.erl
==> emqtt_benchmark-master (compile)
Compiled src/emqtt_benchmark.erl
==> emqtt_benchmark-master (xref)

[[email protected] emqtt_benchmark-master]# ./emqtt_bench_sub --help
Usage: emqtt_bench_sub [--help <help>] [-h [<host>]] [-p [<port>]]
                       [-c [<count>]] [-n [<startnumber>]]
                       [-i [<interval>]] [-t <topic>] [-q [<qos>]]
                       [-u <username>] [-P <password>] [-k [<keepalive>]]
                       [-C [<clean>]] [-S [<ssl>]]
                       [--certfile <certfile>] [--keyfile <keyfile>]
                       [--ifaddr <ifaddr>]

  --help             help information
  -h, --host         mqtt server hostname or IP address [default: 
                     localhost]
  -p, --port         mqtt server port number [default: 1883]
  -c, --count        max count of clients [default: 200]
  -n, --startnumber  start number [default: 0]
  -i, --interval     interval of connecting to the broker [default: 10]
  -t, --topic        topic subscribe, support %u, %c, %i variables
  -q, --qos          subscribe qos [default: 0]
  -u, --username     username for connecting to server
  -P, --password     password for connecting to server
  -k, --keepalive    keep alive in seconds [default: 300]
  -C, --clean        clean session [default: true]
  -S, --ssl          ssl socoket for connecting to server [default: false]
  --certfile         client certificate for authentication, if required by 
                     server
  --keyfile          client private key for authentication, if required by 
                     server
  --ifaddr           local ipaddress or interface address
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • 108
  • 109
  • 110
  • 111
  • 112
  • 113
  • 114
  • 115
  • 116
  • 117
  • 118
  • 119
  • 120
  • 121
  • 122
  • 123

什麼是Erlang

Erlang([‘ə:læŋ])是一種通用的面向併發的程式語言,它由瑞典電信裝置製造商愛立信所轄的CS-Lab開發,目的是創造一種可以應對大規模併發活動的程式語言和執行環境。Erlang問世於1987年,經過十年的發展,於1998年釋出開源版本。Erlang是運行於虛擬機器的解釋性語言,但是現在也包含有烏普薩拉大學高效能Erlang計劃(HiPE)開發的原生代碼編譯器,自R11B-4版本開始,Erlang也開始支援指令碼式直譯器。在程式設計範型上,Erlang屬於多重範型程式語言,涵蓋函式式、併發式及分散式。順序執行的Erlang是一個及早求值, 單次賦值和動態型別的函數語言程式設計語言。 
Erlang是一個結構化,動態型別程式語言,內建平行計算支援。最初是由愛立信專門為通訊應用設計的,比如控制交換機或者變換協議等,因此非常適 合於構建分散式,實時軟平行計算系統。使用Erlang編寫出的應用執行時通常由成千上萬個輕量級程序組成,並通過訊息傳遞相互通訊。程序間上下文切換對於Erlang來說僅僅 只是一兩個環節,比起C程式的執行緒切換要高效得多得多了。 
使用Erlang來編寫分散式應用要簡單的多,因為它的分散式機制是透明的:對於程式來說並不知道自己是在分散式執行。Erlang執行時環境是一個虛擬機器,有點像Java虛擬機器,這樣程式碼一經編譯,同樣可以隨處執行。它的執行時系統甚至允許程式碼在不被中斷 的情況下更新。另外如果需要更高效的話,位元組程式碼也可以編譯成原生代碼執行。

相關推薦

CentOS erlang安裝emqtt_benchmark配置

由於想對EMQTT進行壓力測試,所有使用了官方推薦的emqtt_benchmark測試,但一解壓就出現了問題。[[email protected] bak]# cd emqtt_benchmark/ [[email protected] emqtt_benchmark]# ls CHANG

Linux CentOS安裝配置mysql數據庫

config 得到 操作 program except naconda 服務端 強力 fig 假設要在Linux上做j2ee開發。首先得搭建好j2ee的開發環境。包含了jdk、tomcat、eclipse的安裝(這個在之前的一篇隨筆中已經有具體解說了Linux學習之Ce

CentOS 7 安裝配置JDK-10

1、下載JDK-10 選擇對應Linux版本的tar.gz 官網連結 複製到Centos中的Download目錄下 2、解除安裝預裝的OpenJDK 檢視自帶OpenJDK及相關檔案 java -version 查詢帶有java字串的檔案 rpm -qa

CentOS 7 安裝配置使用 PostgreSQL 10 安裝及基礎配置

install the server packages: yum install postgresql10-server  此時在/usr/下多了pgsql-10目錄 關於安裝的幾個軟體的介紹:  postgresql-client libraries and

Centos 7 安裝配置並啟動SSH遠端訪問

1.檢視SSH是否安裝:[[email protected] ~]# rpm -qa | grep ssh上圖說明了 centos 7 預設安裝了SSH包2.安裝缺失的包、並配置SSH:[[e

CentOS下eclipse安裝maven配置

一、安裝maven 上傳三個檔案 安裝maven 解壓:tar -zxf apache-maven-3.0.5-bin.tar.gz -C /opt/modules/ 轉到maven目錄:

Centos安裝JDK環境配置

too nbsp java tail 使用 服務 卸載 linu rep 一、linux服務器遠程連接工具安裝準備 a、下載Xshell http://rj.baidu.com/soft/detail/15201.html?ald b、下載xftp

SpringMVC插件安裝環境配置及快速入門

應用 pre spring 包含 tro quest patch ava dispatch SpringMVC 是現在廣泛應用的框架結構,我也只是一個初學者,一遍學習一遍梳理整合,如有錯誤,希望大神指點,別誤人。 MVC :Model-View-Control 框架性質的C

windows系統下nodejs安裝環境配置及刪除NPM全局配置

例如 參考 -h clas shel fcm gpe tar tortoise nodejs安裝及設置NPM全局路徑 刪除NPM全局路徑配置 一、nodejs安裝及設置NPM全局路徑 第一步:下載安裝文件 下載nodejs,官網:http://nodejs.org/do

NFS 安裝使用配置

etc 限制 chm 建議 isp color 讀寫 yum安裝 文件 NFS簡介   NFS允許一個系統在網絡上與他人共享目錄和文件。通過使用NFS,用戶和程序可以像訪問本地文件一樣訪問遠程系統上的文件。 安裝NFS 服務端安裝 NFS安裝包:nfs-utils-

CentOS 7安裝後的配置

net shu www -m rest 我們 重啟 name AR 一、設置IP地址、網關DNS 說明:CentOS 7.x默認安裝好之後是沒有自動開啟網絡連接的,所 以需要我們自己配置。 在命令行輸入#vi /etc/sysconfig/network-

Hadoop HDFS安裝環境配置

dfs- 宋體 name xftp hadoop export 配置環境 lib bin hadoop安裝 進入Xftp將hadoop-2.7.3.tar.gz 復制到自己的虛擬機系統下的放軟件的地方,我的是/soft/software    在虛擬機系統裝軟件文件裏,進行

【Java】Maven安裝Eclipse配置以及相關錯誤解決集合

文件 格式 setting BYD cksum runt 文件編碼 原因 完成後 作者嘔血總結,下面寫的每一個錯誤我都遇過 · Maven安裝 · Eclipse配置 · Maven安裝 安裝前請確保已經裝有JDK。 一、 準備Maven程序包 到官網https

java開發環境搭建--jdk安裝maven配置Idea

    安裝 JDK 下載安裝 首先開啟 Oracle 官網 JDK 1.8 下載頁面,根據下圖選擇下載各系統對應的版本,這裡以 Win10 64 位作業系統為例。 下載完成之後,雙擊滑鼠進行安裝,一直單擊“下一步”按鈕直至安裝完畢。 環境

ubuntu 16.04 系統安裝環境配置

ubuntu 16.04 系統安裝、環境配置 注:文中很多內容是參考別人的部落格,都已註明出處,如果侵權,請私信。 初次寫部落格,這篇內容就屬性定義為原創了。 其實定義成原創很不好意思。所以隨便轉載吧。但請註明一下出處。 https://blog.csdn.net/qq_26

centos redis5 安裝 和 基本配置

1 下載 redis   wget http://download.redis.io/releases/redis-5.0.0.tar.gz 2 解壓   tar xzf redis-5.0.0.tar.gz 3 編譯    cd redis-5.0.0   make 4 啟動   

大資料入門:Hadoop安裝環境配置及檢測

目錄 1.導包Hadoop包 2.配置環境變數 3.把winutil包拷貝到Hadoop bin目錄下 4.把Hadoop.dll放到system32下 5.檢測Hadoop是否正常安裝 5.1在maven專案中檢測,將配置檔案放入resource包下 5.2然後

CentOS nginx安裝啟動關閉

下載並安裝nginx # yum install nginx 預設的配置檔案在 /etc/nginx 路徑下 一般做法是,在本機把nginx.conf配置好再rz上傳上去 nginx.conf配置就不說了,百度一堆 nginx -t -c /etc/nginx/ngi

CentOS 7 安裝後基本配置

1、檢查環境 [[email protected] etc]# cat /etc/system-release CentOS Linux release 7.3.1611 (Core) 2、修改ip cd /etc/sysconfig/network-

Centos作業系統安裝及相關配置

1.將計算機的BIOS設定為光碟機引導,並插入CentOS-7光碟,正常情況會進入安裝頁面,如下: 2.選擇Test this media & install CentOS 7 3.等待載入完成進入歡迎介面。 4.選擇安裝過程所用的語言,我們可以選擇中文(簡體)