安装一个zookeeper集群1120

1、安装一个zookeeper集群

2、上传storm的安装包,解压 cd/home/hadoop

cd /home/hadoop/app/apache-storm-0.9.2-incubating/conf
3、修改配置文件storm.yaml

#所使用的zookeeper集群主机
storm.zookeeper.servers:
- “zjgm01”
- “zjgm02”
- “zjgm03”

#nimbus所在的主机名
nimbus.host: “zjgm01”

cd /home/hadoop/app/apache-storm-0.9.2-incubating/bin

zjgm01
启动storm
在nimbus主机上
./storm nimbus
./storm ui

zjgm02 zjgm03
在supervisor主机上
./storm supervisor
OkBolt

package com.zhongruan.storm;

import backtype.storm.task.TopologyContext;
import backtype.storm.topology.BasicOutputCollector;
import backtype.storm.topology.OutputFieldsDeclarer;
import backtype.storm.topology.base.BaseBasicBolt;
import backtype.storm.tuple.Tuple;

import java.io.FileWriter;
import java.io.IOException;
import java.util.Map;
import java.util.UUID;

public class OkBolt extends BaseBasicBolt {
FileWriter fileWriter=null;

public void prepare(Map stormConf, TopologyContext context) {
    try {
        fileWriter=new FileWriter("/home/hadoop/stormdata/"+ UUID.randomUUID());
    } catch (IOException e) {
        e.printStackTrace();
    }
}

public void execute(Tuple tuple, BasicOutputCollector basicOutputCollector) {
    String name=tuple.getString(0);
    String fName=name+"_ok";
    try {
        //华为小米
        fileWriter.write(fName);
        fileWriter.write("\n");
        fileWriter.flush();
    } catch (IOException e) {
        e.printStackTrace();
    }
}


public void declareOutputFields(OutputFieldsDeclarer outputFieldsDeclarer) {

}

}

RandomSpount

package com.zhongruan.storm;

import backtype.storm.spout.SpoutOutputCollector;
import backtype.storm.task.TopologyContext;
import backtype.storm.topology.OutputFieldsDeclarer;
import backtype.storm.topology.base.BaseRichSpout;
import backtype.storm.tuple.Fields;
import backtype.storm.tuple.Values;

import java.util.Map;
import java.util.Random;

public class RandomSpount extends BaseRichSpout {
String[] phones={“iphone”,“huawei”,“xiaomi”,“xiaolajiao”,“meizu”};
private SpoutOutputCollector collector;

public void open(Map map, TopologyContext topologyContext, SpoutOutputCollector spoutOutputCollector) {
    this.collector=spoutOutputCollector;
}

public void nextTuple() {
    Random random=new Random();
    int index=random.nextInt(phones.length);
    String phonename=phones[index];
    collector.emit(new Values(phonename));
}

public void declareOutputFields(OutputFieldsDeclarer outputFieldsDeclarer) {
    outputFieldsDeclarer.declare(new Fields("pn"));
}

}

ToMain

package com.zhongruan.storm;

import backtype.storm.Config;
import backtype.storm.StormSubmitter;
import backtype.storm.generated.AlreadyAliveException;
import backtype.storm.generated.InvalidTopologyException;
import backtype.storm.generated.StormTopology;
import backtype.storm.topology.TopologyBuilder;

public class ToMain {
public static void main(String[] args) throws AlreadyAliveException, InvalidTopologyException {
TopologyBuilder builder=new TopologyBuilder();

    builder.setSpout("randomSpount",new RandomSpount());
    builder.setBolt("upperBolt",new UpperBolt(),4).shuffleGrouping("randomSpount");
    builder.setBolt("okbolt",new OkBolt(),4).shuffleGrouping("upperBolt");
    StormTopology topology = builder.createTopology();

    Config conf=new Config();
    conf.setNumAckers(4);
    StormSubmitter.submitTopology("ramtopology",conf,topology);

}

}

UpperBolt

package com.zhongruan.storm;

import backtype.storm.topology.BasicOutputCollector;
import backtype.storm.topology.OutputFieldsDeclarer;
import backtype.storm.topology.base.BaseBasicBolt;
import backtype.storm.tuple.Fields;
import backtype.storm.tuple.Tuple;
import backtype.storm.tuple.Values;

public class UpperBolt extends BaseBasicBolt {
public void execute(Tuple tuple, BasicOutputCollector basicOutputCollector) {
String phonename=tuple.getString(0);
String upName=phonename.toUpperCase();
basicOutputCollector.emit(new Values(upName));
}

public void declareOutputFields(OutputFieldsDeclarer outputFieldsDeclarer) {
      outputFieldsDeclarer.declare(new Fields("uppername"));
}

}

/home/hadoop/app/apache-storm-0.9.2-incubating
上传jar storm1.jar

bin/storm jar /home/hadoop/storm1.jar com.zhongruan.storm.ToMain

在这里插入图片描述
关掉
./storm list

./storm kill ramtopology
在这里插入图片描述
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值