今天为Hadoop配置zeromq、jzmq遇到各种问题,先是编译出错,到编译成功后测试出错等等,下面将我遇到的问题与大家分享一下。

  第一个注意点是:必须先编译安装zeromq,然后在编译jzmq,否则会报zmq.h文件找不到。

  官方安装配置链接:http://zeromq.org/bindings:java

Step 1:安装必须的依赖包:

  1. [mdrill01@mdrill01 ~]$ sudo yum install autoconf automake libtool gcc gcc-g++ make libuuid-dev git java-1.6.-openjdk-devel

  备注:其中一些包依据操作系统不同所以并不是上面的名称,请使用yum list avaiable *package name*查询可获取的包,然后安装。例如:查找openjdk,蓝色背景的就是我们要找的。

  1. ot@mdrill01 jzmq]# sudo yum list avaiable *openjdk*
  2. Loaded plugins: fastestmirror, langpacks
  3.           .......
  4. Available Packages
  5. java-1.6.-openjdk.x86_64 :1.6.0.33-1.13.5.0.el7_0 updates
  6. java-1.6.-openjdk-demo.x86_64 :1.6.0.33-1.13.5.0.el7_0 updates
  7. java-1.6.-openjdk-devel.x86_64 :1.6.0.33-1.13.5.0.el7_0 updates
  8. java-1.6.-openjdk-javadoc.x86_64 :1.6.0.33-1.13.5.0.el7_0 updates
  9. java-1.6.-openjdk-src.x86_64 :1.6.0.33-1.13.5.0.el7_0 updates
  10. java-1.7.-openjdk.x86_64 :1.7.0.71-2.5.3.1.el7_0 updates
  11. java-1.7.-openjdk-accessibility.x86_64 :1.7.0.71-2.5.3.1.el7_0 updates
  12. java-1.7.-openjdk-demo.x86_64 :1.7.0.71-2.5.3.1.el7_0 updates
  13. java-1.7.-openjdk-devel.x86_64 :1.7.0.71-2.5.3.1.el7_0 updates
  14. java-1.7.-openjdk-headless.x86_64 :1.7.0.71-2.5.3.1.el7_0 updates
  15. java-1.7.-openjdk-javadoc.noarch :1.7.0.71-2.5.3.1.el7_0 updates
  16. java-1.7.-openjdk-src.x86_64 :1.7.0.71-2.5.3.1.el7_0 updates
  17. [root@mdrill01 jzmq]# sudo yum install java-1.6.-openjdk-devel.x86_64 #安装
  18. Loaded plugins: fastestmirror, langpacks
  19. Loading mirror speeds from cached hostfile
  20. ............
  21. Dependency Updated:
  22. python-javapackages.noarch :3.4.-.el7_0
  23. Complete!
  24. [root@mdrill01 jzmq]#

Step 2:编译安装zeromq-2.1.7

2.1 解压缩包

  1. [mdrill01@mdrill01 ~]$ tar -zxvf zeromq-2.1..tar.gz

2.2 Build&&Install

  1. $ cd
  2. $ ./autogen.sh
  3. $ ./configure
  4. $ make
  5. $ sudo make install

Step 3:编译安装jzmq

3.1从github上clone jzmq

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

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

  1. $ cd jzmq
  2. $ ./autogen.sh
  3. $ ./configure
  4. $ make          #在执行make的时候报make[1]: *** No rule to make target `classdist_noinst.stamp', needed by `org/zeromq/ZMQ.class'. Stop.
  5. $ sudo make install

3.3错误排除

  1)确保Step 1的依赖包安装完全

  2)检查JDK是不是用的openjdk6,如果不是请将JAVA_HOME临时指向/usr/lib/jvm/java-1.6.0-openjdk.x86_64/

  1. [mdrill01@mdrill01 ~]$ echo $JAVA_HOME
  2. /usr/java/jdk1..0_45
  3. [mdrill01@mdrill01 ~]$ JAVA_HOME=/usr/lib/jvm/java-1.6.-openjdk.x86_64/

