如何構建大數據平台
㈠ 如何創建一個大數據平台
所謂的大數據平台不是獨立存在的,比如百度是依賴搜索引擎獲得大數據並開展業務的,阿里是通過電子商務交易獲得大數據並開展業務的,騰訊是通過社交獲得大數據並開始業務的,所以說大數據平台不是獨立存在的,重點是如何搜集和沉澱數據,如何分析數據並挖掘數據的價值。
我可能還不夠資格回答這個問題,沒有經歷過一個公司大數據平台從無到有到復雜的過程。不過說說看法吧,也算是梳理一下想法找找噴。
這是個需求驅動的過程。
曾經聽過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,一起互動其實是很提升公司影響力的實情。當然如果老闆不理解,你就自求多福吧,招幾個老司機,出了問題能馬上帶路才是正道。當然團隊的技術積累不能不跟上,因為數據平台還是亂世,三天不跟進你就不知道世界是什麼樣了。任何一個新技術,都是坑啊坑啊修啊修啊才完善的。如果是關鍵業務換技術,那需要小心再小心,技術主管也要有足夠的積累,能夠駕馭,知道收益和風險。
㈡ 大數據平台是什麼什麼時候需要大數據平台如何建立大數據平台
首先我們要了解java語言和Linux操作系統,這兩個是學習大數據的基礎,學習的順序不分前後。
Java :只要了解一些基礎即可,做大數據不需要很深的Java 技術,學java SE 就相當於有學習大數據基礎。
Linux:因為大數據相關軟體都是在Linux上運行的,所以Linux要學習的扎實一些,學好Linux對你快速掌握大數據相關技術會有很大的幫助,能讓你更好的理解hadoop、hive、hbase、spark等大數據軟體的運行環境和網路環境配置,能少踩很多坑,學會shell就能看懂腳本這樣能更容易理解和配置大數據集群。還能讓你對以後新出的大數據技術學習起來更快。
Hadoop:這是現在流行的大數據處理平台幾乎已經成為大數據的代名詞,所以這個是必學的。Hadoop裡麵包括幾個組件HDFS、MapRece和YARN,HDFS是存儲數據的地方就像我們電腦的硬碟一樣文件都存儲在這個上面,MapRece是對數據進行處理計算的,它有個特點就是不管多大的數據只要給它時間它就能把數據跑完,但是時間可能不是很快所以它叫數據的批處理。
Zookeeper:這是個萬金油,安裝Hadoop的HA的時候就會用到它,以後的Hbase也會用到它。它一般用來存放一些相互協作的信息,這些信息比較小一般不會超過1M,都是使用它的軟體對它有依賴,對於我們個人來講只需要把它安裝正確,讓它正常的run起來就可以了。
Mysql:我們學習完大數據的處理了,接下來學習學習小數據的處理工具mysql資料庫,因為一會裝hive的時候要用到,mysql需要掌握到什麼層度那?你能在Linux上把它安裝好,運行起來,會配置簡單的許可權,修改root的密碼,創建資料庫。這里主要的是學習SQL的語法,因為hive的語法和這個非常相似。
Sqoop:這個是用於把Mysql里的數據導入到Hadoop里的。當然你也可以不用這個,直接把Mysql數據表導出成文件再放到HDFS上也是一樣的,當然生產環境中使用要注意Mysql的壓力。
Hive:這個東西對於會SQL語法的來說就是神器,它能讓你處理大數據變的很簡單,不會再費勁的編寫MapRece程序。有的人說Pig那?它和Pig差不多掌握一個就可以了。
Oozie:既然學會Hive了,我相信你一定需要這個東西,它可以幫你管理你的Hive或者MapRece、Spark腳本,還能檢查你的程序是否執行正確,出錯了給你發報警並能幫你重試程序,最重要的是還能幫你配置任務的依賴關系。我相信你一定會喜歡上它的,不然你看著那一大堆腳本,和密密麻麻的crond是不是有種想屎的感覺。
Hbase:這是Hadoop生態體系中的NOSQL資料庫,他的數據是按照key和value的形式存儲的並且key是唯一的,所以它能用來做數據的排重,它與MYSQL相比能存儲的數據量大很多。所以他常被用於大數據處理完成之後的存儲目的地。
Kafka:這是個比較好用的隊列工具,隊列是干嗎的?排隊買票你知道不?數據多了同樣也需要排隊處理,這樣與你協作的其它同學不會叫起來,你干嗎給我這么多的數據(比如好幾百G的文件)我怎麼處理得過來,你別怪他因為他不是搞大數據的,你可以跟他講我把數據放在隊列里你使用的時候一個個拿,這樣他就不在抱怨了馬上灰流流的去優化他的程序去了,因為處理不過來就是他的事情。而不是你給的問題。當然我們也可以利用這個工具來做線上實時數據的入庫或入HDFS,這時你可以與一個叫Flume的工具配合使用,它是專門用來提供對數據進行簡單處理,並寫到各種數據接受方(比如Kafka)的。
Spark:它是用來彌補基於MapRece處理數據速度上的缺點,它的特點是把數據裝載到內存中計算而不是去讀慢的要死進化還特別慢的硬碟。特別適合做迭代運算,所以演算法流們特別稀飯它。它是用scala編寫的。Java語言或者Scala都可以操作它,因為它們都是用JVM的。
㈢ 怎麼搭建大數據分析平台
未至科技魔方是一款大數據模型平台,是一款基於服務匯流排與分布式雲計算兩大技術架構內的一款容數據分析、挖掘的工具平台,其採用分布式文件系統對數據進行存儲,支持海量數據的處理。採用多種的數據採集技術,支持結構化數據及非結構化數據的採集。通過圖形化的模型搭建工具,支持流程化的模型配置。通過第三方插件技術,很容易將其他工具及服務集成到平台中去。數據分析研判平台就是海量信息的採集,數據模型的搭建,數據的挖掘、分析最後形成知識服務於實戰、服務於決策的過程,平台主要包括數據採集部分,模型配置部分,模型執行部分及成果展示部分等。
㈣ 如何搭建大數據雲平台具備要素高並發
你好,您應該是景區或者文旅部門機構,這個問題深入展開不是一句兩句能講清楚地哈,內簡單說一下容目前現狀:目前全國范圍內搭建的規范還沒有,各地從金額來說幾千萬到幾十萬的方式都有,金額特別大的項目大概率是基建和裝修及硬體采買。如果是一個基礎設施完善的機構,基本是信息集成,包括票務、攝像、投訴、客流、停車場管理、廣播通信(一般在應急平台上)、口碑等;如果基礎設施落後,個人建議也沒有必要花太多錢去搞基建,你建設的目的是為了應用,直接找相應的數據服務公司就好了,自己又不用培養數據方面的人才,直接使用數據服務很方便,每年付費也比一下投入大量資金用於基建只有一個空殼子要好,現在國內科技公司越來下沉行業,大量的案例應用服務基本滿足大部分客戶需求了,沒必要自己照搬一套在自己本地。據我了解網路騰訊阿里都有文旅服務的部門,也有專注做文旅數據市場服務的,好像叫海鰻,他們海字輩的企業一堆,都針對不同行業。我作為文旅管委會的從業者,還是建議直接買服務,我們自己景區建的中心都沒有數據,領導也走了,晾在那每人管了,太浪費了。
㈤ 如何快速搭建企業級大數據平台
提到大數據,無可避免的就會提到Hadoop。盡管大數據並不等同於Hadoop,但Hadoop確實是最熱門專的大數屬據技術。下面是最常用的混搭架構,來看一下大數據平台可以怎麼搭建,支撐企業應用:
通過Kafka作為統一採集平台的消息管理層,靈活的對接、適配各種數據源採集(如集成flume),提供靈活、可配置的數據採集能力。
利用Spark和Hadoop技術,構建大數據平台最為核心的基礎數據的存儲、處理能力中心,提供強大的數據處理能力,滿足數據的交互需求。同時通過Sparkstreaming,可以有效滿足企業實時數據的要求,構建企業發展的實時指標體系。
同時為了更好的滿足的數據獲取需求,通過RDBMS,提供企業高度匯總的統計數據,滿足企業常規的統計報表需求,降低使用門檻。對大數據明細查詢需求,則通過構建HBase集群,提供大數據快速查詢能力,滿足對大數據的查詢獲取需求。
㈥ 大數據平台建設有哪些步驟以及需要注意的問題
大數據平台的搭建步驟:
1、linux系統安裝
一般使用開源版的Redhat系統--CentOS作為底層平台。為了提供穩定的硬體基礎,在給硬碟做RAID和掛載數據存儲節點的時,需要按情況配置。
2、分布式計算平台/組件安裝
國內外的分布式系統的大多使用的是Hadoop系列開源系統。Hadoop的核心是HDFS,一個分布式的文件系統。在其基礎上常用的組件有Yarn、Zookeeper、Hive、Hbase、Sqoop、Impala、ElasticSearch、Spark等
使用開源組件的優點:1)使用者眾多,很多bug可以在網上找的答案(這往往是開發中最耗時的地方)。2)開源組件一般免費,學習和維護相對方便。3)開源組件一般會持續更新,提供必要的更新服務『當然還需要手動做更新操作』。4)因為代碼開源,若出bug可自由對源碼作修改維護。
3、數據導入
數據導入的工具是Sqoop。用它可以將數據從文件或者傳統資料庫導入到分布式平台『一般主要導入到Hive,也可將數據導入到Hbase』。
4、數據分析
數據分析一般包括兩個階段:數據預處理和數據建模分析。
數據預處理是為後面的建模分析做准備,主要工作時從海量數據中提取可用特徵,建立大寬表。這個過程可能會用到Hive SQL,Spark QL和Impala。
數據建模分析是針對預處理提取的特徵/數據建模,得到想要的結果。這一塊最好用的是Spark。常用的機器學習演算法,如樸素貝葉斯、邏輯回歸、決策樹、神經網路、TFIDF、協同過濾等,都已經在ML lib裡面,調用比較方便。
5、結果可視化及輸出API
可視化一般式對結果或部分原始數據做展示。一般有兩種情況,行數據展示,和列查找展示。要基於大數據平台做展示,會需要用到ElasticSearch和Hbase。Hbase提供快速『ms級別』的行查找。 ElasticSearch可以實現列索引,提供快速列查找。
大數據平台搭建中的主要問題
1、穩定性 Stability
理論上來說,穩定性是分布式系統最大的優勢,因為它可以通過多台機器做數據及程序運行備份以確保系統穩定。但也由於大數據平台部署於多台機器上,配置不合適,也可能成為最大的問題。
2、可擴展性 Scalability
如何快速擴展已有大數據平台,在其基礎上擴充新的機器是雲計算等領域應用的關鍵問題。在實際2B的應用中,有時需要增減機器來滿足新的需求。如何在保留原有功能的情況下,快速擴充平台是實際應用中的常見問題。
㈦ 如何建立一個完整可用的安全大數據平台
整體而言,大數據平台從平台部署和數據分析過程可分為如下幾步:
1、linux系統安裝
一般使用開源版的Redhat系統--CentOS作為底層平台。為了提供穩定的硬體基礎,在給硬碟做RAID和掛載數據存儲節點的時,需要按情況配置。例如,可以選擇給HDFS的namenode做RAID2以提高其穩定性,將數據存儲與操作系統分別放置在不同硬碟上,以確保操作系統的正常運行。
2、分布式計算平台/組件安裝
目前國內外的分布式系統的大多使用的是Hadoop系列開源系統。Hadoop的核心是HDFS,一個分布式的文件系統。在其基礎上常用的組件有Yarn、Zookeeper、Hive、Hbase、Sqoop、Impala、ElasticSearch、Spark等。
先說下使用開源組件的優點:1)使用者眾多,很多bug可以在網上找的答案(這往往是開發中最耗時的地方)。2)開源組件一般免費,學習和維護相對方便。3)開源組件一般會持續更新,提供必要的更新服務『當然還需要手動做更新操作』。4)因為代碼開源,若出bug可自由對源碼作修改維護。
再簡略講講各組件的功能。分布式集群的資源管理器一般用Yarn,『全名是Yet Another Resource Negotiator』。常用的分布式數據數據『倉』庫有Hive、Hbase。Hive可以用SQL查詢『但效率略低』,Hbase可以快速『近實時』讀取行。外部資料庫導入導出需要用到Sqoop。Sqoop將數據從Oracle、MySQL等傳統資料庫導入Hive或Hbase。Zookeeper是提供數據同步服務,Yarn和Hbase需要它的支持。Impala是對hive的一個補充,可以實現高效的SQL查詢。ElasticSearch是一個分布式的搜索引擎。針對分析,目前最火的是Spark『此處忽略其他,如基礎的MapRece 和 Flink』。Spark在core上面有ML lib,Spark Streaming、Spark QL和GraphX等庫,可以滿足幾乎所有常見數據分析需求。
值得一提的是,上面提到的組件,如何將其有機結合起來,完成某個任務,不是一個簡單的工作,可能會非常耗時。
3、數據導入
前面提到,數據導入的工具是Sqoop。用它可以將數據從文件或者傳統資料庫導入到分布式平台『一般主要導入到Hive,也可將數據導入到Hbase』。
4、數據分析
數據分析一般包括兩個階段:數據預處理和數據建模分析。
數據預處理是為後面的建模分析做准備,主要工作時從海量數據中提取可用特徵,建立大寬表。這個過程可能會用到Hive SQL,Spark QL和Impala。
數據建模分析是針對預處理提取的特徵/數據建模,得到想要的結果。如前面所提到的,這一塊最好用的是Spark。常用的機器學習演算法,如樸素貝葉斯、邏輯回歸、決策樹、神經網路、TFIDF、協同過濾等,都已經在ML lib裡面,調用比較方便。
5、結果可視化及輸出API
可視化一般式對結果或部分原始數據做展示。一般有兩種情況,行熟悉展示,和列查找展示。在這里,要基於大數據平台做展示,會需要用到ElasticSearch和Hbase。Hbase提供快速『ms級別』的行查找。 ElasticSearch可以實現列索引,提供快速列查找。
平台搭建主要問題:
1、穩定性 Stability
理論上來說,穩定性是分布式系統最大的優勢,因為它可以通過多台機器做數據及程序運行備份以確保系統穩定。但也由於大數據平台部署於多台機器上,配置不合適,也可能成為最大的問題。 曾經遇到的一個問題是Hbase經常掛掉,主要原因是采購的硬碟質量較差。硬碟損壞有時會到導致Hbase同步出現問題,因而導致Hbase服務停止。由於硬碟質量較差,隔三差五會出現服務停止現象,耗費大量時間。結論:大數據平台相對於超算確實廉價,但是配置還是必須高於家用電腦的。
2、可擴展性 Scalability
如何快速擴展已有大數據平台,在其基礎上擴充新的機器是雲計算等領域應用的關鍵問題。在實際2B的應用中,有時需要增減機器來滿足新的需求。如何在保留原有功能的情況下,快速擴充平台是實際應用中的常見問題。
上述是自己項目實踐的總結。整個平台搭建過程耗時耗力,非一兩個人可以完成。一個小團隊要真正做到這些也需要耗費很長時間。
目前國內和國際上已有多家公司提供大數據平台搭建服務,國外有名的公司有Cloudera,Hortonworks,MapR等,國內也有華為、明略數據、星環等。另外有些公司如明略數據等還提供一體化的解決方案,尋求這些公司合作對 於入門級的大數據企業或沒有大數據分析能力的企業來說是最好的解決途徑。
對於一些本身體量較小或者目前數據量積累較少的公司,個人認為沒有必要搭建這一套系統,暫時先租用AWS和阿里雲就夠了。對於數據量大,但數據分析需求較簡單的公司,可以直接買Tableau,Splunk,HP Vertica,或者IBM DB2等軟體或服務即可。
㈧ 企業的大數據分析平台應該如何構建
①確認數據分析方向。比如是分析社交數據,還是電商數據,亦或者是視頻數據,或者搜索數據。
②確認數據來源。比如來自騰訊,來自網路,來自阿里巴巴,來自實體店。
③數據分析師,去分析你獲取的數據。
㈨ 如何構建企業級大數據平台,發揮數據大價值
大數據能夠幫助企業預測經濟形勢、把握市場態勢、了解消費需求、提高研發效率,不僅具有巨大的潛在商業價值,而且為企業提升競爭力提供了新思路。企業怎樣利用大數據提升競爭力?樂思軟體這里從企業決策、成本控制、服務體系、產品研發四個方面加以簡要討論。
企業決策大數據化。現代企業大都具備決策支持系統,以輔助決策。但現行的決策支持系統僅搜集部分重點數據,數據量小、數據面窄。企業決策大數據化的基礎是企業信息數字化,重點是數據的整理分析。首先,企業需要進行信息數字化採集系統的更新升級。按各決策層級的功能建立數據採集系統,以橫向、縱向、實時三維模式廣泛採集數據。其次,企業需要推進決策權力分散化、前端化、自動化。對多維度的數據進行提煉整合,在人為影響起主要作用的頂層,提高決策指標信息含量和科學性;在人為影響起次要作用的底層,推進決策指標量化,完善決策支持系統和決策機制。大數據決策機制讓數據說話,可以減少人為干擾因素,提高決策精準度。
成本控制大數據化。目前,很多企業在采購、物流、儲存、生產、銷售等環節引入了成本控制系統,但系統間融合度較低。企業可對現有成本控制系統進行改造升級,打造大數據綜合成本控制系統。其一,在成本控制的全過程採集數據,以求最大限度地描述事物,實現信息數字化、數據大量化。其二,推進成本控制標准、控制機理系統化。量化指標,實現成本控制自動化,減少人為因素干擾;細化指標,以獲取更精確的數據。其三,構建綜合成本控制系統,將成本控制所涉及的從原材料采購到產品生產、運輸、儲存、銷售等環節有機結合起來,形成一個綜合評價體系,為成本控制提供可靠依據。成本控制大數據化以預先控制為主、過程式控制制為中、產後控制為輔的方式,可以最大限度降低企業運營成本。
服務體系大數據化。品牌和服務是企業的核心競爭力,服務體系直接影響企業的生存發展。優化服務體系的重點是健全溝通機制、聯絡機制和反饋機制,利用大數據優化服務體系的關鍵是找到服務體系中存在的問題。首先,加強數據收集,對消費者反饋的信息進行分類分析,找到服務體系的問題,然後對症下葯,建立高效服務機制,提高服務效率。其次,將服務方案移到線上,打造自動化服務系統。快速分析、比對消費者服務需求信息,比對成功則自動進入服務程序,實現快速處理;比對失敗則轉入人工服務系統,對新服務需求進行研究處理,並快速將新服務機制添加至系統,優化服務系統。服務體系大數據化,可以實現服務體系的高度自動化,最大程度提高服務質量和效率。
產品研發大數據化。產品研發存在較高風險。大數據能精確分析客戶需求,降低風險,提高研發成功率。產品研發的主要環節是消費需求分析,產品研發大數據化的關鍵環節是數據收集、分類整理和分析利用。企業官網的消費者反饋系統、貼吧、論壇、新聞評價體系等是消費者需求信息的主要來源,應注重從中收集數據。同時,可與論壇、貼吧、新聞評價體系合作構建消費者綜合服務系統,完善消費者信息反饋機制,實現信息收集大量化、全面化、自動化,為產品研發提供信息源。然後,對收集的非結構化數據進行分類整理,以達到精確分析消費需求、縮短產品研發周期、提高研發效率的目的。產品研發大數據化,可以精準分析消費者需求,提高產品研發質量和效率,使企業在競爭中占據優勢。