天天看點

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

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

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

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

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

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

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

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

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

一方面,你的資料需要的存儲量超過資料庫或者資料倉庫的能力範圍,你可能需要大資料技術;另一方面,你的計算量超過傳統的資料處理手段的時效性能力範圍之外,你也可能需要大資料技術。而典型的計算能力的挑戰就是來自于資料挖掘和多元度分析。可能資料量不大,但是算法和過程很複雜,也可能會需要大資料的技術。比如對使用者做推薦,如果你對大資料開發感興趣,想系統學習大資料的話,可以加入大資料技術學習交流扣扣君羊:522189307,歡迎添加,了解課程介紹,擷取學習資源。基于使用者群的分類做精準的廣告投放。或者在傳統行業計算氣象預報,計算地質資料做石油探測,礦産探測。又或者用在金融行業,通過對曆史資料建立數學模型,對證券和期貨貸款等做風險預估。之是以阿裡巴巴對于中國的經濟和進出口的預測比商務部和統計局更精準,除了他們有一群數學和統計專家外,大資料是完全不可或缺的技術手段。

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

顯然不是,大資料領域存在很多廠商和應用,有開源的,有收費的。比如一些非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是一樣的,但是可以對實時資料流進行計算,并即刻生成計算結果。做到随查随出。

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

繼續閱讀