雲伺服器自己如何做大數據
『壹』 什麼是雲計算大數據
大數據的本質就是利用計算機集群來處理大批量的數據,大數據的技術關注點在於如何將數據分發給不同的計算機進行存儲和處理。
雲計算的本質就是將計算能力作為一種較小顆粒度的服務提供給用戶,按需使用和付費,體現了:
經濟性,不需要購買整個伺服器
快捷性,即刻使用,不需要長時間的購買和安裝部署
彈性,隨著業務增長可以購買更多的計算資源,可以需要時購買幾十台伺服器的1個小時時間,運算完成就釋放
自動化,不需要通過人來完成資源的分配和部署,通過API可以自動創建雲主機等服務。
雲計算的技術關注點在於如何在一套軟硬體環境中,為不同的用戶提供服務,使得不同的用戶彼此不可見,並進行資源隔離,保障每個用戶的服務質量。
在大數據和雲計算的關繫上,
兩者都關注對資源的調度。
大數據處理可以基於雲計算平台(如IaaS,容器)。
大數據處理也可以作為一種雲計算的服務,如AWS的EMR(Amazon Elastic MapRece )阿里雲的ODPS(Open Data ProcessingService)。
『貳』 雲計算是怎麼連接到大數據的
移動互聯網,就是將移動通信和互聯網二者結合起來,成為一體。是指互聯網的技術、平台、商業模式和應用與移動通信技術結合並實踐的活動的總稱。
雲計算(cloud computing)是基於互聯網的相關服務的增加、使用和交付模式,通常涉及通過互聯網來提供動態易擴展且經常是虛擬化的資源。雲是網路、互聯網的一種比喻說法。過去在圖中往往用雲來表示電信網,後來也用來表示互聯網和底層基礎設施的抽象。因此,雲計算甚至可以讓你體驗每秒10萬億次的運算能力,擁有這么強大的計算能力可以模擬核爆炸、預測氣候變化和市場發展趨勢。用戶通過電腦、筆記本、手機等方式接入數據中心,按自己的需求進行運算。
大數據分析是指對規模巨大的數據進行分析。大數據可以概括為5個V, 數據量大(Volume)、速度快(Velocity)、類型多(Variety)、Value(價值)、真實性(Veracity)。大數據作為時下最火熱的IT行業的詞彙,隨之而來的數據倉庫、數據安全、數據分析、數據挖掘等等圍繞大數據的商業價值的利用逐漸成為行業人士爭相追捧的利潤焦點。隨著大數據時代的來臨,大數據分析也應運而生。
『叄』 如何搭建大數據雲平台具備要素高並發
你好,您應該是景區或者文旅部門機構,這個問題深入展開不是一句兩句能講清楚地哈,簡單說一下目前現狀:目前全國范圍內搭建的規范還沒有,各地從金額來說幾千萬到幾十萬的方式都有,金額特別大的項目大概率是基建和裝修及硬體采買。如果是一個基礎設施完善的機構,基本是信息集成,包括票務、攝像、投訴、客流、停車場管理、廣播通信(一般在應急平台上)、口碑等;如果基礎設施落後,個人建議也沒有必要花太多錢去搞基建,你建設的目的是為了應用,直接找相應的數據服務公司就好了,自己又不用培養數據方面的人才,直接使用數據服務很方便,每年付費也比一下投入大量資金用於基建只有一個空殼子要好,現在國內科技公司越來下沉行業,大量的案例應用服務基本滿足大部分客戶需求了,沒必要自己照搬一套在自己本地。據我了解網路騰訊阿里都有文旅服務的部門,也有專注做文旅數據市場服務的,好像叫海鰻,他們海字輩的企業一堆,都針對不同行業。我作為文旅管委會的從業者,還是建議直接買服務,我們自己景區建的中心都沒有數據,領導也走了,晾在那每人管了,太浪費了。
『肆』 怎樣為雲計算大數據Spark高手
所謂的大數據平台不是獨立存在的,比如網路是依賴搜索引擎獲得大數據並開展業務的,阿里是通過電子商務交易獲得大數據並開展業務的,騰訊是通過社交獲得大數據並開始業務的,所以說大數據平台不是獨立存在的,重點是如何搜集和沉澱數據,如何分析數據並挖掘數據的價值。
我可能還不夠資格回答這個問題,沒有經歷過一個公司大數據平台從無到有到復雜的過程。不過說說看法吧,也算是梳理一下想法找找噴。
這是個需求驅動的過程。
曾經聽過spotify的分享,印象很深的是,他們分享說,他們的hadoop集群第一次故障是因為,機器放在靠窗的地方,太陽曬了當機了(笑)。從簡單的沒有機房放在自家窗前的集群到一直到現在復雜的數據平台,這是一個不斷演進的過程。
對小公司來說,大概自己找一兩台機器架個集群算算,也算是大數據平台了。在初創階段,數據量會很小,不需要多大的規模。這時候組件選擇也很隨意,Hadoop一套,任務調度用腳本或者輕量的框架比如luigi之類的,數據分析可能hive還不如導入RMDB快。監控和部署也許都沒時間整理,用腳本或者輕量的監控,大約是沒有ganglia、nagios,puppet什麼的。這個階段也許算是技術積累,用傳統手段還是真大數據平台都是兩可的事情,但是為了今後的擴展性,這時候上Hadoop也許是不錯的選擇。
當進入高速發展期,也許擴容會跟不上計劃,不少公司可能會遷移平台到雲上,比如AWS阿里雲什麼的。小規模高速發展的平台,這種方式應該是經濟實惠的,省了運維和管理的成本,擴容比較省心。要解決的是選擇平台本身提供的服務,計算成本,打通數據出入的通道。整個數據平台本身如果走這條路,可能就已經基本成型了。走這條路的比較有名的應該是netflix。
也有一個階段,你發現雲服務的費用太高,雖然省了你很多事,但是花錢嗖嗖的。幾個老闆一合計,再玩下去下個月工資發布出來了。然後無奈之下公司開始往私有集群遷移。這時候你大概需要一群靠譜的運維,幫你監管機器,之前兩三台機器登錄上去看看狀態換個磁碟什麼的也許就不可能了,你面對的是成百上千台主機,有些關鍵服務必須保證穩定,有些是數據節點,磁碟三天兩頭損耗,網路可能被壓得不堪重負。你需要一個靠譜的人設計網路布局,設計運維規范,架設監控,值班團隊走起7*24小時隨時准備出台。然後上面再有平台組真的大數據平台走起。
然後是選型,如果有技術實力,可以直接用社區的一整套,自己管起來,監控部署什麼的自己走起。這個階段部署監控和用戶管理什麼的都不可能像兩三個節點那樣人肉搞了,配置管理,部署管理都需要專門的平台和組件;定期Review用戶的作業和使用情況,決定是否擴容,清理數據等等。否則等機器和業務進一步增加,團隊可能會死的很慘,疲於奔命,每天事故不斷,進入惡性循環。
當然有金錢實力的大戶可以找Cloudera,Hortonworks,國內可以找華為星環,會省不少事,適合非互聯網土豪。當然互聯網公司也有用這些東西的,比如Ebay。
接下去你可能需要一些重量的組件幫你做一些事情。
比如你的數據接入,之前可能找個定時腳本或者爬log發包找個伺服器接收寫入HDFS,現在可能不行了,這些大概沒有高性能,沒有異常保障,你需要更強壯的解決方案,比如Flume之類的。
你的業務不斷壯大,老闆需要看的報表越來越多,需要訓練的數據也需要清洗,你就需要任務調度,比如oozie或者azkaban之類的,這些系統幫你管理關鍵任務的調度和監控。
數據分析人員的數據大概可能漸漸從RDBMS搬遷到集群了,因為傳統資料庫已經完全hold不住了,但他們不會寫代碼,所以你上馬了Hive。然後很多用戶用了Hive覺得太慢,你就又上馬交互分析系統,比如Presto,Impala或者SparkSQL。
你的數據科學家需要寫ML代碼,他們跟你說你需要Mahout或者Spark MLLib,於是你也部署了這些。
至此可能數據平台已經是工程師的日常工作場所了,大多數業務都會遷移過來。這時候你可能面臨很多不同的問題。
比如各個業務線數據各種數據表多的一塌糊塗,不管是你還是寫數據的人大概都不知道數據從哪兒來,接下去到哪兒去。你就自己搞了一套元數據管理的系統。
你分析性能,發現你們的數據都是上百Column,各種復雜的Query,裸存的Text格式即便壓縮了也還是慢的要死,於是你主推用戶都使用列存,Parquet,ORC之類的。
又或者你發現你們的ETL很長,中間生成好多臨時數據,於是你下狠心把pipeline改寫成Spark了。
再接下來也許你會想到花時間去維護一個門戶,把這些零散的組件都整合到一起,提供統一的用戶體驗,比如一鍵就能把數據從資料庫chua一下拉到HDFS導入Hive,也能一鍵就chua一下再搞回去;點幾下就能設定一個定時任務,每天跑了給老闆自動推送報表;或者點一下就能起一個Storm的topology;或者界面上寫幾個Query就能查詢Hbase的數據。這時候你的數據平台算是成型了。
當然,磕磕碰碰免不了。每天你都有新的問題和挑戰,否則你就要失業了不是?
你發現社區不斷在解決你遇到過的問題,於是你們架構師每天分出很多時間去看社區的進展,有了什麼新工具,有什麼公司發布了什麼項目解決了什麼問題,興許你就能用上。
上了這些亂七八糟的東西,你以為就安生了?Hadoop平台的一個大特點就是坑多。尤其是新做的功能新起的項目。對於平台組的人,老闆如果知道這是天然坑多的平台,那他也許會很高興,因為跟進社區,幫忙修bug,一起互動其實是很提升公司影響力的實情。當然如果老闆不理解,你就自求多福吧,招幾個老司機,出了問題能馬上帶路才是正道。當然團隊的技術積累不能不跟上,因為數據平台還是亂世,三天不跟進你就不知道世界是什麼樣了。任何一個新技術,都是坑啊坑啊修啊修啊才完善的。如果是關鍵業務換技術,那需要小心再小心
『伍』 如何使用雲計算,做資料庫
鄙人淺談下,歡迎批評:
SAAS軟體即服務;租賃商構建伺服器集群,然後在伺服器上虛擬化,構建服務模塊,再把這麼服務模塊租給企業使用,這樣企業就可以省去購買和維護這些服務的成本;
鄙司現也在走這樣的路線,就拿ERP系統服務舉個例子
1.購買功能強大的伺服器虛擬成N個子服務模塊(資料庫伺服器,ERP伺服器)--節約成本;
2.ERP伺服器與資料庫伺服器直接交互,加快信息處理;
3.各user利用遠端(web)的模式連接到伺服器上操作,只需要維護伺服器端即可,大大減少了維護成本
雲計算的發展促進了企業無紙化操作的快速發展,同時作為計算機行業從業人員,工作危機也感受到了,呵呵
『陸』 自建大數據平台,伺服器需要什麼樣子的性能配置謝謝!
最好是當前最好的配置,因為伺服器更新換代也快,誰知道兩年後的發展會多麼快,當然這個也要結合自身實力來看,不過都自己做大數據平台了,應該不差錢吧,伺服器越好,後面越省事,也更省錢。
『柒』 如何自建網路資料庫伺服器
伺服器如何選擇?伺服器的選擇大概分為以下幾種情況:
一、個人網站或者入門級網站,這類網站由於網站內容和訪問量都相對比較低,所以對伺服器的要求也較低,選擇入門級的伺服器即可,而且價格會比較便宜。
二、如果是一般的企業網站,企業的產品數量有限,需要存儲的內容也有限的話,一般1核、2G、1M的就夠用。
三、如果是做開發游戲、數據分析、在線商城等業務或者有高網路包收發需求的企業,這類網站對訪問速度、訪問量、存儲量、穩定性等的要求都比較高,所以建議考慮計算型伺服器。
四、如果有大數據計算與存儲分析需求,比如互聯網行業、金融行業等,最好選擇大數據型的伺服器,這種伺服器的優勢是可以隨意升降配置。在具體選擇伺服器的過程中,有幾個重要參數是一定要慎重考慮的:
1、CPU:伺服器的CPU代表了主機的運算能力,靜態頁面對CPU的消耗比較小,動態頁面對CPU消耗比較大,所以如果是靜態頁面一般1核的CPU就夠了,如果是動態頁面則建議選擇2核以上的CPU。
2、內存:伺服器內存越大,網站打開速度越快。對有資料庫運行需求的中小型網站來說最少選擇1G以上內存,因為資料庫運行也是比較消耗內存的。
3、硬碟:硬碟需要根據程序體量以及資料庫大小來定了,此外系統本身會佔用一部分硬碟空間,所以開通以後看到硬碟已經被使用了一部分空間。
4、帶寬:如果選擇VPS或者雲伺服器,他們對流量是沒限制的,重點要考慮帶寬。帶寬越大訪問網站時速度越快。所以可根據訪問量大小及未來的發展規劃選擇帶寬。
5、線路:大陸常用的線路一般是三大運營商的,移動、聯通、電信;境外的有香港、美國的。可以根據業務面向用戶市場區域選擇。
『捌』 青雲李威:在雲上做大數據平台有什麼獨特的挑戰
7月18日,"雲用戶生態發展論壇暨第三屆中國雲計算用戶大會"在北京國家會議中心召開。在下午的會議中,青雲QingCloud系統工程師及大數據平台負責人李威帶來主題為「大數據雲平台之最佳實踐」的精彩演講,以下是他的演講實錄:
李威:大家好,我是QingCloud青雲的系統工程師李威。今天我講的這個話題可能技術性有點強,可能需要大家費點腦子。分成幾大塊。第一,先說一下雲計算和大數據的關系。第二,在雲上做大數據平台有什麼獨特的挑戰。第三,我們會講一下大數據平台它有一個比較基本的,或者說通用的一個系統架構是什麼樣子。最後,分享一些我們自己的,包括和在客戶那兒的一些跟大數據相關的最佳實踐。
大數據的例子,我就不說太多了,說一些我們的一些企業客戶的。比如說第一個是一個非常大型的一個跨國的一個互聯網社交企業。然後他們會用我們在雲上的大數據的一些平台,包括一些具體的技術,會做比如用戶畫像。就是你在社交網路裡面,然後為什麼推薦給你的朋友正好是你可能會認識的,然後為什麼推薦給你的信息可能就是你感興趣的。這個都是用戶畫像用大數據來做的。
第二,像一個非常大型的互聯網的金融企業,它會用大數據做一些風控分析。因為在互聯網金融,尤其是互聯網金融行業裡面,它之所以可以和傳統金融PK,就是因為它在風控這方面可以用大數據技術把風險控制的非常小。大家可以想一想,在P2P平台上面,憑什麼沒有像以前傳統銀行各種人來調查你,沒有什麼抵押金,但是可以讓你用錢。包括政府部門海量信息檢索,比如它需要把全國的各種部門聯合起來,然後我需要有一個犯罪嫌疑人他有沒有可能在各個地方有一些其他數據,我可以搜索,可以挖掘,然後進行一些分析。
大數據很火,它跟雲計算到底什麼關系?其實我們認為大數據現在大家可能覺得到什麼地方都聽見大數據,其實很可能每個人說的不一樣,也得人說的是大數據平台,有的人說的是大數據的某個產品,有的人可能說的是大數據的某個應用,比如Alpha Go。
尤其在企業裡面,我們和客戶談的時候,客戶第一個比較想不明白的就是大數據的產品和技術太多了,而且每個場景都區別不是那麼明顯。所以,在大數據這個技術裡面,我們第一個要解決的就是到底怎麼選擇大數據的解決方案,怎麼為企業做大數據解決方案。但是,每個企業需求變化又特別大,或者有很多企業,就是傳統企業他們對大數據的需求不是非常明確,互聯網企業他們需求變化非常快。按照傳統的比如建一套大數據平台,可能花費很多成本,時間成本、人力成本,包括金錢。但是雲平台,大家知道IaaS、PaaS、SaaS,最後所有東西都變成伺服器。你要構建一個非常復雜方案的時候成本就低,因為你只需要按照服務構建的方式來做,而且這樣非常靈活,如果你發現其中方案某一部分有問題,你可以很快的替換掉,因為很多都是平台上的服務。所以,它可以滿足你的業務不確定性的需求,包括業務彈性的需求。因為大家知道現在變化太快了。
第二,雲計算給大數據帶來的好處是什麼?比如它可以自動化運維,一些復雜系統的安裝、部署、監控都不用你自己做,在界面上非常快的就可以,非常簡單就能做完。然後還有一些包括穩定、性能,這個不多說了,雲計算的好處大家肯定知道特別多,說幾個有意思的。
比如,網路和存儲,計算引擎的切換,這個比較有意思。也就是當你的平台足夠復雜,足夠大的時候,每塊部分都是一個伺服器,每一塊變成一個伺服器之後,可以非常靈活的替換掉它,把他換成別的產品實現,或者別的技術實現。後面就是Service Orchestration,就是比如你有一個界面,需要畫各種圖,或者工具也好,但是他們有一個非常致命的缺點,你畫的那個圖是不能執行的,就是是不能部署,不能執行的。Service Orchestration是給你一個大的拓撲圖,這也是青雲今年年初發布的一個產品,叫做資源編排。可以在雲平台把一整套的架構部署出來,這是雲上他們這些帶來的一些好處。
雲上大數據平台的挑戰。很多企業做大數據平台在物理機上做,為什麼沒有在雲上做?因為挑戰非常多。第一,穩定性的挑戰,比如高可用、災備。第二,性能。一直被人垢病的,因為你是虛擬機,肯定沒有網路機的硬碟快。在青雲第一個IaaS層的穩定性已經運行好幾年了,沒有太多可說的。垢病性能這一塊,我們去年做了軟體定義網路的2.0,2.0出來之後,這個是為雲計算,為大的IaaS平台專門研發的一套SDN,可以做到點對點之間的網路傳輸,可以達到物理網卡。第二,在硬碟這塊一直被垢病的,我們容器技術,可以把硬碟的技術降的非常低。第三個好處就是遷移,遷移技術非常好,因為現在已經有一些比較成形的,比如關系型資料庫和非關系型資料庫。
我們說解決這些挑戰之後,我們會有一個大數據的平台系統架構出來這個架構其實都是一個非常通用的架構。就是你可能在很多企業裡面,不管京東、美團、亞馬遜,可能看到的基本都是這樣的樣子。其實先從左開始看起,其實是一個數據的生命周期,就是數據從哪個地方收集,可能是日誌,可能是感測器,收集過來到中間的核心平台,最下面一層就是IaaS,青雲所有PaaS層的服務都是基於IaaS做的,就是都是在雲上面的。然後到第一個就是存儲。中間三個大塊,第一個叫實時計算,叫Storm,當然Twitter現在出來的可能宣稱比Storm更強。第二,就是Batch Processing,第三個就是Big SQL,包括像Kylim等。右邊就是你做所有平台可能都會做的,包括它的數據管理、監控、安全,包括用來做分布式的配置中心的一項東西。
所有的數據經過存儲、計算之後,你可能會通過一些,就是你想要一些非常好的用戶友好的方式使用這些數據,我們一般可能會把數據提交到比如說像一些交互性比較好的技術組件裡面,這樣在最上層,不管報表還是可視化,像Hadoop生態圈裡面比較流行的做可視化就比較方便。
我現在畫的這個圖裡面,基本上就是在大數據的生命周期裡面最核心的,或者說最主流的產品或者技術都涵蓋在裡面了,青雲自己的大數據平台也是按照這個架構來做的。
接下來先說一下,我會按照這個架構,挨個的挨個的說。第一,先說一下計算。計算上面最經典的就是Hadoop,這個圖不需要太多說。如果大家平時研究大數據,可以提一點,從2.0後之,它的HDFS有高可用,把之前的變成Yarn來支持,這樣會提升很大的性能。第二個計算型的架構就是Spark,比如它上面有主流的一些功能。如果做實時計算,Storm肯定首選的。MapRece延遲非常高,但是吞吐量很大。MapRece的硬碟非常高,Spark Streaming由於它是硬碟計算,所以計算還好。如果之前有一些Hadoop生態圈的基礎,可能選Spark比較好,如果不是要求非常實時,因為Spark平台非常強,它本身就是一個平台,現在的平台發展非常快,所以可能選Spark,對你要求非常高,現在我們碰見的客戶都有。第二,Big SQL裡面,提幾個,一個是Phoenix,提供了SQ語言上包裝的產品。第二種就是MPP的。
存儲。最初就是HDFS,第一,一定是為大文件設計的,不是為海量小文件設計的。如果想處理海量小文件,在青雲平台上有一個想像就是對象存儲,我們當時設計的時候不管文件什麼類型,不管文件什麼大小,都可以用這個存儲。HDFS為什麼不能存海量小文件,原因很簡單,像Linux裡面所有數據都有一個索引,如果存海量小文件,索引的數據有一個特點,不管數據文件大還是小,索引的數據都是一樣的大。存海量小文件的時候其實文件沒有多大,它會非常影響性能,導致數據整個存儲空間沒有利用慢,但是性能已經不可用了。
第二個比較主流的存儲就是Hbase,Hbase是架構在HDFS之上,它可以存非常寬的樣表,也可以存非常高的樣表,所有表的數據分布在每個節點上,其實它的架構比這個復雜多了。其實你可以看成對應一個表的概念。不知道大家有沒有人看Hbase,可能剛開始看Hbase比較費解,因為它是列式的存儲,和以前看到的資料庫解的不一樣。其實它的定義非常簡單,就是最上面,第二行那句話,是一個稀疏的、分布式的、多維的、持久化的一個影射。稀疏的就是是一個單位格的比,Hbase在存儲格式上已經解決了這個問題,可以存一個稀疏的表。第二,分布式的就不用解釋了。這個圖裡面可以看到有一些時間戳的概念在裡面,這是一個比如第一個是一個記錄的Row Key,然後有一個Column Families,然後有一個版本號。
存儲裡面的選型,剛才說了幾個,做存儲選型怎麼選?並不一定是一開始肯定會聽到很多人說Hbase一定比HDFS快,這些說法都是不責任的,都是一定要在什麼場景下。比如說Hadoop,這樣的方式就是在做全局文件掃描的時候是快的,但是像Hbase做隨機存儲的時候是快的,所以也是分場景的。但是像中間這個KUDU,昨天一個客戶說他們正在用一個KUDU,屬於一個中間的方案,介於HDFS和Hbase之間的一個存儲引擎,現在還沒有看到大規模的生產應用。這個就是今年年初做的一個數據倉庫,Greenplum Database,是去年開源的。之前Greenplum的核心就能工業他們自己出來,它最大的一個好處,我們覺得有幾個,第一個是標準的SQL,你可能看到很多市面上的產品都說支持SQL,但是其實都不是標準的。不是標準的意味著什麼?比如很多語法不一樣,你以前像數據工程師,數據分析師,他們用的比較高級的用法都沒法用。但是,Greenplum Database不一樣,因為它的核心計算引擎我們覺得比MySQL更好,它還有很多別的特點。
我們說完計算的產品,說完存儲的產品,接下來一些數據的傳輸。數據傳輸我們說一個最經典的Kafka,是分布式、可分區、多副本、低延遲的。低延遲什麼意思?左右這兩張圖長的很像,其實就是Kafka相當於進入和留出的數據,Kafka就是領英開源的,因為我們平台提供了Kafka服務,他們現在也在用,這是他們是使用出來的一個產品。意思就是Kafka的延遲非常低,基本數據不落下來,直接就出去了。
為什麼它可以這樣?有兩個非常本質的原因:第一,它在寫數據的時候是直接寫到PageCatch裡面,往外發的時候直接通過Linux發出去的,所以它的吞吐量延時非常低,這是兩個核心的原因。Kafka的架構非常簡單,就是三個松偶合的,比如最上層是它的生產者,然後是一個集群,中間是一個伺服器,Kafka的伺服器,下面是它的消費者。它的生產者一個集群都可以往broker裡面發數據,相當於broker把數據發到第一個Partition裡面,第二個發到第二個Partition裡面,Partition第一個主要概念就是你發布的消息是什麼,你生產出的消息相對於在Kafka裡面有幾個隊列,每個隊列就是一個Partition。
第二個集群就是它的消費者,消費者可以提比較重要的一點,它有一個消費組的概念,這個組的概念非常重要。當你想把一個Topic的消息想多播出去,想被很多個消費者處理的時候,這個時候需要建多個消費組,這個消息才能被多個消費者來消費。如果只建了一個消費組,哪怕這個消費組有好幾個消費者,每次都是由一個消費者處理的。第二個問題,就是消費組裡面消費者的數量,這裡面一個是兩個,一個是四個,就是一個消息裡面有四個Partition,如果有四個消費者,正好一對一,每個消費者消費一個Partition,如果只有一個消費者,有一個會消費兩個Partition。這種情況比較好。有一種情況要避免,就是比如有5個消費者,你那個Topic只有4個隊列,你就會浪費掉一個消費者。這個是需要注意的。
說完了計算,說完了存儲,說完了傳出,然後說一些我們碰到的問題。第一個大問題就是復制因子的問題,為什麼原生的不用考慮,但是雲上為什麼要獨特考慮呢?原因很簡單,因為在雲上面所有的服務都是基於IaaS做的,IaaS這一層本身有高可用,就是它的數據本身就是有副本的,如果你還照搬物理機上的做法,你就找三個副本,你想想2×3就是6個。所以,第一個就是要去副本,把它用兩個副本,這是我們最開始想的方案,用兩個副本就行了。但是,後來我們覺得兩個副本還是2×2=4,還是空間浪費上會多一點。
後來我們想更高級的方案是什麼?就是我們在IaaS這一層提供一種能力,讓PaaS層可以選擇,說我要幾個副本,就是變成一個選項,這樣比如像大數據這樣,或者非常脆弱的應用,但是有時候比如不需要,有它自己的一個副本的策略,完全不需要IaaS層的副本,這個時候就根據你自己的配置,或者根據你自己的產品的需要可以配置IaaS層的副本策略,這樣跟物理就是一樣的了。
這個參數調優,比如像典型的大數據裡面每個產品或者每個平台都有兩三百個參數,這個太正常了,這個時候做調優第一個重要的步驟就是你應該知道我們應該盡量去知道這些調優的參數之間什麼關系,他們之間到底什麼關系,不能只知道每一個參數是干什麼的,要不然調一個,影響另外一個,或者調按沒有任何反應,那是因為你沒有把這個關系搞清楚。像這樣的圖,可以把yarn裡面的Node Manager都弄的比它小,然後是yarn裡面分配的內存,這個之間的關系嘎明白,在做性能調優的時候是很重要的。
最後一個比較重要的最佳實踐就是在數據格式上,這個肯定很多人都會忽略。但是在大數據裡面非常重要,為什麼?因為數據很大,數據量非常大的時候,如果不注重數據格式就會導致這幾個問題。比如可能性能會下降,然後你的空間反而浪費了很多,成倍的上升。
其實數據格式比較注意的項非常多。我們挑出兩個比較重要的准則,第一這個數據格式要可分隔。可分隔支持的格式有這些,比較多的像Avro、Parquet Lzop+index、SequenceFile,不支持的就是XML、JSON文件。
然後可塊壓縮的,支持的就是Avro、Parquet、Lzop+index、SequenceFile,不支持的就是CSV、JSON記錄。大家可以想一下,我們在大數據平台裡面計算都是並行計算,它所有的數據都是分開來計算的,然後每一個分片對它進行計算,所以,第二個是可塊壓縮的。其實還有很多點,比如數據格式是不是支持眼鏡的,像Avro就支持,就是數據格式的老版本和新版本還是可以兼容的。包括像SequenceFile,可伸縮,可壓縮,但是它只在Hadoop這個生態系統,不像Avro和Parquet。我們7月28號在北京飯店有一個青雲自己的用戶大會,我們只負責服務,上面都是各個行業的精英講他們自己技術的干貨,產品的干貨,我們是這樣形式做的。
『玖』 如何創建一個大數據平台
所謂的大數據平台不是獨立存在的,比如網路是依賴搜索引擎獲得大數據並開展業務的,阿里是通過電子商務交易獲得大數據並開展業務的,騰訊是通過社交獲得大數據並開始業務的,所以說大數據平台不是獨立存在的,重點是如何搜集和沉澱數據,如何分析數據並挖掘數據的價值。
我可能還不夠資格回答這個問題,沒有經歷過一個公司大數據平台從無到有到復雜的過程。不過說說看法吧,也算是梳理一下想法找找噴。
這是個需求驅動的過程。
曾經聽過spotify的分享,印象很深的是,他們分享說,他們的hadoop集群第一次故障是因為,機器放在靠窗的地方,太陽曬了當機了(笑)。從簡單的沒有機房放在自家窗前的集群到一直到現在復雜的數據平台,這是一個不斷演進的過程。
對小公司來說,大概自己找一兩台機器架個集群算算,也算是大數據平台了。在初創階段,數據量會很小,不需要多大的規模。這時候組件選擇也很隨意,Hadoop一套,任務調度用腳本或者輕量的框架比如luigi之類的,數據分析可能hive還不如導入RMDB快。監控和部署也許都沒時間整理,用腳本或者輕量的監控,大約是沒有ganglia、nagios,puppet什麼的。這個階段也許算是技術積累,用傳統手段還是真大數據平台都是兩可的事情,但是為了今後的擴展性,這時候上Hadoop也許是不錯的選擇。
當進入高速發展期,也許擴容會跟不上計劃,不少公司可能會遷移平台到雲上,比如AWS阿里雲什麼的。小規模高速發展的平台,這種方式應該是經濟實惠的,省了運維和管理的成本,擴容比較省心。要解決的是選擇平台本身提供的服務,計算成本,打通數據出入的通道。整個數據平台本身如果走這條路,可能就已經基本成型了。走這條路的比較有名的應該是netflix。
也有一個階段,你發現雲服務的費用太高,雖然省了你很多事,但是花錢嗖嗖的。幾個老闆一合計,再玩下去下個月工資發布出來了。然後無奈之下公司開始往私有集群遷移。這時候你大概需要一群靠譜的運維,幫你監管機器,之前兩三台機器登錄上去看看狀態換個磁碟什麼的也許就不可能了,你面對的是成百上千台主機,有些關鍵服務必須保證穩定,有些是數據節點,磁碟三天兩頭損耗,網路可能被壓得不堪重負。你需要一個靠譜的人設計網路布局,設計運維規范,架設監控,值班團隊走起7*24小時隨時准備出台。然後上面再有平台組真的大數據平台走起。
然後是選型,如果有技術實力,可以直接用社區的一整套,自己管起來,監控部署什麼的自己走起。這個階段部署監控和用戶管理什麼的都不可能像兩三個節點那樣人肉搞了,配置管理,部署管理都需要專門的平台和組件;定期Review用戶的作業和使用情況,決定是否擴容,清理數據等等。否則等機器和業務進一步增加,團隊可能會死的很慘,疲於奔命,每天事故不斷,進入惡性循環。
當然有金錢實力的大戶可以找Cloudera,Hortonworks,國內可以找華為星環,會省不少事,適合非互聯網土豪。當然互聯網公司也有用這些東西的,比如Ebay。
接下去你可能需要一些重量的組件幫你做一些事情。
比如你的數據接入,之前可能找個定時腳本或者爬log發包找個伺服器接收寫入HDFS,現在可能不行了,這些大概沒有高性能,沒有異常保障,你需要更強壯的解決方案,比如Flume之類的。
你的業務不斷壯大,老闆需要看的報表越來越多,需要訓練的數據也需要清洗,你就需要任務調度,比如oozie或者azkaban之類的,這些系統幫你管理關鍵任務的調度和監控。
數據分析人員的數據大概可能漸漸從RDBMS搬遷到集群了,因為傳統資料庫已經完全hold不住了,但他們不會寫代碼,所以你上馬了Hive。然後很多用戶用了Hive覺得太慢,你就又上馬交互分析系統,比如Presto,Impala或者SparkSQL。
你的數據科學家需要寫ML代碼,他們跟你說你需要Mahout或者Spark MLLib,於是你也部署了這些。
至此可能數據平台已經是工程師的日常工作場所了,大多數業務都會遷移過來。這時候你可能面臨很多不同的問題。
比如各個業務線數據各種數據表多的一塌糊塗,不管是你還是寫數據的人大概都不知道數據從哪兒來,接下去到哪兒去。你就自己搞了一套元數據管理的系統。
你分析性能,發現你們的數據都是上百Column,各種復雜的Query,裸存的Text格式即便壓縮了也還是慢的要死,於是你主推用戶都使用列存,Parquet,ORC之類的。
又或者你發現你們的ETL很長,中間生成好多臨時數據,於是你下狠心把pipeline改寫成Spark了。
再接下來也許你會想到花時間去維護一個門戶,把這些零散的組件都整合到一起,提供統一的用戶體驗,比如一鍵就能把數據從資料庫chua一下拉到HDFS導入Hive,也能一鍵就chua一下再搞回去;點幾下就能設定一個定時任務,每天跑了給老闆自動推送報表;或者點一下就能起一個Storm的topology;或者界面上寫幾個Query就能查詢Hbase的數據。這時候你的數據平台算是成型了。
當然,磕磕碰碰免不了。每天你都有新的問題和挑戰,否則你就要失業了不是?
你發現社區不斷在解決你遇到過的問題,於是你們架構師每天分出很多時間去看社區的進展,有了什麼新工具,有什麼公司發布了什麼項目解決了什麼問題,興許你就能用上。
上了這些亂七八糟的東西,你以為就安生了?Hadoop平台的一個大特點就是坑多。尤其是新做的功能新起的項目。對於平台組的人,老闆如果知道這是天然坑多的平台,那他也許會很高興,因為跟進社區,幫忙修bug,一起互動其實是很提升公司影響力的實情。當然如果老闆不理解,你就自求多福吧,招幾個老司機,出了問題能馬上帶路才是正道。當然團隊的技術積累不能不跟上,因為數據平台還是亂世,三天不跟進你就不知道世界是什麼樣了。任何一個新技術,都是坑啊坑啊修啊修啊才完善的。如果是關鍵業務換技術,那需要小心再小心,技術主管也要有足夠的積累,能夠駕馭,知道收益和風險。
『拾』 請結合實際應用論述雲存儲怎樣面向應用以及在管理空間大數據方面的方法組網方
摘要 摘要:雲存儲將大量不同類型的存儲設備通過軟體集合起來協同工作,共同對外提供數據存儲服務。以—種雲存儲典型應用——雲備份為例,探討雲備份的軟體架構,雲存儲的出現解決了即時存儲和分享的難題,用戶可以自己指定分享許可權、對象,隨時隨地通過不同種類的終端獲取信息,既高效又便捷。