首頁>Club>
6
回覆列表
  • 1 # 無盡音源

    初入大資料領域或者轉行進入大資料領域的朋友,需要了解的第一件事不是說各種元件框架生態相關的東西,也不是各種程式語言基礎。

    而是,瞭解清楚以下幾個問題:

    1 大資料領域到底包含了哪些東西,解決了哪些問題?

    2 自己的實際基礎是什麼,如何結合自己的基礎以及興趣愛好,在整個大資料領域鏈路 中,找到最好的切入點。

    只有解決了上面兩個問題,才能給自己最精確的定位,找準方向深入下去。

    第一個問題,大資料領域的範圍。

    現在一說起大資料,簡單起來就是一個詞,但其實這個方向已經可以形成一個技術領域了,包含了方方面面的技術點,也提供了各種不同的技術崗位。所以,不同的崗位,對應的需求,工作內容都是不同的。

    我們可以根據資料從下到上,從無到有,到產生價值整個資料業務流程來拆解,並且與此同時,來看看每個環節我們需要的技術儲備以及能做的事有哪些。

    資料的幾大基本業務流程:

    收集 -> 傳輸 -> 轉換/清洗 ->儲存 -> 再加工 -> 挖掘/統計 -> 上層應用輸出

    總的來說,可以分以下幾個大塊。

    第一環:資料的收集

    在收集階段,我們來看看資料主要有哪幾種存在方式:

    1 第三方開放資料集

    2 業務資料

    3 服務日誌

    4 行為上報資料

    首先針對於第三方開放資料,目前爬取第三方開放資料的形式已經逐漸被認可,並且將會越來越多的人以及企業從網際網路開放資料集中獲取原始資料。

    所以,針對於開放資料的獲取,爬蟲已經可以單獨形成一個體繫了,包括不同的爬蟲框架,以及近年來對於分散式爬蟲的技術需求等,在語言方面主要還是python以及java為主,輔助其他相關指令碼知識。

    如果資料是業務資料,那麼通常在傳統的路子中,業務資料一般儲存在傳統的資料庫中,那麼,對於傳統資料庫相關的技術知識不可避免的需要有所瞭解,最起碼簡單的資料庫操作得會吧。

    其次,我們需要對資料進行統一化處理,又不可避免的涉及到資料的遷移,即從傳統資料儲存介質中遷移到諸如hadoop生態中,那麼涉及的遷移框架諸如sqoop之類的,又是不能不懂一些。

    在語言以及基礎要求上,對SQL相關的知識需要補充,以及linux操作,簡單的python需要掌握。

    最後,如果是資料上報的形式,你需要對整個資料上報的流程熟悉,怎麼進行埋點、怎麼收集上報的資料,上報過來怎麼進行傳輸接受落地,這裡就不多說,最終這種上報過來的資料反倒相對規整。

    再來看第二環:資料的傳輸

    資料的傳輸到底在什麼時候會涉及到呢?

    諸如上面說到的資料上報,在大資料模式下,通常上報過來的資料我們都不會馬上進行落地的,因為涉及到不同部分其效率不一樣,在峰值波動的情況下,直接落地十有八九都會導致系統宕機。

    所以,資料的傳輸在大資料領域中有著不可替代的左右,會出現在各種系統耦合之間,一方面用作資料的傳輸,另一方面用作資料的緩衝、系統解耦。

    在hadoop生態中,最有名的莫過於kafka與flume的組合搭配了,收集資料,並進行資料傳輸,此外還有不少類似的訊息佇列存在,諸如ActiveMQ、阿里的RocketMQ等等。

    第三環:資料的儲存

    生態中最最核心的儲存元件莫過於HDFS了,這是支撐hadoop能夠做大批次資料處理的基礎支撐,便捷而強悍的橫向擴充套件能力。

    除此之外,還有各種基於此之上不同形式的資料儲存方式,諸如hive、HBase、甚至ES、Solr勉強都算,以及不可忽略的傳統型別的SQL儲存方式。

    我們需要理解的是,不同的儲存方式應對於實際的應用場景是不同的,HDFS作為最基礎的分散式檔案系統,我們就不多說。

    諸如,Hive其更作用更多用於類傳統式的SQL查詢操作,其對於效應效率要求並不高,但對於資料規模的支撐性良好;而HBase則更偏向於即席查詢,要求有更高的響應效率,但對於查詢的複雜性支援上則相對較弱。

    而我們說諸如ES、Solr都也勉強算是一種資料儲存的組織方式,其實也是有一定道理的,因為他們本身也支援這種分散式的資料儲存,只不過他們是為了應對於自己框架的檢索需求而設計的資料儲存組織。

    此外,還有例如Redis,也算是目前大資料生態中不可缺少的資料儲存方式之一,基於內容,應對於高效的資料儲存與讀取,在很多的實際應用場景中都用的到。

    第四環:資料的再加工

    其實這一層主要要說就是基於Hadoop的MR框架以及Spark,當然,也有其他的一些分散式資料處理框架。

    大規模的資料清洗轉換、再加工,都離不開分散式處理框架的支援。我們需要對雜亂的資料進行標準化、對殘缺的資料進行補全、對原始的資料進行深度加工提取高階屬性等等。

    簡單的,我們可以透過一些處理指令碼來做,但針對於大規模的資料量級,我們依然需要依賴MR或者spark這種框架來處理。而針對於一些實時的場景,我們也不可避免的需要掌握諸如storm以及spark streaming之類的實時框架。所以,在這一環,我們不止需要了解不同的大資料處理框架,我們還需要在基於框架的基礎上,做資料應用開發,進行資料處理。

    最後一環:資料應用價值輸出

    前面我們做了很多事,包括資料的收集、傳輸、處理、儲存等等,但這些都是手段,都不是我們的目的。

    我們的目的是讓資料產生價值,這也是企業做大資料的核心目的。

    我們可以用資料來做什麼:

    1 基於統計分析、資料預測,做資料化運營、決策,提升效率、效果,這是最常見的應用場景。

    2 做推薦,在主體之外產生衍生價值,提升單位價值轉換。

    3 畫像體系,至於說畫像能做什麼,只要能做的準,能做的事可多了。

    4 基於資料化、智慧化的搜尋。

    5 實現業務的資料化、自動化、智慧化。

  • 2 # 樂觀點噻

    很難,先不說是否有能力與毅力去入行,其次,想好自己能否堅持不懈學習,網際網路知識日新月異,選擇了就要跟上知識的迭代!

  • 3 # IT人劉俊明

    大資料是我的主要研究方向之一,目前也在帶大資料方向的研究生,所以我來回答一下這個問題。

    首先,大資料相關技術還是具有一定難度的,但是隨著大資料領域的生態體系逐漸完善,大資料技術逐漸從研發領域嚮應用領域過渡,所以對於零基礎的學習者來說,也能夠找到適合自己的切入點。

    目前大資料領域的崗位包括大資料平臺研發、大資料應用開發、大資料分析和大資料運維,這些崗位也有諸多的細分崗位,以大資料運維崗位為例,就涉及到資料採集、資料整理、資料儲存、資料傳輸、大資料平臺部署、大資料平臺維護等崗位,學習這些崗位的相關知識對於初學者的基礎並沒有太多的要求,完全可以從零開始學起。

    對於從事大資料運維崗位的從業人員來說,需要掌握三方面知識結構,其一是作業系統知識,重點在於作業系統體系結構,往往需要系統地學習一下Linux作業系統;其二是掌握資料庫知識,資料庫可以從關係型資料庫開始學起,重點在於Sql語言的學習;其三是掌握計算機網路知識,涉及到網路的部署和配置,這其中包括大量網路裝置的安裝和除錯,比如交換機和路由器的配置等等。

    除了網路運維崗位之外,大資料分析崗位也可以從頭開始學起,大資料分析分為兩種情況,一種是採用大資料分析工具進行場景化的資料分析,另一種情況是採用機器學習方式實現複雜的資料分析任務,對於前一種資料分析方式,在內容的學習上並不算複雜,完全可以從頭開始學起。

    最後,如果想在大資料領域走得更遠,應該系統地學習一下數學知識和統計學知識,這是學習大資料相關技術的重要基礎。

  • 中秋節和大豐收的關聯?
  • 如何考過CPA?