大資料能做什麼,為什麼學大資料

大資料學習發表於2019-07-10

Hadoop和大資料是這兩年最火的詞兒們之一,越來越多的公司對這個東西感興趣,但是我接觸到的大多數公司裡的人,無論是技術人員還是老闆。都不知道怎麼能把這些東西用於改善自己公司的業務。在解答的過程中,提煉出幾個要點,記錄一下。

大資料能做什麼,為什麼學大資料

大資料和雲是不是一回事?

這是最容易混淆的概念之一,我個人認為這是兩回事,雲服務,無論是雲主機還是雲端儲存還是雲的其他應用,都是向使用者提供一個介面,但這個介面的後端是虛擬機器技術,或者分散式儲存技術,或者其他分散式計算技術等等。簡而言之,雲的概念就是我向你提供服務,而你不需要關心這種服務的架構或者技術實現有多麼複雜。打個比方,就好象是,雲之前的時代我們要用電,就需要自己造一個電廠發電,造機組,造變電站,然後再去用它。而云服務就好象是別人搭好了一個電廠,電線直接進你家,你要用,只需要插上插頭,不需要關心電是怎麼被製造出來的。電力的生產和電力裝置的維護都由國家電網承擔。聯絡到網路方面,就是,我們以前要自己買伺服器,自己裝系統,自己上架,自己做負載均衡,自己維護軟硬體環境。有了雲之後,這些都透過雲服務商的虛擬機器技術完成了。資料安全和網路安全都由雲服務商提供,你也不需要專門請人維護一堆裝置。

如果你想要學好大資料最好加入一個好的學習環境,可以來這個Q群251956502 這樣大家學習的話就比較方便,還能夠共同交流和分享資料

而說到大資料,這個可以是基於雲的,也可以是不基於雲的。大資料的處理技術與提供雲服務的技術是不盡相同的,但是又有所交集。可以說,雲服務是基礎設施,是市政工程,而大資料是城市裡的高樓大廈。大資料可以基於雲,也可以不基於雲。

從技術角度上說,國內的大多數雲服務商,主要提供的是虛擬機器服務,這是一種分的概念,把一臺物理伺服器拆成多個虛擬的小伺服器,儘可能多的使用其物理資源,避免浪費。而大資料是合的思想,是把很多臺伺服器合併成一個虛擬的巨型伺服器,透過分配計算資源使資料可以快速的為生產力服務。用一句中國的老話形容大資料和Hadoop就是:三個臭皮匠頂個諸葛亮。用合併起來的計算資源超越小型機或者中型機的計算能力。這裡面當然也有云的概念存在著,就是說,你不需要關心資料的儲存和計算到底是怎麼完成的,你只需要用就可以了。

大資料技術是不是一定需要資料量大才可以,資料量不大就不需要用?

通常是這樣認為的,但是並不絕對,計算維度大,計算過程複雜也都可以認為是大資料。換句話說,就是,如果你所需要的資料,在你所需要的時間內無法正常計算出來,你可能就需要用到大資料的技術了。

一方面,你的資料需要的儲存量超過資料庫或者資料倉儲的能力範圍,你可能需要大資料技術;另一方面,你的計算量超過傳統的資料處理手段的時效效能力範圍之外,你也可能需要大資料技術。而典型的計算能力的挑戰就是來自於資料探勘和多維度分析。可能資料量不大,但是演算法和過程很複雜,也可能會需要大資料的技術。比如對使用者做推薦,基於使用者群的分類做精準的廣告投放。或者在傳統行業計算氣象預報,計算地質資料做石油探測,礦產探測。又或者用在金融行業,透過對歷史資料建立數學模型,對證券和期貨貸款等做風險預估。之所以阿里巴巴對於中國的經濟和進出口的預測比商務部和統計局更精準,除了他們有一群數學和統計專家外,大資料是完全不可或缺的技術手段。

大資料技術是不是就是那個什麼憨杜普?

顯然不是,大資料領域存在很多廠商和應用,有開源的,有收費的。比如一些非Hadoop大資料處理的公司和軟體,EMC的Greenplum,Splunk公司的splunk等等。這些都不是基於Hadoop的,但是也有共同的缺陷,就是很貴。所以,大多數公司採用開源軟體來完成大資料的業務處理。而開源領域做得最好的,應該就是hadoop了。所以現在hadoop基本成了大資料處理的代名詞了。基於Hadoop衍生了很多家商業公司,因為Apache的許可協議並不拒絕商業。像國內比較知名的Cloudera,MapR,他們的商業產品都是基於Hadoop及其周邊的生態軟體。

大資料應該怎麼推進公司業務的發展?

這是個關乎想象力的事情,有了大容量和大計算,至於怎麼用,這隻能自己想。原來資料怎麼做現在還怎麼做,不過除了啤酒與尿布,口香糖與避孕套之外,還有一個比較生動的案例大約是這樣的:美國有一個公司,在各產糧區每隔一英里插一個感測器,收集空氣溼度和土壤含氮量等資料。收集上來以後透過大資料的處理手段和演算法,預測出該地區的收成可能會是什麼情況,然後把預測報告賣給美國的農業保險公司。

Hadoop有什麼優缺點?

Hadoop的優點是資料的容量和計算能力以及資料的備份安全性有了很大程度的提升,1.0最大可以支援到大約4000臺伺服器的並行儲存和運算,而2.0大約可以支援6000臺伺服器。不過2.0現在還不是很完善,所以生產環境還是建議用1.0。我認為4000臺叢集的容量和計算能力足以匹敵IBM的大型機,從去年12月15號的中國銀行大型機當機事件來看。大型機就算安全性再有保障,也畢竟是單點。真出了故障,誰也不敢拍板切換到備份大型機上。Hadoop 1.0已經有了很多方案去解決單點問題,2.0自己就支援單點故障切換。或許未來繼續發展,將全面超越大型機。事實上,IBM已經開始出自己的Hadoop發行版了。

至於缺點,就是Hadoop1.0還是存在單點問題,但是可以透過其他技術手段彌補做到熱切換,只是要求維護人員的技術水平較高。另外一個缺點是計算的時間會比較長,還無法做到實時查詢和快速決策響應。但是有很多其他的方案在彌補Hadoop的這個問題,像Apache出的跟Google Dremel競爭的Drill,Cloudera推出的Impala,和其他一些產品。而實時計算則有Twitter開源的Storm叢集,設計理念跟Hadoop是一樣的,但是可以對實時資料流進行計算,並即刻生成計算結果。做到隨查隨出。

在各個開源社群的支援下,在全世界程式設計師的共同努力下,大資料的處理能力也在高速的發展,程式設計師們正在用自己的智慧改造這個世界。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69917001/viewspace-2650086/,如需轉載,請註明出處,否則將追究法律責任。

相關文章