java工作流技術(shù)框架 主流的大數(shù)據(jù)分析框架有哪些?
主流的大數(shù)據(jù)分析框架有哪些?1、HadoopHadoop需要MapReduce分布式計(jì)算框架,根據(jù)GFS的新了HDFS分布式文件系統(tǒng),參照BigTable旗下了HBase數(shù)據(jù)存儲系統(tǒng)。Hadoop的開
主流的大數(shù)據(jù)分析框架有哪些?
1、HadoopHadoop需要MapReduce分布式計(jì)算框架,根據(jù)GFS的新了HDFS分布式文件系統(tǒng),參照BigTable旗下了HBase數(shù)據(jù)存儲系統(tǒng)。Hadoop的開源代碼特性使其藍(lán)月帝國分布式計(jì)算系統(tǒng)的很顯然的國際標(biāo)準(zhǔn)。Yahoo,F(xiàn)acebook,Amazon在內(nèi)國內(nèi)的百度,阿里巴巴等許多互聯(lián)網(wǎng)公司都以Hadoop為基礎(chǔ)搭建自己的廣泛分布。
2、Spark
Spark是在Hadoop的基礎(chǔ)上進(jìn)行了一些架構(gòu)上的改良。Spark與Hadoop的最的不同點(diǎn)本質(zhì),Hadoop建議使用硬盤來存儲數(shù)據(jù),而Spark可以使用內(nèi)存來存儲數(shù)據(jù),并且Spark是可以提供給遠(yuǎn)遠(yuǎn)超過Ha?doop100倍的運(yùn)算速度。而內(nèi)存斷電后后會丟失的數(shù)據(jù),Spark沒法主要用于一次性處理需要長期需要保存的數(shù)據(jù)。
3、Storm
Storm是Twitter主推的分布式計(jì)算系統(tǒng)。它在Hadoop的基礎(chǔ)上提供了實(shí)時動態(tài)運(yùn)算的特性,也可以動態(tài)實(shí)時的處理大數(shù)據(jù)流。類似于Hadoop和Spark,Storm不接受數(shù)據(jù)的收集和存儲工作,它然后按照網(wǎng)絡(luò)實(shí)時地的認(rèn)可數(shù)據(jù)因此實(shí)時動態(tài)的處理數(shù)據(jù),然后再然后網(wǎng)絡(luò)實(shí)時動態(tài)的傳去結(jié)果。
4、Samza
Samza是由Linkedin開源的一項(xiàng)技術(shù),是一個分布式流處理框架,專用于實(shí)時數(shù)據(jù)的處理,的很像Twitter的流處理系統(tǒng)Storm。有所不同的是Sam?za基于組件Hadoop,但是不使用了Linkedoutside自家的Kafka分布式消息系統(tǒng)。
Samza相當(dāng)范圍問題于實(shí)時自動流數(shù)據(jù)處理的業(yè)務(wù),如數(shù)據(jù)監(jiān)視跟蹤、日志服務(wù)、實(shí)時地服務(wù)等應(yīng)用,它能幫開發(fā)者通過下高速消息去處理,另外還具備良好的思想品德的容錯能力。
你平時主要使用什么Java開發(fā)框架?
就拿我們項(xiàng)目來舉些例子扒一扒吧。
我們的項(xiàng)目是一個純后臺服務(wù)的項(xiàng)目,也就是沒有前端頁面,只正式提供服務(wù);項(xiàng)目是是設(shè)計(jì)和實(shí)現(xiàn)Spring Boot來做的,核心中spring-boot-starter-web,真接組織不暴漏接口,報(bào)文使用的JSON,有極個別的接口是從老系統(tǒng)遷出上來的,是為讓動態(tài)創(chuàng)建方盡很可能地略作可以修改,所以我盡量了XML的報(bào)文;在宣布的生產(chǎn)環(huán)境中,也是在用的內(nèi)置的Tomcat;板載顯卡了Swagger,來做接口的文檔免費(fèi)批量生成。
ORM框架選擇類型的是MyBatis,導(dǎo)致項(xiàng)目中大部分的查詢都可以做到了單表查詢,但是查詢條件比較且固定,所以我然后在用注解做的SQL語句綁定。
畢竟項(xiàng)目不單可以使用了關(guān)系型數(shù)據(jù)庫,而更多的數(shù)據(jù)是加工關(guān)聯(lián)后保存到到了MongoDB中,所以我項(xiàng)目也要用了Spring Data MongoDB,我們的MongoDB是做了副本集的部署,建議使用Spring Data MongoDB,只是需要做簡單的配置,就這個可以完成對多臺MongoDB的訪問,如果不是其中一臺MongoDB掛了,對服務(wù)也沒有影響的,因?yàn)槲覀冏鯩ongoDB內(nèi)存量的時候是是可以免費(fèi)做的(MongoDB擴(kuò)內(nèi)存和CPU的時候不需要停機(jī)狀態(tài))。
和部分系統(tǒng)的交互使用到了RabbitMQ,而Spring Boot如果化入spring-boot-starter-amqp,當(dāng)然就是可以很更方便地能夠完成和RabbitMQ的板載顯卡;生產(chǎn)者和消費(fèi)者都相當(dāng)方便。
是因?yàn)槭羌兘涌诘姆?wù),就是為了緩解數(shù)據(jù)庫的壓力,所以我們據(jù)業(yè)務(wù)場景,將一些接口的結(jié)果然后緩存到Redis中(數(shù)據(jù)變化不很頻繁,因此業(yè)務(wù)場景的實(shí)時性要求不是很高)。在獨(dú)立顯卡Redis的時候,我們前后試了兩種
Spring Boot項(xiàng)目,就在用@Cacheable注解就是可以能夠完成和Redis最簡單的集成,不過后來我們畢竟設(shè)置緩存的已超時時間不夠身形靈活,我們后來該成了第二種方案;
建議使用RedisTemplate,這個可以結(jié)束對Redis的絕大部分你的操作。
我將堅(jiān)持了分享Java開發(fā)、架構(gòu)設(shè)計(jì)、程序員職業(yè)發(fā)展等方面的見解,期望能能夠得到你的關(guān)注。