【原】storm源码之mac os x编译twitter storm源码
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源码的更多相关文章
- 在 Mac OS 上编译 FFmpeg
本文转自:在 Mac OS 上编译 FFmpeg | www.samirchen.com 安装 Xcode 和 Command Line Tools 从 App Store 上安装 Xcode,并确保 ...
- 在 Mac OS 上编译 OBS
本文转自:在 Mac OS 上编译 OBS | www.samirchen.com 安装环境 第一步,做准备工作,安装编译 OBS 所需要的环境,流程如下: // 给当前用户添加 /usr/local ...
- Mac os:将Homebrew的下载源换成国内镜像增加下载速度(阿里云镜像)
原文转载自「刘悦的技术博客」https://v3u.cn/a_id_135 可能所有的mac os系统爱好者都遇到过下面这种倒霉情况,在网络环境不太好的时候,你满怀期待的敲下 brew install ...
- 在mac os下编译android -相关文章
1. Mac OS X下编译Android源码 http://blog.csdn.net/bulreed/article/details/22783467 2.MAC OS 编译 Android源代码 ...
- 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 ...
- 记录Mac OS下编译Thrift库
方法一:brew管理工具安装Homebrew是Mac开发包管理工具,类似于Linux的apt-get之类的,实它相当于开发软件界的 Appstore.借助该管理工具,可以自动化地安装软件包,它会自动安 ...
- QT在Mac OS上编译运行初体验
QT是一个跨平台的框架,支持PC端(Windows.Linux和Mac OS)以及移动端(Android和IOS),之前的开发大都在Windows或者Ubuntu上,考虑到项目多平台支持性,本文对Ma ...
- 在Mac OS 下 build Tesseract4.0 源码并在命令行中使用
作者电脑:Mac Mini 系统信息:OS X EI Capitan 10.11.6 Tesseract4.0github地址:https://github.com/tesseract-ocr/tes ...
- 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 ...
随机推荐
- MiniHttpServer
Mini HTTP Server which can be embed in EXE, Writen in C#(.net framework 2.0). HTTP request dispatch/ ...
- java基础讲解14-----IO
package com.io; import java.io.File;import java.io.IOException; public class IoClass { /** ...
- mongodb - collMod
该方法给集合添加一个标识,来修改集合的行为. 标识包含usePowerOf2Sizes和index. 命令格式为: db.runCommand({"collMod":<col ...
- android http post 请求与 json字符串
一.目标 android客户端发送一个json格式的http的请求,期望得到服务端的一个json反馈. 1. 客户端发送的json格式为: {"data" : "valu ...
- FreeMarker静态化文件解决SEO推广问题
1.问题背景 SEO一直是站点对外推广的一个重要手段,如何可以让搜索引擎高速搜索到站点对于增强站点的浏量,提升站点对外形象有着重要意义.那么如何可以对SEO进行优化呢?一个很经常使用的手段就是在网页的 ...
- (41)JS运动之右側中间悬浮框(对联悬浮框)
<!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> <title> ...
- iOS 9应用开发教程之ios9中实现button的响应
iOS 9应用开发教程之ios9中实现button的响应 IOS9实现button的响应 button主要是实现用户交互的.即实现响应.button实现响应的方式能够依据加入button的不同分为两种 ...
- FTP软件发送"AUTH TLS"提示 无法连接到服务器
响应: 220-FileZilla Server version 0.9.24 beta 响应: 220-written by Tim Kosse (Tim.Kosse@gmx.de) 响应: 220 ...
- OSI7层网络模型
物理层在OSI参考模型中,物理层(Physical Layer)是参考模型的最低层,也是OSI模型的第一层.物理层的主要功能是:利用传输介质为数据链路层提供物理连接,实现比特流的透明传输.物理层的作用 ...
- atitit.userService 用户系统设计 v6 q413
atitit.userService 用户系统设计 v6 q413 1. 新特性1 2. Admin login1 3. 用户注册登录2 3.1. <!-- 会员注册使用 --> 商家 ...