目錄
-
- 目錄
- 前言
- 正文
- 目錄
- 初賽題目介紹
- 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.下載下傳源碼
-
(第1步中解壓出的檔案夾)cd /alibaba-rocketmq/bin
- 啟動namesrv
(預設NameServer的監聽端口是9876,可以用nohup sh mqnamesrv &
和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-..tar.gz
tar zxf zeromq-..tar.gz
cd zeromq-.
./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指令應該能夠看到如下程序
[email protected]:~$ jps
NimbusServer
Bootstrap
QuorumPeerMain
Supervisor
Jps
後記
之前完全沒有接觸過這三個架構,前前後後共花了兩天時間才完成配置,在這個過程中遇到許多坑,是以浪費了不少時間。希望這個筆記能夠幫助大家繞過這些坑。