1. 程式人生 > >Ebay開源 Pulsar:實時大資料分析平臺

Ebay開源 Pulsar:實時大資料分析平臺

作者:汪興朗 汪明明王巧玲

 

eBay作為全球性的商務平臺和支付行業領先者,擁有海量的使用者行為資料。基於現有的hadoop大資料處理,已經不能夠滿足業務上對實時性的需求。基於eBay過去的大資料處理的經驗和對最新技術的運用,eBay探索出一個對海量的資料流進行實時的收集,處理,分發和分析的平臺。並於20152月底開源此平臺: Pulsar.

Pulsar作為一個複雜事件處理平臺,具有快速,準確,靈活的特性,保證點到點的低延時和高可靠,從而很好得滿足了的eBay秒級實時資料分析的需求。同時每秒百萬級流量處理能力,給客戶帶來更好的個性化體驗,幫助客戶監控實時業務資訊並定製實時營銷策路,及時監測網路欺詐行為並減少機器人干預。並且
Pulsar是基於標準的分散式雲架構部署並跨越多個數據中心,從而保證了在系統升級和拓撲更新時沒有叢集停機時間。

Pulsar平臺提供了一個完整的實時大資料分析的解決方案:

該平臺能夠實時收集Event Stream,並且對Event進行實時的EnrichmentSessionization, 推送到不同的實時應用,同時能夠實時的進行統計和分析,對業務提供 Key insights.
Pulsar平臺內部,它把Event Stream看成一種類資料庫的表,在上面通過應用申明式的4GL來定義Business logic. 並且同時開源了作為支撐Pulsar 的一個全新的大資料流處理框架
: Pulsar Jetstream.
Pulsar.Stream是一個通用的全新的大資料流的處理框架。他實現了一個開放的,自動發現的Topology, 不同的應用可以分佈在不同的Data center, 通過網路進行自動的發現並且建立連線,資料主動從Producer推送到Subscriber. 在每個應用內部,通過Pipeline的方式連線各個業務模組,並且支援用4GLEPL來定義業務邏輯。整個的topology是開放的並且能夠動態擴充套件,相應的EPL也能夠進行動態的更新且沒有服務中斷。
典型的部署結構
EPL Sample:

Event filtering and routing

insert into SUBSTREAM select D1, D2, D3, D4
from RAWSTREAM where D1 = 2045573 or D2 = 2047936 or D3 = 2051457 or D4 = 2053742; // filtering
@PublishOn(topics=“TOPIC1”)   // publish sub stream at TOPIC1
@OutputTo(“OutboundMessageChannel”)
@ClusterAffinityTag(column = D1);    // partition key based on column D1
select * FROM SUBSTREAM;

Aggregate computation

// create 10-second time window context
create context MCContext start @now end pattern [timer:interval(10)];
// aggregate event count along dimension D1 and D2 within specified time window
context MCContext insert into AGGREGATE select count(*) as METRIC1, D1, D2 FROM RAWSTREAM group by D1,D2 output snapshot when terminated;
select * from AGGREGATE;

TopN computation

// create 60-second time window context
create context MCContext start @now end pattern [timer:interval(60)];
// sort to find top 10 event counts along dimensions D1, D2, and D3
// within specified time window
context MCContext insert into TOPITEMS select count(*) as totalCount, D1, D2, D3 from RawEventStream group by D1, D2, D3 order by count(*) limit 10;
select * from TOPITEMS;

關於詳細的資訊,請看

相關事件:

1.      Pulsar on QCon Shanghai 2014 –