kylin 在部署的時(shí)候需要考慮的幾點(diǎn):
1处面,不能污染現(xiàn)有的大數(shù)據(jù)環(huán)境,通過(guò)大數(shù)據(jù)客戶(hù)端的方式提供部署的機(jī)器昵济。
2或颊,讀的負(fù)載均衡問(wèn)題传于,需要有session,權(quán)限等粘滯的功能平挑。選擇好負(fù)載均衡工具系草,haproxy,nginx唇辨,lvs能耻。
3晓猛,kylin集群中只能有一個(gè)job節(jié)點(diǎn)(也就是寫(xiě)的節(jié)點(diǎn)),如何保證高可用戒职?
4洪燥,kylin的元數(shù)據(jù)乳乌,cube數(shù)據(jù)都是存儲(chǔ)在hbase中的市咆,對(duì)hbase的讀寫(xiě)性能要求高,需要找到平衡點(diǎn)客情。
一下是轉(zhuǎn)自:http://www.cnblogs.com/brucexia/p/6221528.html膀斋, 分析不同部署方式的優(yōu)缺點(diǎn)痹雅。
根據(jù)官網(wǎng)介紹,其實(shí)部署Kylin非常簡(jiǎn)單摔蓝,稱(chēng)為非侵入式安裝愉耙,也就是不需要去修改已有的Hadoop大數(shù)據(jù)平臺(tái)。你只需要根據(jù)的環(huán)境下載適合的Kylin安裝包猜谚,選擇一個(gè)Hadoop節(jié)點(diǎn)部署即可赌渣,Kylin使用標(biāo)準(zhǔn)的Hadoop API跟各個(gè)組件進(jìn)行通信坚芜,不需要對(duì)現(xiàn)有的Hadoop安裝額外的Agent。
Kylin部署的架構(gòu)是一個(gè)分層的結(jié)構(gòu)鸿竖,最底層是數(shù)據(jù)來(lái)源層千贯,我們可以通過(guò)Sqoop等工具將數(shù)據(jù)遷移到HDFS分布式文件系統(tǒng)。Kylin依賴(lài)Hadoop平臺(tái)魁袜,包括組件HBase,Hive店量,MapReduce等鞠呈,即Kylin運(yùn)行在Hadoop構(gòu)建的大數(shù)據(jù)層之上,Kylin平臺(tái)部署好之后旱爆,業(yè)務(wù)系統(tǒng)連接Kylin窘茁,Kylin就把壓力發(fā)布到Hadoop上做并行計(jì)算和查詢(xún)。
對(duì)于Kylin的部署架構(gòu)房待,一般都四種典型部署方式驼抹,從簡(jiǎn)單到復(fù)雜框冀。
- 第一種方式:
單實(shí)例部署方式(Single instance)。在Hadoop集群的一個(gè)節(jié)點(diǎn)上部署镣隶,然后啟動(dòng)即可诡右。建模人員通過(guò)Kylin Web登錄轻猖,進(jìn)行建模和創(chuàng)建Cube。業(yè)務(wù)分析系統(tǒng)等發(fā)送SQL到Kylin猜煮,Kylin查詢(xún)Cube并返回結(jié)果王带。
這種部署最大特點(diǎn)是簡(jiǎn)單快捷市殷,而是單點(diǎn),如果并發(fā)請(qǐng)求比較多(QPS > 50)搞挣,單臺(tái)Kylin節(jié)點(diǎn)將成為瓶頸,所以推薦使用集群(Cluster)部署方式仓犬。
- 第二種方式:
Kylin部署集群方式相對(duì)來(lái)說(shuō)也簡(jiǎn)單舍肠,只需要增加Kylin的節(jié)點(diǎn)數(shù)翠语,因?yàn)镵ylin的元數(shù)據(jù)(Metadata)是存儲(chǔ)在HBase中,只需要在Kylin中配置险毁,讓Kylin的每個(gè)節(jié)點(diǎn)都能訪(fǎng)問(wèn)同一個(gè)Metadata表就形成了Kylin集群(kylin.metadata.url 值相同)们童。并且Kylin集群中只有一個(gè)Kylin實(shí)例運(yùn)行任務(wù)引擎(kylin.server.mode=all),其它Kylin實(shí)例都是查詢(xún)引擎(kylin.server.mode=query)模式跷跪。通称氚澹可以使用LDAP來(lái)管理用戶(hù)權(quán)限甘磨。
為了實(shí)現(xiàn)負(fù)載均衡,即將不同用戶(hù)的訪(fǎng)問(wèn)請(qǐng)求通過(guò)Load Balancer(負(fù)載均衡器)(比如lvs卿泽,nginx等)分發(fā)到每個(gè)Kylin節(jié)點(diǎn)滋觉,保證Kylin集群負(fù)載均衡。對(duì)于負(fù)載均衡器可以啟用SSL加密第租,安裝防火墻我纪,對(duì)外部用戶(hù)只用暴露負(fù)載均衡器的地址和端口號(hào),這樣也保證Kylin系統(tǒng)對(duì)外部來(lái)說(shuō)是隔離的璧诵。
我們的生產(chǎn)環(huán)境中使用的LB是nginx之宿,用戶(hù)通過(guò)LB的地址訪(fǎng)問(wèn)Kylin時(shí),LB將請(qǐng)求通過(guò)負(fù)載均衡調(diào)度算法分發(fā)到Kylin集群的某一個(gè)節(jié)點(diǎn)色难,不會(huì)出現(xiàn)單點(diǎn)問(wèn)題等缀,同時(shí)如果某一個(gè)Kylin節(jié)點(diǎn)掛掉了尺迂,也不會(huì)影響用戶(hù)的分析。
這種方式也不是完美的蹲盘,但是一般場(chǎng)景下是可以滿(mǎn)足的膳音。
- 第三種方式:
Kylin非常適合讀寫(xiě)分離,原因是Kylin的工作負(fù)載有兩種:
Cube的計(jì)算苍凛,調(diào)用MapReduce進(jìn)行批量計(jì)算醇蝴,而且延時(shí)很長(zhǎng)的計(jì)算毒姨,需要密集的CPU和IO資源
在線(xiàn)的實(shí)時(shí)查詢(xún)計(jì)算,就是Cube計(jì)算結(jié)束后進(jìn)行查詢(xún),而且都是只讀的操作俘枫,要求響應(yīng)快逮走,延遲低。
通過(guò)分析茅信,我們發(fā)現(xiàn)第一種Cube的計(jì)算會(huì)對(duì)集群帶來(lái)很大負(fù)載,從而會(huì)影響在線(xiàn)的實(shí)時(shí)查詢(xún)計(jì)算妖谴,所有需要做讀寫(xiě)分離酌摇。如果你的環(huán)境窑多,基本都是利用夜間執(zhí)行Cube計(jì)算,白天上班時(shí)間進(jìn)行查詢(xún)分析技潘,那么可以考慮采用第二種部署方式千康。
其實(shí)Kylin也很容易部署這種組網(wǎng)方式吧秕。你需要單獨(dú)部署一套HBase集群,在部署Kylin時(shí)颠毙,Hadoop配置項(xiàng)指向運(yùn)算的集群砂碉,HBase的配置項(xiàng)指向單獨(dú)部署的HBase集群增蹭。說(shuō)白了,就是Hadoop和HBase集群的分離霎奢。
這種部署方式通常有以下步驟:
步驟一:分布部署Hadoop(MapReduce計(jì)算集群饼灿,以下簡(jiǎn)稱(chēng)計(jì)算)集群和HBase(HDFS存儲(chǔ)碍彭,以下簡(jiǎn)稱(chēng)存儲(chǔ))集群悼潭;兩套集群環(huán)境的Hadoop核心版本要一致舞箍,分別有各自的HDFS疏橄、Zookeeper等組件;
步驟二:在準(zhǔn)備運(yùn)行Kylin的服務(wù)器上,安裝和配置Hadoop(計(jì)算)集群的客戶(hù)端椭微;通過(guò) hadoop , hdfs , hive , mapred 等命令,可以訪(fǎng)問(wèn)Hadoop集群上的服務(wù)和資源颗祝;
步驟三:在準(zhǔn)備運(yùn)行Kylin的服務(wù)器上螺戳,安裝和配置HBase(存儲(chǔ))集群的HBase客戶(hù)端;通過(guò) hbase 命令盖腿,可以訪(fǎng)問(wèn)和操作HBase集群翩腐;
步驟四:確保Hadoop(計(jì)算)集群和HBase(存儲(chǔ))集群的網(wǎng)絡(luò)互通膏燃,且無(wú)需額外驗(yàn)證;可以從Hadoop(計(jì)算)集群的任一節(jié)點(diǎn)上等龙,拷貝文件到HBase(存儲(chǔ))集群的任一節(jié)點(diǎn)伶贰;
步驟五:確保在準(zhǔn)備運(yùn)行Kylin的服務(wù)器上幕袱,通過(guò)hdfs命令行加上HBase集群NameNode地址的方式(比如hdfs dfs -ls hdfs://pro-jsz800000:8020/),可以訪(fǎng)問(wèn)和操作存儲(chǔ)集群的HDFS涯捻。
步驟六:為了提升Kylin查詢(xún)響應(yīng)效率望迎,準(zhǔn)備運(yùn)行Kylin的服務(wù)器辩尊,在網(wǎng)絡(luò)上應(yīng)靠近HBase集群,以確保密集查詢(xún)時(shí)的網(wǎng)絡(luò)低延遲轿亮;
步驟七:編輯conf/kylin.properties我注,設(shè)置 kylin.hbase.cluster.fs 為HBase集群HDFS的url,例如:kylin.hbase.cluster.fs=hdfs://pro-jsz800000:8020
步驟八:重啟Kylin服務(wù)實(shí)例
- 第四種方式:
前面三種方式迟隅,應(yīng)該是絕大多數(shù)公司或個(gè)人研究采用的部署方式但骨,其實(shí)還有一種更高級(jí)的部署是Staging和production多環(huán)境的部署。其實(shí)做開(kāi)發(fā)的一般都會(huì)經(jīng)歷這樣的環(huán)境智袭,我們一個(gè)需求完成后奔缠,首先會(huì)進(jìn)行開(kāi)發(fā)環(huán)境測(cè)試,然后部署到Staging(可以理解為Production生產(chǎn)環(huán)境的鏡像吼野,或者測(cè)試環(huán)境)校哎,最后沒(méi)有問(wèn)題后才會(huì)發(fā)布到Production生產(chǎn)環(huán)境,這樣做可以避免不當(dāng)?shù)脑O(shè)計(jì)導(dǎo)致對(duì)生產(chǎn)環(huán)境的破壞瞳步。
使用這種方案的場(chǎng)景:
假如一個(gè)新用戶(hù)使用Kylin闷哆,可能他對(duì)Cube設(shè)計(jì)不是很熟悉谚攒,創(chuàng)建了一個(gè)非常不好的Cube阳准,導(dǎo)致Cube計(jì)算時(shí)產(chǎn)生大量的不必要的運(yùn)算,或者查詢(xún)花費(fèi)的時(shí)間很長(zhǎng)馏臭,會(huì)對(duì)其他業(yè)務(wù)造成影響野蝇。我們不希望這個(gè)有問(wèn)題的Cube能進(jìn)入生產(chǎn)環(huán)境,那么就需要建立一個(gè)Staging環(huán)境括儒,或則成為QA的環(huán)境绕沈。
Kylin提供了一個(gè)工具,幾分鐘就可以將一個(gè)Cube從Staging環(huán)境遷移到Production環(huán)境帮寻,不需要在新環(huán)境中重新build乍狐。因?yàn)樵谏a(chǎn)環(huán)境的Cube,將不允許修改固逗,只能做增量的build浅蚪。這樣做保證了Staging和Production的分離藕帜,保證發(fā)布到Production上的Cube都是經(jīng)過(guò)評(píng)審過(guò)的,所以對(duì)Production環(huán)境不會(huì)造成不可預(yù)料的影響惜傲,從而保證了Production環(huán)境的穩(wěn)定洽故。