徐曉鵬大數據實踐者
親身參與,作為主力完成了一個信息大數據分析平臺。中間經歷了很多問題,算是有些經驗,因而作答。
整體而言,大數據平臺從平臺部署和數據分析過程可分為如下幾步:
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,『全名是YetAnotherResourceNegotiator』。常用的分布式數據數據『倉』庫有Hive、Hbase。Hive可以用SQL查詢『但效率略低』,Hbase可以快速『近實時』讀取行。外部數據庫導入導出需要用到Sqoop。Sqoop將數據從Oracle、MySQL等傳統數據庫導入Hive或Hbase。Zookeeper是提供數據同步服務,Yarn和Hbase需要它的支持。Impala是對hive的一個補充,可以實現高效的SQL查詢。ElasticSearch是一個分布式的搜索引擎。針對分析,目前最火的是Spark『此處忽略其他,如基礎的MapReduce和Flink』。Spark在core上面有MLlib,SparkStreaming、SparkQL和GraphX等庫,可以滿足幾乎所有常見數據分析需求。
值得一提的是,上面提到的組件,如何將其有機結合起來,完成某個任務,不是一個簡單的工作,可能會非常耗時。
3、數據導入
前面提到,數據導入的工具是Sqoop。用它可以將數據從文件或者傳統數據庫導入到分布式平臺『一般主要導入到Hive,也可將數據導入到Hbase』。
4、數據分析
數據分析一般包括兩個階段:數據預處理和數據建模分析。
數據預處理是為后面的建模分析做準備,主要工作時從海量數據中提取可用特征,建立大寬表。這個過程可能會用到HiveSQL,SparkQL和Impala。
數據建模分析是針對預處理提取的特征/數據建模,得到想要的結果。如前面所提到的,這一塊最好用的是Spark。常用的機器學習算法,如樸素貝葉斯、邏輯回歸、決策樹、神經網絡、TFIDF、協同過濾等,都已經在MLlib里面,調用比較方便。
5、結果可視化及輸出API
可視化一般式對結果或部分原始數據做展示。一般有兩種情況,行數據展示,和列查找展示。在這里,要基于大數據平臺做展示,會需要用到ElasticSearch和Hbase。Hbase提供快速『ms級別』的行查找。ElasticSearch可以實現列索引,提供快速列查找。
平臺搭建主要問題:
1、穩定性Stability
理論上來說,穩定性是分布式系統最大的優勢,因為它可以通過多臺機器做數據及程序運行備份以確保系統穩定。但也由于大數據平臺部署于多臺機器上,配置不合適,也可能成為最大的問題。曾經遇到的一個問題是Hbase經常掛掉,主要原因是采購的硬盤質量較差。硬盤損壞有時會到導致Hbase同步出現問題,因而導致Hbase服務停止。由于硬盤質量較差,隔三差五會出現服務停止現象,耗費大量時間。結論:大數據平臺相對于超算確實廉價,但是配置還是必須高于家用電腦的。
2、可擴展性Scalability
如何快速擴展已有大數據平臺,在其基礎上擴充新的機器是
云計算等領域應用的關鍵問題。在實際2B的應用中,有時需要增減機器來滿足新的需求。如何在保留原有功能的情況下,快速擴充平臺是實際應用中的常見問題。
上述是自己項目實踐的總結。整個平臺搭建過程耗時耗力,非一兩個人可以完成。一個小團隊要真正做到這些也需要耗費很長時間。
目前國內和國際上已有多家公司提供大數據平臺搭建服務,國外有名的公司有Cloudera,Hortonworks,MapR等,國內也有華為、明略數據、星環等。另外有些公司如明略數據等還提供一體化的解決方案,尋求這些公司合作對于入門級的大數據企業或沒有大數據分析能力的企業來說是最好的解決途徑。
對于一些本身體量較小或者目前數據量積累較少的公司,個人認為沒有必要搭建這一套系統,暫時先租用AWS和阿里云就夠了。對于數據量大,但數據分析需求較簡單的公司,可以直接買Tableau,Splunk,HPVertica,或者IBMDB2等軟件或服務即可。
以上是我從事大數據以來的一些認識。
核心關注:拓步ERP系統平臺是覆蓋了眾多的業務領域、行業應用,蘊涵了豐富的ERP管理思想,集成了ERP軟件業務管理理念,功能涉及供應鏈、成本、制造、CRM、HR等眾多業務領域的管理,全面涵蓋了企業關注ERP管理系統的核心領域,是眾多中小企業信息化建設首選的ERP管理軟件信賴品牌。
轉載請注明出處:拓步ERP資訊網http://www.guhuozai8.cn/
本文標題:參與者講述如何創建一個大數據平臺?
本文網址:http://www.guhuozai8.cn/html/consultation/10839319671.html