天天看點

大資料工程師應掌握的技能

       大資料工程師是以大資料平台建構以及海量資料采集、存儲、計算等工作的技術人員,工作中的典型應用包含離線計算、實時計算、即時查詢、數倉建構、使用者畫像、個性化推薦、反欺詐等。

大資料平台的技術分層,理清了大資料技術架構邏輯。本文結合大資料技術架構與企業實際應用,梳理出大資料工程師需要掌握的技能,包括大資料主流開發語言、大資料平台的建構、大資料采集、大資料存儲與交換、大資料離線和實時計算。

一、大資料主流開發語言

大資料生态圈的絕大多數技術元件的源代碼都是使用 Java 語言開發的,比如 Zookeeper、Hadoop、Hive、HBase、Flume、Sqoop、Flink 等,而且在大資料開發過程中經常涉及源代碼的閱讀與使用,是以 Java 語言是從事大資料項目開發的必備語言,也是大資料開發的主流語言。當然除了Java語言,Python語言也可以用于大資料開發工作,Python 語言主要側重業務資料的分析和挖掘。

二、大資料平台的建構

大資料平台建構的技能是大資料開發工程師基本功,大資料平台一般是指 Hadoop 叢集,Hadoop 叢集包含 HDFS 分布式檔案系統和YARN 資源管理系統。HDFS解決了海量資料的分布式存儲問題,YARN解決了MapReduce分布式計算的資源排程問題,除了MapReduce,還有Spark和Flink等流式計算架構都可以運作在YARN上。在搭建Hadoop叢集同時搭建Zookeeper分布式協調服務實作HDFS叢集和YARN 叢集的高可用。是以,大資料工程師要掌握Zookeeper、HDFS 以及YARN分布式叢集的建構。

三、大資料采集

大資料最重要的是資料,沒有資料其他的就無從談起。大資料項目開發的首要任務就是采集海量資料,這就需要開發者具備海量資料采集的能力。在實際工作中,資料一般有兩種來源,一種來自日志檔案,一種來自資料庫。每種資料源的采集技術有很多種,一般使用Flume、Logstash、Filebeat等工具采集日志檔案資料,使用Sqoop、Canal等工具采集資料庫中的資料。在本書中,項目的資料源來自日志檔案,是以可以選擇企業較為常用的采集工具Flume。是以,大資料工程師需要掌握Flume等大資料采集技術。

四、大資料存儲與交換

前面已經建構起 Hadoop 大資料平台,HDFS 分布式檔案系統解決了海量資料存儲的問題,但是HDFS并不支援資料的随機查詢與更新,而HBase資料庫建構在HDFS之上,既解決了海量資料存儲又能實作資料的實時随機查詢與更新,滿足線上使用者的服務需求。在大資料離線或實時計算項目中,經常需要使用 Kafka 消息隊列作為實時的資料中轉服務,對來自各個平台的資料進行流轉,達到分享和交換資料的目的。是以,大資料工程師需要掌握HBase和Kafka等大資料存儲交換技術。

五、大資料離線計算

Hadoop 的出現,一方面使用HDFS解決了海量資料存儲的問題,另一方面使用MapReduce解決了海量資料分布式計算的問題,當然 MapReduce是離線計算架構,僅支援離線計算,但也解決了企業裝大部分的應用場景,在大資料項目開發的過程中離不開離線計算。當然除了MapReduce支援離線計算,本書後面提到的Hive、Spark Core、Spark SQL、Flink DataSet等技術都支援離線計算。是以,大資料工程師需要掌握MapReduce、Hive、SparkCore、Spark SQL、Flink DataSet等大資料離線計算技術。