代码参上
/**
* storm集成Kafka、Hive、JDBC、HBase、HDFS
* Created by sker on 17-11-13
* kafka集成storm,将数据发到JobBolt做中文分词逻辑;
* 结果发到不同bolt,然后分别存入hive、hbase、mysql和hdfs
*/
public class SegGoGo {
public static void main(String[] args) {
//创建一个TopologyBuilder实例
TopologyBuilder topologyBuilder = new TopologyBuilder();
LocalCluster localCluster = new LocalCluster();
Config conf = new Config();
/**
* 以下是kafka到storm的逻辑
*/
//kafka与storm集成需要一个zkHost和一个SpoutConfig
ZkHosts zkHosts = new ZkHosts("localhost:2181");
SpoutConfig spoutConfig = new SpoutConfig(zkHosts, "hbase", "/storm", "kafka");
/**
* 以下代码要做的是storm与HDFS集成
*/
//kafka与HDFS集成需要一个HDFSBolt,并进行相应参数的设定
HdfsBolt hdfsBolt = new HdfsBolt()
.withFsUrl("hdfs://localhost:9000/")//设置hdfs的url
.withRecordFormat(new DelimitedRecordFormat().withFieldDelimiter(","))//设置文件分割符
.withSyncPolicy(new CountSyncPolicy(10))//同步政策
.withFileNameFormat(new DefaultFileNameFormat().withPath("/test"))//文件命名格式,参数中设置了文件路径
.withRotationPolicy(new FileSizeRotationPolicy(1.0f, FileSizeRotationPolicy.Units.KB));//设置滚动生成文件的参数,此处为1k生成一个文件
/**
* 以下代码要做的是storm与hbase集成
*/
//storm与hbase集成
Config config = new Config();
Map<String, Object> hbConf = new HashMap<String, Object>();
hbConf.put("hbase.rootdir","hdfs://localhost:9000/sbsbsbs/h