您的位置:首页 > 其它

[笔记]2016阿里中间件性能挑战赛(一)

2016-12-20 23:12 387 查看

目录

目录

前言

正文
目录

初赛题目介绍

Tair环境配置

RocketMQ环境配置

Jstorm环境配置

后记

前言

跳过废话,直接看正文

2016.5-2016.8,阿里巴巴集团在天池大数据平台上举行了阿里中间件性能挑战赛,我和北京的两个队友参加了比赛。经历了初赛和复赛,最终获得了决赛的亚军。在这个过程中我收获颇丰,在此便记录下整个比赛的一些过程,并分享出初赛和复赛的代码。

正文

目录

初赛题目介绍

Tair环境配置

RocketMQ环境配置

Jstorm环境配置

初赛题目介绍

赛题官方介绍

其实就是写一个topology,整个任务流程是利用JStorm从RocketMQ拉取数据,按照要求实时计算出结果,并将结果写入Tair。

赛题所使用的三种产品是:

RocketMQ-3.2.6

Tair-2.3.4

JStorm-2.1.1

帮助文档:

Tair开发帮助文档

RocketMQ 开发帮助文档

Jstorm开发帮助文档

Tair环境配置

按照Tair部署帮助文档配置即可

值得注意的是,在ubuntu上部署会遇到一些问题,解决起来有些麻烦,因此最好在centos上部署。

RocketMQ环境配置

单机部署过程记录:

下载release包

2.下载源码

cd /alibaba-rocketmq/bin
(第1步中解压出的文件夹)

启动namesrv

nohup sh mqnamesrv &


(默认NameServer的监听端口是9876,可以用
jps
netstat -pan | grep 9876
 查看是否启动成功)

部署Broker(单Master模式)

nohup sh mqbroker -n "127.0.0.1:9876" -c ../conf/2m-2s-async/broker-a.properties &


打开第2步中下载的文件夹RocketMQ,用IDE(Eclipse/IDEA)导入rocketmq-example项目

com.alibaba.rocketmq.example.quickstart.Producer中的
DefaultMQProducer producer = new DefaultMQProducer...
这一行后加入
producer.setNamesrvAddr("127.0.0.1:9876");


com.alibaba.rocketmq.example.quickstart.Consumer中的
DefaultMQPushConsumer consumer = new DefaultMQPushConsumer...
这一行后加入
consumer.setNamesrvAddr("127.0.0.1:9876");


先运行com.alibaba.rocketmq.example.quickstart.Consumer再运行com.alibaba.rocketmq.example.quickstart.Producer就可以看到输出信息

其他参考资料:

阿里RocketMQ Quick Start

Jstorm环境配置

与storm一样,Jstorm的底层消息通信机制依赖zeromq/jzmq,另外,Jstorm通过zookeeper实现数据共享和协调服务,因此需要先安装这三个组件。

1. 安装zeromq

wget http://download.zeromq.org/zeromq-3.2.4.tar.gz tar zxf zeromq-3.2.4.tar.gz
cd zeromq-3.2.4
./configure
make
sudo make install
sudo ldconfig


2. 安装jzmq

wget https://github.com/zeromq/jzmq/tarball/master -O jzmq.tar.gz
tar zxf jzmq.tar.gz
cd jzmq/jzmq-jni
./autogen.sh
./configure
make
sudo make install


3. 安装zookeeper

下载地址:zookeeper-3.4.8.tar.gz

单机或集群的配置过程参考ZooKeeper的安装即可

4. 安装jstorm

下载地址:taobao-jstorm-2.1.1.rpm

操作系统环境:ubuntu14.04

新建用户admin和用户组admin

安装rpm包

集群配置

单机配置, 在同一台机器上启动nimbus和supervisor)

5. 全部完成后使用jps命令应该能够看到如下进程

admin@ubuntu:~$ jps
9840 NimbusServer
8051 Bootstrap
9573 QuorumPeerMain
10086 Supervisor
8924 Jps


后记

之前完全没有接触过这三个框架,前前后后共花了两天时间才完成配置,在这个过程中遇到许多坑,因此浪费了不少时间。希望这个笔记能够帮助大家绕过这些坑。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