Storm:实时处理领域的Hadoop
 在 Storm 集群中,有两类节点:主节点 master node 和工作节点 worker nodes。主节点运行着一个叫做 Nimbus 的守护进程。这个守护进程负责在集群中分发代码,为工作节点分配任务,并监控故障。Supervisor守护进程作为拓扑的一部分运行在工作节点上。一个 Storm 拓扑结构在不同的机器上运行着众多的工作节点。

初识storm

Storm基本概念
Nimbus:主节点
Supervisor:从节点
Worker:任务工作进程,类似于YARN的
ApplicationMaster,可以存在多个,不同的任务有不同的Worker
Executor:Worker进程在执行任务时,会启动多个Executor现成
Topology:task任务的拓扑结构,是一个DAG有向无环图

storm安装
1、官网网站:storm.apache.org下载安装包 链接:http://pan.baidu.com/s/1pLwj4dt 密码:resv
2、$ tar -zxf apache-storm-0.9.6.tar.gz -C  /opt/modules/
3、修改配置文件storm_env.ini(jdk环境)、storm.yaml(配置帮助页面)

初识storm
4、启动三台节点的zookeeper集群$ /opt/modules/cdh/zookeeper-3.4.5-cdh5.3.6/bin/zkServer.sh start
5、Step4、启动Nimbus和UI进程 $ nohup bin/storm nimbus > /dev/null 2>&1 &   $ nohup bin/storm ui > /dev/null 2>&1 &
6、启动Supervisor和logviewer进程
7、登录z01:8081查看storm集群启动情况,如下图所示

初识storm
8、运行topo $ bin/storm jar examples/storm-starter/storm-starter-topologies-0.9.6.jar WordCountTopology wordcount

TopologyBuilder分组方式
shuffleGrouping随机分组,尽量均匀分布到下游(常用) 
fieldsGrouping按字段分组(常用) 
allGrouping 副本分组,每个目标组件均收到同一个Tuple 
globalGrouping 全局分组,所有数据项发送给ID最小的那个任务(一个bolt)所处理。 
directGrouping(boltname1) 直接分组
java代码
Config conf = new Config();//继承自map
TopologyBuilder builder = new TopologyBuilder();
KafkaSpout kafkaSpout = new KafkaSpout(kafkaSpoutConfig);//程序入口,输入流
builder.setSpout("kafkaSpout", kafkaSpout, kafkaSpoutNums);//设置spout、bolt到topo中
builder.setBolt(BoltName, bolt,bolt线程数).shuffleGrouping(上个boltName, "stream");//.fieldsGrouping("","", new Fields("deviceId"));
LocalCluster cluster = new LocalCluster();  //本地模式
cluster.submitTopology("Getting-Started-Toplogie", conf, builder.createTopology());  

//StormSubmitter.submitTopology("mytopology", conf, builder.createTopology());//生产模式

初识storm

Storm开发过程中的问题与建议


相关文章:

  • 2021-06-26
  • 2021-05-26
  • 2021-11-28
  • 2021-06-30
  • 2021-12-01
  • 2021-08-23
  • 2021-10-01
猜你喜欢
  • 2022-01-21
  • 2021-12-05
  • 2021-04-03
相关资源
相似解决方案