Storm大資料位置
Storm
流式處理
Twitter 的新流式大資料分析解決方案
S4
Yahoo!
流式處理
來自 Yahoo! 的分散式流計算平臺
Hadoop
Apache
批處理
MapReduce 正規化的第一個開源實現
Spark
UC Berkeley AMPLab
批處理/流處理
支援記憶體中資料集和恢復能力的最新分析平臺
Disco
Nokia
批處理
Nokia 的分散式 MapReduce 框架
HPCC
LexisNexis
批處理
HPC 大資料叢集
二、Storm概念及元件
6. Spout:在一個topology中產生源資料流的元件。通常情況下spout會從外部資料來源中讀取資料,然後轉換為topology內部的源資料。Spout是一個主動的角色,其介面中有個nextTuple()函式,storm框架會不停地呼叫 此函式,使用者只要在其中生成源資料即可。
7. Bolt: 在一個topology中接受資料然後執行處理的元件。Bolt可以執行過濾、函式操作、合併、寫資料庫等任何操作。Bolt是一個被動的角色,其介面中有個execute(Tuple input)函式,在接受到訊息後會呼叫此函式,使用者可以在其中執行自己想要的操作。
8. Tuple: Storm Spout、Bolt元件訊息傳遞的基本單元(資料模型),Tuple是包含名稱的列表,Storm支援所有原生型別,位元組陣列為Tuple欄位 傳遞,如果要傳遞自定義物件,需要實現介面serializer。
三、建立邏緝元件
下圖二所示,建立Storm元件Spout、Bolt及Storm拓撲構建並結合拓撲描述併發情況(Worker、Executor、Task關係)
SPOUT:自定義類實現IRichSpout介面或繼承BaseRichSpout即建立Spout元件。Spout從外部資料來源讀取資料(佇列、DRPC等)為Storm拓撲提供資料,Storm可以實現可靠或不可靠,可靠性表現在Storm可以對Storm toplogy處理失敗的tuple進行重發,反之不處理。
Spout可以傳送多個流,透過在呼叫SpoutOutputCollector類的emit方法的同時使用declareStream方法申 明並指定多個流傳送。
Spout中主要方法nextTuple,能夠傳送新流到toplopy及無資料流傳送時直接返回。最重要的是不要阻塞 nextTuple方法,因為Spout在同一個執行緒執行。Spout主要將讀取到的資料組織成Tuple傳送到Bolt元件處 理。
public class SimpleTopolog {
public static void main(String[] args) throws Exception {
// 解決ZOOKEEPER客戶端連線服務端問題(IPV6)
System.setProperty("java.net.preferIPv4Stack", "true");
TopologyBuilder builder = new TopologyBuilder();
builder.setSpout("green-spout", new GreenSpout(), 2) // 2 executor(執行緒)
.setNumTasks(4); // 4 task 對應2個executor
builder.setBolt("yellow-bolt", new YellowBolt(),6) // 6 executor(執行緒)
.shuffleGrouping("green-spout"); //tuple隨機分發到bolt處理
builder.setBolt("blue-bolt", new BlueBolt(), 2) // 2 executor(執行緒)
.shuffleGrouping("yellow-bolt");
Config conf = new Config();
/*設定工作程式數*/
conf.setNumWorkers(2);
conf.setDebug(true);
/*本地執行模式*/
StormRunner.runTopologyLocally(builder.createTopology(), "simpleTopology", conf, 0);
}
————————————————
package com.sunshine.tools;
import backtype.storm.Config;
import backtype.storm.LocalCluster;
import backtype.storm.StormSubmitter;
import backtype.storm.generated.AlreadyAliveException;
import backtype.storm.generated.InvalidTopologyException;
import backtype.storm.generated.StormTopology;
public final class StormRunner {
private static final int MILLIS_IN_SEC = 1000;
private StormRunner() {
}
public static void runTopologyLocally(StormTopology topology, String topologyName, Config conf, int runtimeInSeconds)
throws InterruptedException {
LocalCluster cluster = new LocalCluster();
cluster.submitTopology(topologyName, conf, topology);
Thread.sleep((long) runtimeInSeconds * MILLIS_IN_SEC);
cluster.killTopology(topologyName);
cluster.shutdown();
}
public static void runTopologyRemotely(StormTopology topology, String topologyName, Config conf)
throws AlreadyAliveException, InvalidTopologyException {
StormSubmitter.submitTopology(topologyName, conf, topology);
}
}
推薦閱讀:
https://blog.csdn.net/yangyangmyself/article/details/52346859
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69949806/viewspace-2914509/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 大資料Storm 之RCE實踐大資料ORM
- 大資料6.1 - 實時分析(storm和kafka)大資料ORMKafka
- 上海寶付大資料分析storm結合大資料ORM
- 大資料框架對比 - Hadoop、Spark、Storm、Samza、Spark、Flink大資料框架HadoopSparkORM
- Python爬取所有人位置資訊——騰訊位置大資料!Python大資料
- 大資料Storm相比於Spark、Hadoop有哪些優勢(摘錄)大資料ORMSparkHadoop
- 好程式設計師大資料學習筆記:Storm架構程式設計師大資料筆記ORM架構
- SettingsProvider資料儲存位置IDE
- 使用Storm、Kafka和ElasticSearch處理實時資料 -javacodegeeksORMKafkaElasticsearchJava
- win10 onenote資料位置在哪_win10如何開啟onenote資料位置Win10
- Storm 系列(九)—— Storm 整合 KafkaORMKafka
- gitlab資料庫儲存位置Gitlab資料庫
- StormORM
- Storm系列(六)storm和kafka整合ORMKafka
- Storm 系列(三)—— Storm 單機版本環境搭建ORM
- Storm系列(三)java編寫第個storm程式ORMJava
- 位置不可用資料夾?的破解之道!
- FourSquare:營銷生命週期中的位置資料
- Linux CentOS更改MySQL資料庫目錄位置LinuxCentOSMySql資料庫
- 走進大資料,感受大資料大資料
- springBoot+kfaka+stormSpring BootORM
- Storm與kafka整合ORMKafka
- kafka+storm+hbaseKafkaORM
- storm簡單案例ORM
- 黑猴子的家:Hive 資料倉儲位置配置Hive
- 修改資料檔案的位置的兩種方法
- oracle 修改資料檔案位置(路徑)(移動)Oracle
- 大資料hadoop資料大資料Hadoop
- Dedecms備份的資料檔案位置及備份資料庫的方法資料庫
- 大資料與資訊保安(六)天網系統與大資料 大資料大資料
- 大資料概念:史上最全大資料解析大資料
- 大資料如何採集資料?大資料的資料從何而來?大資料
- Apache Storm系列 之二( 輕鬆搞定 Storm 安裝與啟動)ApacheORM
- 美國四大運營商被曝失信,繼續出賣使用者位置資料
- 電腦微信資料夾儲存在什麼位置
- 大資料學習資料大資料
- 大資料筆記01--大資料概述大資料筆記
- 什麼叫大資料 大資料的概念大資料