3.4解决错误

  1)将目录切换至jzmq/src下

  2)touch classdist_noinst.stamp

  3)执行:

  1. 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)

  1. cd ..
  2. ./autogen.sh./configure
  3. make
  4. sudo make install

  5)测试是否安装成功,切换至jzmq/perf/目录下,执行sh local_lat.sh tcp://127.0.0.1:5000 1 100进行测试:

  1. [mdrill01@mdrill01 jzmq]$ cd perf/
  2. [mdrill01@mdrill01 perf]$ sh local_lat.sh tcp://127.0.0.1:5000 1 100
  3. Exception in thread "main" java.lang.UnsatisfiedLinkError: no jzmq in java.library.path
  4. at java.lang.ClassLoader.loadLibrary(ClassLoader.java:)
  5. at java.lang.Runtime.loadLibrary0(Runtime.java:)
  6. at java.lang.System.loadLibrary(System.java:)
  7. at org.zeromq.ZMQ.<clinit>(ZMQ.java:)
  8. at local_lat.main(local_lat.java:)

  no jzmq in java.library.path???

  解决办法:

  1. export JAVA_LIBRARY_PATH=/usr/local/lib
  2. 或者export LD_LIBRARY_PATH=/usr/local/lib
  3. 最好将其加入~/.bashrc
  4. [mdrill01@mdrill01 perf]$ vi ~/.bashrc
  5. export LD_LIBRARY_PATH=/usr/local/lib

  然后在进行测试一切OK,首先在一个终端下执行:sh local_lat.sh tcp://127.0.0.1:5000 1 100

  1. [mdrill01@mdrill01 perf]$ source ~/.bashrc
  2. [mdrill01@mdrill01 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

  1. [mdrill01@mdrill01 jzmq]$ cd perf/
  2. [mdrill01@mdrill01 perf]$ pwd
  3. /home/mdrill01/component/jzmq/perf
  4. [mdrill01@mdrill01 perf]$ sh remote_lat.sh tcp://127.0.0.1:5000 1 100
  5. message size: [B]            #####说明测试成功
  6. roundtrip count:
  7. mean latency: 140.0 [us]
  8. [mdrill01@mdrill01 perf]$

参考:Compiling JZMQ on Ubuntu

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

Linux(CentOS)安装配置zeromq、jzmq(解决各种问题)的更多相关文章

  1. 阿里云服务器Linux CentOS安装配置(零)目录

    阿里云服务器Linux CentOS安装配置(零)目录 阿里云服务器Linux CentOS安装配置(一)购买阿里云服务器 阿里云服务器Linux CentOS安装配置(二)yum安装svn 阿里云服 ...

  2. 阿里云服务器Linux CentOS安装配置(九)shell编译、打包、部署

    阿里云服务器Linux CentOS安装配置(九)shell编译.打包.部署 1.查询当前目录以及子目录下所有的java文件,并显示查询结果 find . -name *.java -type f - ...

  3. 阿里云服务器Linux CentOS安装配置(八)nginx安装、配置、域名绑定

    阿里云服务器Linux CentOS安装配置(八)nginx安装.配置.域名绑定 1.安装nginx yum -y install nginx 2.启动nginx service nginx star ...

  4. 阿里云服务器Linux CentOS安装配置(七)域名解析

    阿里云服务器Linux CentOS安装配置(七)域名解析 1.购买域名 登录阿里云,左侧菜单点击[域名],然后[域名注册],完成域名购买.(一般首年45元) 2.添加域名解析 在域名列表里点击你的域 ...

  5. 阿里云服务器Linux CentOS安装配置(六)resin多端口配置、安装、部署

    阿里云服务器Linux CentOS安装配置(六)resin多端口配置.安装.部署 1.下载resin包 http://125.39.66.162/files/2183000003E08525/cau ...

  6. 阿里云服务器Linux CentOS安装配置(五)jetty配置、部署

    阿里云服务器Linux CentOS安装配置(五)jetty配置.部署 1.官网下载jetty:wget http://repo1.maven.org/maven2/org/eclipse/jetty ...

  7. 阿里云服务器Linux CentOS安装配置(四)yum安装tomcat

    阿里云服务器Linux CentOS安装配置(四)yum安装tomcat 1.yum -y install tomcat  执行命令后,会帮你把jdk也安装好 2.tomcat安装目录:/var/li ...

  8. 阿里云服务器Linux CentOS安装配置(三)yum安装mysql

    阿里云服务器Linux CentOS安装配置(三)yum安装mysql 1.执行yum安装mysql命令:yum -y install mysql-server mysql-devel 2.启动mys ...

  9. 阿里云服务器Linux CentOS安装配置(二)yum安装svn

    阿里云服务器Linux CentOS安装配置(二)yum安装svn 1.secureCRT连接服务器 2.先创建一个文件夹,用来按自己的习惯来,用来存放数据 mkdir /data 3.yum安装sv ...

随机推荐

  1. ROS Node/Topic/Message/Service的一些问题

    1.Node http://blog.exbot.net/archives/1412 (摘自老王说ros) node干的什么活?callback queue里的活.这个callback queue里的 ...

  2. Storages and virtual servers

    1. IBM Storages: SONAS,V7k,V7ku,SVC,XIV 存储设备都安装了个性化定制的Linux系统,来完成不同的服务,这几台存储设备使用原理都是类似的,以SONAS (Scal ...

  3. mobilebone.js 移动web APP单页切换骨架

    轻便体积小 原生无依赖 插件可扩展 设计无限制 动效可定制 动静两相宜 能进亦能退 桌面也兼修 一句话功能简介跟传统网页浏览的差别仅仅在于无刷新! 例如,我们浏览首页,首页上有个如下HTML链接: & ...

  4. asp.net页面压缩

    http压缩方法(IIS 6.0 与IIS 7.0的详解)   在网上看了有关这方面的博客,再加上自己的实践,整理了一下,希望对大家有所帮助 本片文章采用两种压缩方法:一种是在IIS上开启GZIP压缩 ...

  5. JQuery EasyUi 扩展combox验证

    随笔记录一下 1.通过select text的值验证 /** * 扩展combox验证,easyui原始只验证select text的值,不支持value验证() */ (function($){ c ...

  6. C# 根据年月获得此月第一天和最后一天,并计算工作日

    string str = "2015年3月"; ); ); , secondIndex - firstIndex - ); , ); DateTime dt = DateTime. ...

  7. MVC 使用PageList进行分页

    1.新建MVC项目 2.在Web项目下添加PagedList nuget 命令 :install-package pagedlist.mvc 在安装完成之后,会在Content下添加PagedList ...

  8. 回溯算法————n皇后、素数串

    回溯就是算法是搜索算法中一种控制策略,是一个逐个试探的过程.在试探的过程中,如果遇到错误的选择,就会回到上一步继续选择下一种走法,一步一步的进行直到找到解或者证明无解为止. 如下是一个经典回溯问题n皇 ...

  9. typedef用法总结。

    引用贴:http://www.cnblogs.com/csyisong/archive/2009/01/09/1372363.html 首先#define为预处理,与typedef是完全不同的机制.详 ...

  10. "Classifying plankton with deep neural networks" notes

    cross entropy loss is not quite the same as optimizing classification accuracy. Althougth the two ar ...