Linux(CentOS)安裝配置zeromq、jzmq(解決各種問題)

來源:互聯網
上載者:User

標籤:style   blog   http   io   ar   color   os   使用   sp   

  今天為Hadoop配置zeromq、jzmq遇到各種問題,先是編譯出錯,到編譯成功後測試出錯等等,下面將我遇到的問題與大家分享一下。

  第一個注意點是:必須先編譯安裝zeromq,然後在編譯jzmq,否則會報zmq.h檔案找不到。

  官方安裝配置連結:http://zeromq.org/bindings:java

Step 1:安裝必須的依賴包:

[[email protected] ~]$ sudo yum install autoconf automake libtool gcc gcc-g++ make libuuid-dev git java-1.6.0-openjdk-devel

  備忘:其中一些包依據作業系統不同所以並不是上面的名稱,請使用yum list avaiable *package name*查詢可擷取的包,然後安裝。例如:尋找openjdk,藍色背景的就是我們要找的。

[email protected] jzmq]# sudo yum list avaiable *openjdk*Loaded plugins: fastestmirror, langpacks          .......Available Packagesjava-1.6.0-openjdk.x86_64                      1:1.6.0.33-1.13.5.0.el7_0        updatesjava-1.6.0-openjdk-demo.x86_64                 1:1.6.0.33-1.13.5.0.el7_0        updatesjava-1.6.0-openjdk-devel.x86_64                1:1.6.0.33-1.13.5.0.el7_0        updatesjava-1.6.0-openjdk-javadoc.x86_64              1:1.6.0.33-1.13.5.0.el7_0        updatesjava-1.6.0-openjdk-src.x86_64                  1:1.6.0.33-1.13.5.0.el7_0        updatesjava-1.7.0-openjdk.x86_64                      1:1.7.0.71-2.5.3.1.el7_0         updatesjava-1.7.0-openjdk-accessibility.x86_64        1:1.7.0.71-2.5.3.1.el7_0         updatesjava-1.7.0-openjdk-demo.x86_64                 1:1.7.0.71-2.5.3.1.el7_0         updatesjava-1.7.0-openjdk-devel.x86_64                1:1.7.0.71-2.5.3.1.el7_0         updatesjava-1.7.0-openjdk-headless.x86_64             1:1.7.0.71-2.5.3.1.el7_0         updatesjava-1.7.0-openjdk-javadoc.noarch              1:1.7.0.71-2.5.3.1.el7_0         updatesjava-1.7.0-openjdk-src.x86_64                  1:1.7.0.71-2.5.3.1.el7_0         updates[[email protected] jzmq]# sudo yum install java-1.6.0-openjdk-devel.x86_64             #安裝Loaded plugins: fastestmirror, langpacksLoading mirror speeds from cached hostfile                 ............Dependency Updated:  python-javapackages.noarch 0:3.4.1-6.el7_0                                           Complete![[email protected] jzmq]# 

Step 2:編譯安裝zeromq-2.1.7

2.1 解壓縮包

[[email protected] ~]$ tar -zxvf zeromq-2.1.7.tar.gz

2.2 Build&&Install

$ cd $ ./autogen.sh$ ./configure$ make$ sudo make install

Step 3:編譯安裝jzmq

3.1從github上clone jzmq

$ git clone https://github.com/zeromq/jzmq.git

3.2 Bulid&&Install(官方提供步驟,可惜不行)

$ cd jzmq$ ./autogen.sh$ ./configure$ make          #在執行make的時候報make[1]: *** No rule to make target `classdist_noinst.stamp‘, needed by `org/zeromq/ZMQ.class‘. Stop.$ sudo make install

3.3錯誤排除

  1)確保Step 1的依賴包安裝完全

  2)檢查JDK是不是用的openjdk6,如果不是請將JAVA_HOME臨時指向/usr/lib/jvm/java-1.6.0-openjdk.x86_64/

[[email protected] ~]$ echo $JAVA_HOME/usr/java/jdk1.6.0_45[[email protected] ~]$ JAVA_HOME=/usr/lib/jvm/java-1.6.0-openjdk.x86_64/

3.4解決錯誤

  1)將目錄切換至jzmq/src下

  2)touch classdist_noinst.stamp

  3)執行:

CLASSPATH=.:./.:$CLASSPATH javac -d . org/zeromq/ZMQ.java org/zeromq/ZMQException.java org/zeromq/ZMQQueue.java org/zeromq/ZMQForwarder.java org/zeromq/ZMQStreamer.java

  4)

cd .../autogen.sh./configuremakesudo make install

  5)測試是否安裝成功,切換至jzmq/perf/目錄下,執行sh local_lat.sh tcp://127.0.0.1:5000 1 100進行測試:

[[email protected] jzmq]$ cd perf/[[email protected] perf]$ sh local_lat.sh tcp://127.0.0.1:5000 1 100Exception in thread "main" java.lang.UnsatisfiedLinkError: no jzmq in java.library.path        at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1738)        at java.lang.Runtime.loadLibrary0(Runtime.java:823)        at java.lang.System.loadLibrary(System.java:1028)        at org.zeromq.ZMQ.<clinit>(ZMQ.java:34)        at local_lat.main(local_lat.java:36)

  no jzmq in java.library.path???

  解決辦法:

export JAVA_LIBRARY_PATH=/usr/local/lib或者export LD_LIBRARY_PATH=/usr/local/lib最好將其加入~/.bashrc中[[email protected] perf]$ vi ~/.bashrc export LD_LIBRARY_PATH=/usr/local/lib

  然後在進行測試一切OK,首先在一個終端下執行:sh local_lat.sh tcp://127.0.0.1:5000 1 100

[[email protected] perf]$ source ~/.bashrc [[email protected] perf]$ sh local_lat.sh tcp://127.0.0.1:5000 1 100

  此時,開啟另外一個終端執行:sh remote_lat.sh tcp://127.0.0.1:5000 1 100

[[email protected] jzmq]$ cd perf/[[email protected] perf]$ pwd/home/mdrill01/component/jzmq/perf[[email protected] perf]$ sh remote_lat.sh tcp://127.0.0.1:5000 1 100message size: 1 [B]            #####說明測試成功roundtrip count: 100mean latency: 140.0 [us][[email protected] perf]$ 

參考:Compiling JZMQ on Ubuntu

  Hadoop and JZMQ - no jzmq in java.library.path

 

Linux(CentOS)安裝配置zeromq、jzmq(解決各種問題)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.