kafka+storm初探

來源:互聯網
上載者:User

標籤:blog   http   java   使用   os   io   資料   art   

    由於項目需要,最近對storm進行了預研,安裝與使用方式網上有很多樣本,在此記錄一下,備忘。

一、storm簡介

    Storm的術語包括Stream、Spout、Bolt、Task、Worker、Stream Grouping和Topology。Stream是被處理的資料。Sprout是資料來源。Bolt處理資料。Task是運行於Spout或Bolt中的 線程。Worker是運行這些線程的進程。Stream Grouping規定了Bolt接收什麼東西作為輸入資料。資料可以隨機分配(術語為Shuffle),或者根據欄位值分配(術語為Fields),或者 廣播(術語為All),或者總是發給一個Task(術語為Global),也可以不關心該資料(術語為None),或者由自訂邏輯來決定(術語為 Direct)。Topology是由Stream Grouping串連起來的Spout和Bolt節點網路。在Storm Concepts頁面裡對這些術語有更詳細的描述。

    運行Storm叢集,你需要Apache Zookeeper、ØMQ、JZMQ、Java 6和Python 2.6.6。ZooKeeper用於管理叢集中的不同組件,ØMQ是內部訊息系統,JZMQ是ØMQ的Java。

    安裝詳細:http://blog.csdn.net/qiyating0808/article/details/36041299

    啟動storm叢集:

storm nimbus >/dev/null 2>&1 &storm supervisor >/dev/null 2>&1 &storm ui >/dev/null 2>&1 &
    topology任務調度:

    在storm(0.9.2)目錄下,有測試jar包(apache-storm-0.9.2-incubating/examples/storm-starter)可以進行叢集環境驗證。

    任務調度方式:

#LocalCluster方式storm jar storm-starter-topologies-0.9.2-incubating.jar storm.starter.WordCountTopology#叢集方式storm jar storm-starter-topologies-0.9.2-incubating.jar storm.starter.WordCountTopology args

    LocalCluster屬於單機方式,白話就是可以不依賴叢集進行結果測實驗證,開發階段該方式很有用,只要將storm依賴的jar引入project,使用單機方式在本地進行測試,通過後再投放到叢集中。

範例程式碼片段(截取自WordCountTopology):


public static void main(String[] args) throws Exception {    TopologyBuilder builder = new TopologyBuilder();    builder.setSpout("spout", new RandomSentenceSpout(), 5);    builder.setBolt("split", new SplitSentence(), 8).shuffleGrouping("spout");    builder.setBolt("count", new WordCount(), 12).fieldsGrouping("split", new Fields("word"));    Config conf = new Config();    conf.setDebug(true);    if (args != null && args.length > 0) {      conf.setNumWorkers(3);      StormSubmitter.submitTopologyWithProgressBar("wordCount", conf, builder.createTopology());    }    else {      conf.setMaxTaskParallelism(3);      LocalCluster cluster = new LocalCluster();      cluster.submitTopology("word-count", conf, builder.createTopology());      Thread.sleep(10000);      cluster.shutdown();    }}
    Spout來源資料預研使用LinkedIn Kafka,將Spout根據topic來擷取對應的生產資訊,在storm叢集中消費掉。


二、Kafka簡介

    安裝過程幾乎沒有,解壓後即可直接使用。

    使用方式:


啟動kafka./kafka-server-start.sh ../config/server.properties建立topic./kafka-topics.sh --topic kafkaToptic --create --zookeeper 127.0.0.1:2181 --replication-factor 1 --partition 1 查看consumer./kafka-console-consumer.sh --zookeeper 127.0.0.1:2181 --topic kafkaToptic --from-beginning查看topic./kafka-topics.sh --list --zookeeper localhost:2181生產訊息./kafka-console-producer.sh --broker-list 127.0.0.1:9092 --topic kafkaToptic
    kafka 與storm整合開源項目也有很多,不需要二次開發,例如storm-kafka-0.8-plus。


    Kafka生產者,在大資料架構中也有使用flume進行資料生產。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.