從工作內容,大數據開發主要負責大數據的大數據挖掘,數據清洗的發展,數據建模工作。
主要負責處理和大數據應用,結合大數據可視化分析工程師,挖掘出價值的數據,為企業提供業務發展支持。大數據開發工程師偏重建設和優化系統。
第一類是編寫一些Hadoop、Spark的應用程式,第二類是對大數據處理系統本身進行開發。
第二類工作的話通常大公司裡才有,一般他們都會搞自己的系統或者再對開源的做些二次開發。
這種工作的話對理論和實踐要求的都更深一些,也更有技術含量。
目前,一個大數據工程師的月薪輕鬆過萬,一個有幾年工作經驗的工程師薪酬在40萬~160萬元之間不等,而更頂尖的大數據技術人才則是年薪輕鬆超百萬。
大數據開發學習有一定難度,零基礎入門首先要學習Java語言打基礎,一般而言,Java學習SE、EE,需要一段時間;然後進入大數據技術體系的學習,主要學習Hadoop、Spark、Storm等。
大數據開發需要學習的內容包括三大部分,分別是:
大數據基礎知識、大數據平臺知識、大數據場景應用。
大數據基礎知識有三個主要部分:數學、統計學和計算機;
大數據平臺知識:是大數據開發的基礎,往往以搭建Hadoop、Spark平臺為主;
大數據場景是目前大數據的重要應用,這些場景包括很多領域,比如金融大數據、交通大數據、教育大數據、餐飲大數據等等,這些場景應用的背後也需要對行業知識有一定的了解。
大數據方面有很多的技術:
一是大數據平臺本身,一般是基於某些Hadoop產品如CDH的產品部署後提供服務。部署的產品裡面有很多的組件,如HIVE、HBASE、SPARK、ZOOKEEPER等。
二是ETL,即數據抽取過程,大數據平臺中的原始數據一般是來源於公司內的其它業務系統,如銀行裡面的信貸、核心等,這些業務系統的數據每天會從業務系統抽取到大數據平臺中,然後進行一系列的標準化、清理等操作,再然後經過一些建模生成一些模型給下遊系統使用。
三是數據分析,在數據收集完成後基於這些數據要做一些什麼樣的處理,典型的如報表應用,那每天可能就是寫SQL開發報表了;還有一些如風險監測等平臺,都要基於大數據平臺收集的數據來進行處理。
那麼,作為一名大數據工程師需要掌握哪些知識呢?讓我們一起來看一下。
1、Java編程
Java語言是基礎,可以編寫Web應用、桌面應用、分布式系統、嵌入式系統應用等。Java語言有很多優點,它的跨平臺能力贏得了很多工程師的喜愛。
2、Linux基礎操作命令
大數據開發一般在Linux環境下進行。
大數據工程師使用的命令主要在三方面:查看進程,包括CPU、內存;排查故障,定位問題;排除系統慢的原因等。
3、Hadoop
Hadoop中使用最多的是HDFS集群和MapReduce框架。
HDFS存儲數據,並優化存取過程。
MapReduce方便了工程師編寫應用程式。
4、HBase
HBase可以隨機、實時讀寫大數據,更適合於非結構化數據存儲,核心是分布式的、面向列的Apache HBase資料庫。
HBase作為Hadoop的數據看,它的應用、架構和高級用法對大數據開發來說非常重要。
5、Hive
Hive作為Hadoop的一個數據倉庫工具,方便了數據匯總和統計分析。
6、ZooKeeper
ZooKeeper是Hadoop和Hbase的重要組件,可以協調為分布式應用程式。ZooKeeper的功能主要有:配置維護、域名服務、分布式同步、組件服務。
7、Phoenix
Phoenix是一種開源的sql引擎,是用Java語言編寫的。
8、Avro與Protobuf
Avro、Protobuf是適合做數據存儲的數據序列化系統,有較豐富的數據結構類型,可以在多種不同的語言間進行通信。
9、Cassandra
Apache Cassandra是運行在伺服器或者雲基礎設施上的可以為數據提供完美平臺的資料庫,具有高性能、可擴展性、高線性。
Cassandra支持數據中心間互相複製,低延遲、不受斷電影響。它的數據模型有列索引、高性能視圖和內置緩存。
10、Kafka
Kafka可以通過集群來提供實時的消息的分布式發布訂閱消息系統,具有很高的吞吐量,主要是利用Hadoop的並行加載來統一線上、離線的消息處理。
11、Chukwa
Chukwa是一個分布式的數據採集監視系統,具有可伸縮性和健壯性。它的工具包可以對結果進行顯示、監測、分析,充分使用收集到的數據。
12、Flume
Flume是海量日誌處理系統,具有高可用、高可靠、分布式的特點,可以對日誌進行採集、聚合和傳輸。
Flume可以定製數據發送方來收集數據,也可以對數據簡單處理後寫到數據接收方。
面對這麼有前景的行業,有興趣的你還在猶豫什麼?趕緊投身於大數據潮流中,爭做弄潮兒,實現自我能力的完美升華。