給初學大數據開發的小夥伴一點建議
大數據現在這麼火,想往大數據方面發展,但是英文、數學不好的可以嗎?? 學習大數據該學哪些技術??大數據和程序員比哪個要好學點??等等。。。很多人學大數據的原因就是大數據找工作好找,薪資很高,,當然,為了這個原因也是可以的,畢竟這個時代就業壓力確實很大,為了一個好的工作學一門技術,,但是我想問下你,你的專業是什麼呢??對於計算機/軟體,你的興趣是什麼?是計算機專業,對操作系統、硬體、網路、伺服器感興趣?是軟體專業,對軟體開發、編程、寫代碼感興趣?還是數學、統計學專業,對數據和數字特別感興趣。。
其實說這些不是為了說明大數據有多難,只是告訴你這就是大數據的三個發展方向,平台搭建/優化/運維/監控、大數據開發/設計/架構、數據分析/挖掘。。這三個方面沒有哪個容易學些、哪個薪資高些、哪個發展前景好些。。。
現如今大數據開源框架也是越來越多,舉幾個常用的例子:
文件存儲:Hadoop HDFS、Tachyon、KFS
流式、實時計算:Storm、Spark Streaming、S4、Heron
K-V、NOSQL資料庫:HBase、Redis、MongoDB
資源管理:YARN、Mesos
日誌收集:Flume、Scribe、Logstash、Kibana
消息系統:Kafka、StormMQ、ZeroMQ、RabbitMQ
查詢分析:Hive、Impala、Pig、Presto、Phoenix、SparkSQL、Drill、Flink、Kylin、Druid
分散式協調服務:Zookeeper
集群管理與監控:Ambari、Ganglia、Nagios、Cloudera Manager
數據挖掘、機器學習:Mahout、Spark MLLib
數據同步:Sqoop
任務調度:Oozie
上面有30多種框架了吧,哈哈,是不是有點慌了,雖然有這麼多框架,別說全部精通了,就算是全會用的,估計現在也沒有幾個,就要看你在三個方面往哪個方面發展了。就拿第二個來說(開發/設計、架構),且先聽聽我的建議:
一、初識hadoop
Hadoop可以算是大數據存儲和計算的開山鼻祖,現在大多開源的大數據框架都依賴Hadoop或者與它能很好的兼容。
關於Hadoop,你至少需要搞清楚以下是什麼:
Hadoop 1.0、Hadoop 2.0
MapReduce、HDFS
NameNode、DataNode
JobTracker、TaskTracker
Yarn、ResourceManager、NodeManager
自己搭建Hadoop,請使用第一步和第二步,能讓它跑起來就行。
建議先使用安裝包命令行安裝,不要使用管理工具安裝。
另外:Hadoop1.0知道它就行了,現在都用Hadoop 2.0.
二、更高效的WordCount
首先,你得先學習SQL,訪問、查詢資料庫的基本語言還是要懂的。。然後SQL On Hadoop之Hive,Hive是數據倉庫工具,數據倉庫是邏輯上的概念,底層使用的是資料庫,數據倉庫的特點:數據全(海量)、穩定;所謂穩定,比如資料庫的數據經常要更新,而數據倉庫的數據是不會被更新,只會被查詢,所以說Hive適合做數據倉庫。最後就是了解hive的工作原理,學會Hive的工作命令。
三、把別處的數據搞到Hadoop上
四、把Hadoop上的數據搞到別處去
五、實例分析
六、實時數據
七、更新查詢數據
八、高大上的機器學習
完成了第一、二,說明你已經快步入大數據的行列了,寫的不好也請多多包涵。
推薦閱讀: