Linux(CentOS)安装配置zeromq、jzmq(解决各种问题)
今天为Hadoop配置zeromq、jzmq遇到各种问题,先是编译出错,到编译成功后测试出错等等,下面将我遇到的问题与大家分享一下。
第一个注意点是:必须先编译安装zeromq,然后在编译jzmq,否则会报zmq.h文件找不到。
官方安装配置链接:http://zeromq.org/bindings:java
Step 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,蓝色背景的就是我们要找的。
ot@mdrill01 jzmq]# sudo yum list avaiable *openjdk*
Loaded plugins: fastestmirror, langpacks
.......
Available Packages
java-1.6.-openjdk.x86_64 :1.6.0.33-1.13.5.0.el7_0 updates
java-1.6.-openjdk-demo.x86_64 :1.6.0.33-1.13.5.0.el7_0 updates
java-1.6.-openjdk-devel.x86_64 :1.6.0.33-1.13.5.0.el7_0 updates
java-1.6.-openjdk-javadoc.x86_64 :1.6.0.33-1.13.5.0.el7_0 updates
java-1.6.-openjdk-src.x86_64 :1.6.0.33-1.13.5.0.el7_0 updates
java-1.7.-openjdk.x86_64 :1.7.0.71-2.5.3.1.el7_0 updates
java-1.7.-openjdk-accessibility.x86_64 :1.7.0.71-2.5.3.1.el7_0 updates
java-1.7.-openjdk-demo.x86_64 :1.7.0.71-2.5.3.1.el7_0 updates
java-1.7.-openjdk-devel.x86_64 :1.7.0.71-2.5.3.1.el7_0 updates
java-1.7.-openjdk-headless.x86_64 :1.7.0.71-2.5.3.1.el7_0 updates
java-1.7.-openjdk-javadoc.noarch :1.7.0.71-2.5.3.1.el7_0 updates
java-1.7.-openjdk-src.x86_64 :1.7.0.71-2.5.3.1.el7_0 updates
[root@mdrill01 jzmq]# sudo yum install java-1.6.-openjdk-devel.x86_64 #安装
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
............
Dependency Updated:
python-javapackages.noarch :3.4.-.el7_0
Complete!
[root@mdrill01 jzmq]#
Step 2:编译安装zeromq-2.1.7
2.1 解压缩包
[mdrill01@mdrill01 ~]$ tar -zxvf zeromq-2.1..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/
[mdrill01@mdrill01 ~]$ echo $JAVA_HOME
/usr/java/jdk1..0_45
[mdrill01@mdrill01 ~]$ JAVA_HOME=/usr/lib/jvm/java-1.6.-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./configure
make
sudo make install
5)测试是否安装成功,切换至jzmq/perf/目录下,执行sh local_lat.sh tcp://127.0.0.1:5000 1 100进行测试:
[mdrill01@mdrill01 jzmq]$ cd perf/
[mdrill01@mdrill01 perf]$ sh local_lat.sh tcp://127.0.0.1:5000 1 100
Exception in thread "main" java.lang.UnsatisfiedLinkError: no jzmq in java.library.path
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:)
at java.lang.Runtime.loadLibrary0(Runtime.java:)
at java.lang.System.loadLibrary(System.java:)
at org.zeromq.ZMQ.<clinit>(ZMQ.java:)
at local_lat.main(local_lat.java:)
no jzmq in java.library.path???
解决办法:
export JAVA_LIBRARY_PATH=/usr/local/lib
或者export LD_LIBRARY_PATH=/usr/local/lib
最好将其加入~/.bashrc中
[mdrill01@mdrill01 perf]$ vi ~/.bashrc
export LD_LIBRARY_PATH=/usr/local/lib
然后在进行测试一切OK,首先在一个终端下执行:sh local_lat.sh tcp://127.0.0.1:5000 1 100
[mdrill01@mdrill01 perf]$ source ~/.bashrc
[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
[mdrill01@mdrill01 jzmq]$ cd perf/
[mdrill01@mdrill01 perf]$ pwd
/home/mdrill01/component/jzmq/perf
[mdrill01@mdrill01 perf]$ sh remote_lat.sh tcp://127.0.0.1:5000 1 100
message size: [B] #####说明测试成功
roundtrip count:
mean latency: 140.0 [us]
[mdrill01@mdrill01 perf]$
Hadoop and JZMQ - no jzmq in java.library.path
Linux(CentOS)安装配置zeromq、jzmq(解决各种问题)的更多相关文章
- 阿里云服务器Linux CentOS安装配置(零)目录
阿里云服务器Linux CentOS安装配置(零)目录 阿里云服务器Linux CentOS安装配置(一)购买阿里云服务器 阿里云服务器Linux CentOS安装配置(二)yum安装svn 阿里云服 ...
- 阿里云服务器Linux CentOS安装配置(九)shell编译、打包、部署
阿里云服务器Linux CentOS安装配置(九)shell编译.打包.部署 1.查询当前目录以及子目录下所有的java文件,并显示查询结果 find . -name *.java -type f - ...
- 阿里云服务器Linux CentOS安装配置(八)nginx安装、配置、域名绑定
阿里云服务器Linux CentOS安装配置(八)nginx安装.配置.域名绑定 1.安装nginx yum -y install nginx 2.启动nginx service nginx star ...
- 阿里云服务器Linux CentOS安装配置(七)域名解析
阿里云服务器Linux CentOS安装配置(七)域名解析 1.购买域名 登录阿里云,左侧菜单点击[域名],然后[域名注册],完成域名购买.(一般首年45元) 2.添加域名解析 在域名列表里点击你的域 ...
- 阿里云服务器Linux CentOS安装配置(六)resin多端口配置、安装、部署
阿里云服务器Linux CentOS安装配置(六)resin多端口配置.安装.部署 1.下载resin包 http://125.39.66.162/files/2183000003E08525/cau ...
- 阿里云服务器Linux CentOS安装配置(五)jetty配置、部署
阿里云服务器Linux CentOS安装配置(五)jetty配置.部署 1.官网下载jetty:wget http://repo1.maven.org/maven2/org/eclipse/jetty ...
- 阿里云服务器Linux CentOS安装配置(四)yum安装tomcat
阿里云服务器Linux CentOS安装配置(四)yum安装tomcat 1.yum -y install tomcat 执行命令后,会帮你把jdk也安装好 2.tomcat安装目录:/var/li ...
- 阿里云服务器Linux CentOS安装配置(三)yum安装mysql
阿里云服务器Linux CentOS安装配置(三)yum安装mysql 1.执行yum安装mysql命令:yum -y install mysql-server mysql-devel 2.启动mys ...
- 阿里云服务器Linux CentOS安装配置(二)yum安装svn
阿里云服务器Linux CentOS安装配置(二)yum安装svn 1.secureCRT连接服务器 2.先创建一个文件夹,用来按自己的习惯来,用来存放数据 mkdir /data 3.yum安装sv ...
随机推荐
- -bash: ulimit: max user processes: cannot modify limit: Operation not permitted
安装oracle时候在创建oracle用户后,切换oracle用户时,报如下错 [root@localhost ~]# su - oracle-bash: ulimit: max user proce ...
- string.Format组合跳转路径
string url = this.ResolveClientUrl("~/page/bn_stu.aspx"); string str = string.Format(" ...
- 常用的CSS清除浮动的方法优缺点分析(个人学习笔记)
一.抛一块问题砖(display: block)先看现象: 分析HTML代码结构: <div class="outer"> <div class="di ...
- C#核编之X++详解
重点:当X++单独使用时,就是没有其他符号参与运算,这时X做自增运算,而当X++与其他运算符一起参与运算时,这时的X++因为运算优先级低,所以是最后一个参与运算的,所以看下面代码 ; x=x++;// ...
- Android SDK开发常用工具的使用及其异常处理
由于以下操作都是命令操作,所以在执行以下操作之前确保环境变量 ANDROID_HOME 指向的是正确的Android SDK的路径: 一.启动Android SDK Manager: android ...
- (转)DataTable添加行出现“该行已经属于另一个表”的错误!
1 DataTable dt1 = new DataTable(); DataTable dt2 = new DataTable(); //为dt1创建结构 DataColumn pName = ne ...
- BestCoder Round #75 1002 - King's Phone
问题描述 阅兵式上,国王见到了很多新奇东西,包括一台安卓手机.他很快对手机的图形解锁产生了兴趣. 解锁界面是一个 3×33 \times 33×3 的正方形点阵,第一行的三个点标号 1,2,31, 2 ...
- Unix下C程序内存泄露检测工具:valgrind的安装使用
Valgrind是一款用于内存调试.内存泄漏检测以及性能分析的软件开发工具. Valgrind的最初作者是Julian Seward,他于2006年由于在开发Valgrind上的工作获得了第二届Goo ...
- cocos2d-x box2d使用调试绘图
cocos2d-x box2d使用调试绘图 复制TestCpp的GLES-Render.h和GLES-Render.cpp过来. 添加一个成员变量: GLESDebugDraw *m_debugDra ...
- document.ready()的用法
1.Jquery是优秀的Javascrīpt框架,$是jquery库的申明,它很不稳定(我就常遇上),换一种稳定的写法jQuery.noConflict(); jQuery(document).rea ...