初识storm

Storm:实时处理领域的Hadoop
 在 Storm 集群中,有两类节点:主节点 master node 和工作节点 worker nodes。主节点运行着一个叫做 Nimbus 的守护进程。这个守护进程负责在集群中分发代码,为工作节点分配任务,并监控故障。Supervisor守护进程作为拓扑的一部分运行在工作节点上。一个 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(配置帮助页面)


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集群启动情况,如下图所示


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开发过程中的问题与建议


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值