twitter storm是由backtype公司创始人nathanmarz一手研发和开源的流计算(实时计算)框架,堪称实时计算领域的hadoop。nathanmarz也是在mac os x环境下开发和编译,因此本文介绍下如何在mac os x上编译twitter storm源码,希望对storm深入进行源码级学习和开发的朋友可以参考,本文以master上的0.9.0-wip21版本为例,其他旧版本大体类似。

1、twitter storm源码获取

storm已在github上开源,代码可通过git或svn客户端下载到本地

 git clone git://github.com/nathanmarz/storm.git -b master
svn co https://github.com/nathanmarz/storm/trunk

2、编译工具leiningen

storm源码是clojure和java的混合体,编译构建工具用的是leiningen,leiningen使用maven仓库进行包管理。storm自0.9.0版本开始对代码结构及使用的工具组件进行了重构和更新,其中的一个变化就是编译工具leiningen开始使用2.x版本,下载地址:leiningen on github

注:storm-0.9.x之前采用的是leningen-1.x版本,下载地址:leiningen releases

leiningen的安装可参考其github首页的介绍,相对来说比较简单,本文略过。对storm进行源码编译的leiningen命令如下:

 cd storm
lein deps #获取依赖包
lein compile #编译源码
lein install #安装storm-0.9.-wip21.jar包到repo

3、依赖组件zeromq&jzmq

由于storm使用了ZeroMQ通信库,编译前要安装ZeroMQ及JZMQ(Java API),安装方法基本可以参考storm源码中的bin/install_zmq.sh

(1) zeromq

 wget http://download.zeromq.org/zeromq-2.1.7.tar.gz
tar -xzf zeromq-2.1..tar.gz
cd zeromq-2.1.
./autogen.sh
./configure
make
sudo make install

(2) jzmq

 ##install jzmq (both native and into local maven cache)
git clone https://github.com/nathanmarz/jzmq.git
cd jzmq
./autogen.sh
./configure
make
sudo make install

注:编译安装jzmq的过程需要pkg-config、autoconf、automake、libtool。Mac下均可通过MacPorts安装

 sudo port install pkg-config
sudo port install autoconf
sudo port install automake
sudo port install libtool

4、执行storm编译及打包

 cd storm
vim bin/build_release.sh /*增加下述飘黄的两行*/ cp -f target/release/dependency/*.jar $DIR/lib/
cp -f target/release/*.jar $DIR/ sudo sh bin/build_release.sh /*执行打包脚本*/

注:build_release.sh是作者为简化storm打包提供的脚本,截止本文发布时脚本存在一处问题,需要按照上述方法修改。

5、打包后会在storm根目录下生成storm-0.9.0-wip21.zip,解压后即可部署到集群环境运行。

【原】storm源码之mac os x编译twitter storm源码的更多相关文章

  1. 在 Mac OS 上编译 FFmpeg

    本文转自:在 Mac OS 上编译 FFmpeg | www.samirchen.com 安装 Xcode 和 Command Line Tools 从 App Store 上安装 Xcode,并确保 ...

  2. 在 Mac OS 上编译 OBS

    本文转自:在 Mac OS 上编译 OBS | www.samirchen.com 安装环境 第一步,做准备工作,安装编译 OBS 所需要的环境,流程如下: // 给当前用户添加 /usr/local ...

  3. Mac os:将Homebrew的下载源换成国内镜像增加下载速度(阿里云镜像)

    原文转载自「刘悦的技术博客」https://v3u.cn/a_id_135 可能所有的mac os系统爱好者都遇到过下面这种倒霉情况,在网络环境不太好的时候,你满怀期待的敲下 brew install ...

  4. 在mac os下编译android -相关文章

    1. Mac OS X下编译Android源码 http://blog.csdn.net/bulreed/article/details/22783467 2.MAC OS 编译 Android源代码 ...

  5. mac os x 编译spark-2.1.0 for hadoop-2.7.3

    mac os x maven编译spark-2.1.0  for hadoop-2.7.3 1.官方文档中要求安装Maven 3.3.9+ 和Java 8 ; 2.执行         export ...

  6. 记录Mac OS下编译Thrift库

    方法一:brew管理工具安装Homebrew是Mac开发包管理工具,类似于Linux的apt-get之类的,实它相当于开发软件界的 Appstore.借助该管理工具,可以自动化地安装软件包,它会自动安 ...

  7. QT在Mac OS上编译运行初体验

    QT是一个跨平台的框架,支持PC端(Windows.Linux和Mac OS)以及移动端(Android和IOS),之前的开发大都在Windows或者Ubuntu上,考虑到项目多平台支持性,本文对Ma ...

  8. 在Mac OS 下 build Tesseract4.0 源码并在命令行中使用

    作者电脑:Mac Mini 系统信息:OS X EI Capitan 10.11.6 Tesseract4.0github地址:https://github.com/tesseract-ocr/tes ...

  9. Mac OS X 编译android内核 error: elf.h: No such file or directory 的解决方法

    1. 从网上下个elf.h放到scripts/mod/文件夹(http://www.rockbox.org/tracker/9006?getfile=16683) 2. 修改两个文件mk_elfcon ...

随机推荐

  1. Docker学习笔记之一,搭建一个JAVA Tomcat运行环境(转)

    前言 Docker旨在提供一种应用程序的自动化部署解决方案,在 Linux 系统上迅速创建一个容器(轻量级虚拟机)并部署和运行应用程序,并通过配置文件可以轻松实现应用程序的自动化安装.部署和升级,非常 ...

  2. Hadoop系统通信协议介绍(转)

    转载自 ---- http://weilaiyxj.iteye.com/blog/913166 本文约定: DN: DataNode TT: TaskTracker NN: NameNode SNN: ...

  3. zabbix_get :command not found 解决办法

    zabbix_get 找不到命令是因为没有安装上zabbix_get ,解决办法: 1.yum list all |grep zabbix 返回一个列表,表中出现 zabbix-get.x86_84 ...

  4. SqlCommandBuilder的作用

    最近看一个案例,关于如何向数据库传数据,颇有发现. 以前我的数据都是采用Sql代码用SqlCommand一条一条语句的传入数据库. 但是今天发现有更好的方法. 代码如下: SqlConnection ...

  5. android 签名、混淆打包

    1.android 签名 使用eclipse导出带签名的apk,最简单的方式. 最后一步finish ,就能导出一个xxx.keystore的文件了. 下次再发布新版本的时候,使用这个生成的签名继续使 ...

  6. centos7下安装openvpn,访问内网服务器 (三)证书取消授权

    1.创建临时证书 使用easy-rsa创建额外的证书: [root@origalom openvpn]# cd /usr/share/easy-rsa/2.0/ [root@origalom 2.0] ...

  7. PHP QR Code - QR code generator, an LGPL PHP library

    http://phpqrcode.sourceforge.net/examples/index.php http://phpqrcode.sourceforge.net/examples/index. ...

  8. 使用7za压缩zip包的命令,当中屏蔽部分文件夹内容

    7za.exe a -r  "D:\paages\prduct\produtConfig.zip" "E:/tm\packaes\poduct" -xr!doc ...

  9. oracle分区的名称和值要一致

    名称是01,后面的值也必须是02,不能是前面的是1,后面的是02,被这个问题困扰了好久.

  10. 怎么来爬取代理服务器ip地址?

    一年前突然有个灵感,想搞个强大的网盘搜索引擎,但由于大学本科学习软件工程偏嵌入式方向,web方面的能力有点弱,不会jsp,不懂html,好久没有玩过sql,但就是趁着年轻人的这股不妥协的劲儿,硬是把以 ...