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. CSS3图片折角效果

    本篇文章由:http://xinpure.com/css3-picture-angle-effect/ 图片折角效果主要是通过设置 border 属性实现的效果 效果预览 效果解析 假设我们将一个元素 ...

  2. Redhat 企业版 LINUX AS5.0 下载地址

    http://www.5dlinux.com/article/1/2007/linux_7905.html最新的企业版Linux操作系统Red Hat Enterprise Linux 5.沉寂两年多 ...

  3. Strace--系统调用分析问题集锦

    ---------------------------------------------------------------------------------------------------- ...

  4. openstack neutron L3 HA

    作者:Liping Mao  发表于:2014-08-20 版权声明:能够随意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本版权声明 近期Assaf Muller写了一篇关于Neutro ...

  5. ASDASASD

    测试 markdown 随笔 asdsdf sdf

  6. Atitti. 语法树AST、后缀表达式、DAG、三地址代码

    Atitti. 语法树AST.后缀表达式.DAG.三地址代码 抽象语法树的观点认为任何复杂的语句嵌套情况都可以借助于树的形式加以描述.确实,不得不承认应用抽象语法树可以使语句翻译变得相对容易,它很好地 ...

  7. redis命令_ZREM

    ZREM key member [member ...] 移除有序集 key 中的一个或多个成员,不存在的成员将被忽略. 当 key 存在但不是有序集类型时,返回一个错误. 在 Redis 2.4 版 ...

  8. std::thread “terminate called without an active exception”

    最近在使用std::thread的时候,遇到这样一个问题: std::thread t(func); 如果不使用调用t.join()就会遇到 "terminate called whitho ...

  9. lua 小技巧

    lua 小技巧 把常用的工具函数添加到 _G 里面,所有的文件都可以直接调用: ``` lua -- 在 a 文件中将工具函数添加到 _G: _G.IsEmptyStr = function(str) ...

  10. STM32F10x_SPI(硬件接口 + 软件模拟)读写Flash(25Q16)

    推荐 分享一个大神的人工智能教程.零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到人工智能的队伍中来! http://www.captainbed.net/strongerhuang Ⅰ.写在前 ...