java 数据分组_菜鸟入门:开启Storm实时数据处理-完整案例

27201758816e5a334bd6e2687a5e87f8.png

目录

  • 1,基础环境
  • 2,mac 上storm standalone安装
  • 2.1安装storm
  • 2.2安装zookeeper
  • 2.3启动storm
  • 3,开启storm第一个Topology实时工作流
  • 4,代码结构解读
  • 5,storm 输出存储

1,基础环境

java是基础环境这一个一定需要有,其次是maven包管理,妈妈再也不用担心包的安装依赖了。当然主角storm的安装必不可少,电脑本地安装standalone的需要的依赖zookeeper。

JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk1.8.0_251.jdk/Contents/Home"
CLASS_PATH="$JAVA_HOME/lib"
PATH=".;$PATH:$JAVA_HOME/bin"

M2_HOME=/xxxxxxx/javabin/apache-maven-3.6.3
export M2_HOME
PATH=${PATH}:${JAVA_HOME}/bin:${M2_HOME}/bin

export STORM_HOME=/xxxxxxx/javabin/apache-storm-1.2.3

export ZOOKEEPER_HOME=/xxxxxxx/javabin/apache-zookeeper-3.6.1
export PATH=$PATH:$STORM_HOME/bin:$ZOOKEEPER_HOME/bin
export JAVA_HOME

2,mac 上storm standalone安装

简而言之:下载对应版本的文件包,解压到自己目录中,然后在 ~/.bash_profie 配置环境变量,见1基础环境

302d2abe244d35616b6f1383821f5017.png

2.1安装storm

下载storm http://storm.apache.org/downloads.html 注意是带有bin的安装包

2.2安装zookeeper

下载zookeeper http://mirror.bit.edu.cn/apache/zookeeper/

进入zookeeper的conf目录:cp zoo_sample.cfg zoo.cfg
启动zookeeper:bin/zkServer.sh start
查看zookeeper的运行状态: bin/zkServer.sh status

2.3启动storm

需要在apache-storm-1.2.3/conf/storm.yaml 配置IP

813609d1ce37040b7b64307e145d8f79.png

完事具备,启动你的storm:

storm nimbus&
storm supervisor& 
storm ui&

恭喜你看到下图你就成功了一半:

3e1086649f9d514319b42d6e71853d46.png

3,开启storm第一个Topology实时工作流

很人性的是 storm安装包中有完整的测试domo; 如下操作安装依赖和编译。

cd  apache-storm-1.2.3/examples/storm-starter
mvn clean install -DskipTests=true
mvn compile exec:java -Dstorm.topology=storm.starter.StatefulTopology

ef9938444eab25555cbc818f2c9ca331.png

上传至线上/storm

mvn clean install -DskipTests=true

mvn package

这里测试了两个例子

storm jar /Users/mtdp/javabin/apache-storm-1.2.3/examples/storm-starter/target/storm-starter-1.2.3.jar storm.starter.StatefulTopology production-topology-1
storm jar /Users/mtdp/javabin/apache-storm-1.2.3/examples/storm-starter/target/storm-starter-1.2.3.jar org.apache.storm.starter.WordCountTopology wordcont

4,代码结构解读

grouping策略就是在Spout与Bolt、Bolt与Bolt之间传递Tuple的方式。总共有七种方式

 1)shuffleGrouping(随机分组)

  2)fieldsGrouping(按照字段分组,在这里即是同一个单词只能发送给一个Bolt)

  3)allGrouping(广播发送,即每一个Tuple,每一个Bolt都会收到)

  4)globalGrouping(全局分组,将Tuple分配到task id值最低的task里面)

  5)noneGrouping(随机分派)

  6)directGrouping(直接分组,指定Tuple与Bolt的对应发送关系)

  7)Local or shuffle Grouping

  8)customGrouping (自定义的Grouping)

73790b7c218b3f42e70dd30cfe86ccc5.png

5,storm 输出存储

数据储存,可以根据业务需要选择:Druid, hive, redis等等。

我也自己写了一个案例,需要源代码的同学,可以私聊我。。。

storm list 查看任务状态

参考文献:

https://www.cnblogs.com/aijianiula/p/5185019.html

http://www.haroldnguyen.com/blog/2015/01/setting-up-storm-and-running-your-first-topology/

https://www.cnblogs.com/ahu-lichang/p/6871920.html

02b9530bb7df039d783d2aa3f851dbb7.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值