日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

大数据开发初学者学习路线

發(fā)布時間:2023/12/20 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 大数据开发初学者学习路线 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

  • 目錄
    • 前言
    • 導(dǎo)讀:
    • 第一章:初識Hadoop
    • 第二章:更高效的WordCount
    • 第三章:把別處的數(shù)據(jù)搞到Hadoop上
    • 第四章:把Hadoop上的數(shù)據(jù)搞到別處去
    • 第五章:快一點吧,我的SQL
    • 第六章:一夫多妻制
    • 第七章:越來越多的分析任務(wù)
    • 第八章:我的數(shù)據(jù)要實時
    • 第十章:牛逼高大上的機器學(xué)習(xí)

目錄

最近看到一篇很不錯的文章,獻給正在學(xué)習(xí)大數(shù)據(jù)的你我他。如果能答出文章中大部分問題,那么恭喜你已經(jīng)從“小白”進化到“小菜鳥”的階段。
轉(zhuǎn)自:http://www.ppvke.com/Blog/archives/50967

前言

其實這就是想告訴你的大數(shù)據(jù)的三個發(fā)展方向,平臺搭建/優(yōu)化/運維/監(jiān)控、大數(shù)據(jù)開發(fā)/設(shè)計/架構(gòu)、數(shù)據(jù)分析/挖掘。請不要問我哪個容易,哪個前景好,哪個錢多。

導(dǎo)讀:

第一章:初識Hadoop

第二章:更高效的WordCount

第三章:把別處的數(shù)據(jù)搞到Hadoop上

第四章:把Hadoop上的數(shù)據(jù)搞到別處去

第五章:快一點吧,我的SQL

第六章:一夫多妻制

第七章:越來越多的分析任務(wù)

第八章:我的數(shù)據(jù)要實時

第九章:我的數(shù)據(jù)要對外

第十章:牛逼高大上的機器學(xué)習(xí)

經(jīng)常有初學(xué)者在博客和QQ問我,自己想往大數(shù)據(jù)方向發(fā)展,該學(xué)哪些技術(shù),學(xué)習(xí)路線是什么樣的,覺得大數(shù)據(jù)很火,就業(yè)很好,薪資很高。如果自己很迷茫,為了這些原因想往大數(shù)據(jù)方向發(fā)展,也可以,那么我就想問一下,你的專業(yè)是什么,對于計算機/軟件,你的興趣是什么?是計算機專業(yè),對操作系統(tǒng)、硬件、網(wǎng)絡(luò)、服務(wù)器感興趣?是軟件專業(yè),對軟件開發(fā)、編程、寫代碼感興趣?還是數(shù)學(xué)、統(tǒng)計學(xué)專業(yè),對數(shù)據(jù)和數(shù)字特別感興趣。。

其實這就是想告訴你的大數(shù)據(jù)的三個發(fā)展方向,平臺搭建/優(yōu)化/運維/監(jiān)控、大數(shù)據(jù)開發(fā)/設(shè)計/架構(gòu)、數(shù)據(jù)分析/挖掘。請不要問我哪個容易,哪個前景好,哪個錢多。

先扯一下大數(shù)據(jù)的4V特征:

數(shù)據(jù)量大,TB->PB

數(shù)據(jù)類型繁多,結(jié)構(gòu)化、非結(jié)構(gòu)化文本、日志、視頻、圖片、地理位置等;

商業(yè)價值高,但是這種價值需要在海量數(shù)據(jù)之上,通過數(shù)據(jù)分析與機器學(xué)習(xí)更快速的挖掘出來;

處理時效性高,海量數(shù)據(jù)的處理需求不再局限在離線計算當中。

現(xiàn)如今,正式為了應(yīng)對大數(shù)據(jù)的這幾個特點,開源的大數(shù)據(jù)框架越來越多,越來越強,先列舉一些常見的:

文件存儲:Hadoop HDFS、Tachyon、KFS
離線計算:Hadoop MapReduce、Spark
流式、實時計算:Storm、Spark Streaming、S4、Heron
K-V、NOSQL數(shù)據(jù)庫:HBase、Redis、MongoDB
資源管理:YARN、Mesos
日志收集:Flume、Scribe、Logstash、Kibana
消息系統(tǒng):Kafka、StormMQ、ZeroMQ、RabbitMQ
查詢分析:Hive、Impala、Pig、Presto、Phoenix、SparkSQL、Drill、Flink、Kylin、Druid
分布式協(xié)調(diào)服務(wù):Zookeeper
集群管理與監(jiān)控:Ambari、Ganglia、Nagios、Cloudera Manager
數(shù)據(jù)挖掘、機器學(xué)習(xí):Mahout、Spark MLLib
數(shù)據(jù)同步:Sqoop
任務(wù)調(diào)度:Oozie
……

眼花了吧,上面的有30多種吧,別說精通了,全部都會使用的,估計也沒幾個。

就我個人而言,主要經(jīng)驗是在第二個方向(開發(fā)/設(shè)計/架構(gòu)),且聽聽我的建議吧。

第一章:初識Hadoop

1.1 學(xué)會百度與Google

不論遇到什么問題,先試試搜索并自己解決。

Google首選,翻不過去的,就用百度吧。

1.2 參考資料首選官方文檔

特別是對于入門來說,官方文檔永遠是首選文檔。

相信搞這塊的大多是文化人,英文湊合就行,實在看不下去的,請參考第一步。

1.3 先讓Hadoop跑起來

Hadoop可以算是大數(shù)據(jù)存儲和計算的開山鼻祖,現(xiàn)在大多開源的大數(shù)據(jù)框架都依賴Hadoop或者與它能很好的兼容。

關(guān)于Hadoop,你至少需要搞清楚以下是什么:

Hadoop 1.0、Hadoop 2.0

MapReduce、HDFS

NameNode、DataNode

JobTracker、TaskTracker

Yarn、ResourceManager、NodeManager

自己搭建Hadoop,請使用第一步和第二步,能讓它跑起來就行。

建議先使用安裝包命令行安裝,不要使用管理工具安裝。

另外:Hadoop1.0知道它就行了,現(xiàn)在都用Hadoop 2.0.

1.4 試試使用Hadoop

HDFS目錄操作命令;
上傳、下載文件命令;
提交運行MapReduce示例程序;

打開Hadoop WEB界面,查看Job運行狀態(tài),查看Job運行日志。

知道Hadoop的系統(tǒng)日志在哪里。

1.5 你該了解它們的原理了

MapReduce:如何分而治之;
HDFS:數(shù)據(jù)到底在哪里,什么是副本;
Yarn到底是什么,它能干什么;
NameNode到底在干些什么;
ResourceManager到底在干些什么;

1.6 自己寫一個MapReduce程序

請仿照WordCount例子,自己寫一個(照抄也行)WordCount程序,
打包并提交到Hadoop運行。

你不會Java?Shell、Python都可以,有個東西叫Hadoop Streaming。

如果你認真完成了以上幾步,恭喜你,你的一只腳已經(jīng)進來了。

第二章:更高效的WordCount

2.1 學(xué)點SQL吧

你知道數(shù)據(jù)庫嗎?你會寫SQL嗎?
如果不會,請學(xué)點SQL吧。

2.2 SQL版WordCount

在1.6中,你寫(或者抄)的WordCount一共有幾行代碼?

給你看看我的:

SELECT word,COUNT(1) FROM wordcount GROUP BY word;

這便是SQL的魅力,編程需要幾十行,甚至上百行代碼,我這一句就搞定;使用SQL處理分析Hadoop上的數(shù)據(jù),方便、高效、易上手、更是趨勢。不論是離線計算還是實時計算,越來越多的大數(shù)據(jù)處理框架都在積極提供SQL接口。

2.3 SQL On Hadoop之Hive

什么是Hive?官方給的解釋是:

The Apache Hive data warehouse software facilitates reading, writing, and managing large datasets residing in distributed storage and queried using SQL syntax.

為什么說Hive是數(shù)據(jù)倉庫工具,而不是數(shù)據(jù)庫工具呢?有的朋友可能不知道數(shù)據(jù)倉庫,數(shù)據(jù)倉庫是邏輯上的概念,底層使用的是數(shù)據(jù)庫,數(shù)據(jù)倉庫中的數(shù)據(jù)有這兩個特點:最全的歷史數(shù)據(jù)(海量)、相對穩(wěn)定的;所謂相對穩(wěn)定,指的是數(shù)據(jù)倉庫不同于業(yè)務(wù)系統(tǒng)數(shù)據(jù)庫,數(shù)據(jù)經(jīng)常會被更新,數(shù)據(jù)一旦進入數(shù)據(jù)倉庫,很少會被更新和刪除,只會被大量查詢。而Hive,也是具備這兩個特點,因此,Hive適合做海量數(shù)據(jù)的數(shù)據(jù)倉庫工具,而不是數(shù)據(jù)庫工具。

2.4 安裝配置Hive

請參考1.1 和 1.2 完成Hive的安裝配置。可以正常進入Hive命令行。

2.5 試試使用Hive

請參考1.1 和 1.2 ,在Hive中創(chuàng)建wordcount表,并運行2.2中的SQL語句。
在Hadoop WEB界面中找到剛才運行的SQL任務(wù)。

看SQL查詢結(jié)果是否和1.4中MapReduce中的結(jié)果一致。

2.6 Hive是怎么工作的

明明寫的是SQL,為什么Hadoop WEB界面中看到的是MapReduce任務(wù)?

2.7 學(xué)會Hive的基本命令

創(chuàng)建、刪除表;
加載數(shù)據(jù)到表;
下載Hive表的數(shù)據(jù);

請參考1.2,學(xué)習(xí)更多關(guān)于Hive的語法和命令。

如果你已經(jīng)按照《寫給大數(shù)據(jù)開發(fā)初學(xué)者的話》中第一章和第二章的流程認真完整的走了一遍,那么你應(yīng)該已經(jīng)具備以下技能和知識點:

0和Hadoop2.0的區(qū)別;

MapReduce的原理(還是那個經(jīng)典的題目,一個10G大小的文件,給定1G大小的內(nèi)存,如何使用Java程序統(tǒng)計出現(xiàn)次數(shù)最多的10個單詞及次數(shù));

HDFS讀寫數(shù)據(jù)的流程;向HDFS中PUT數(shù)據(jù);從HDFS中下載數(shù)據(jù);

自己會寫簡單的MapReduce程序,運行出現(xiàn)問題,知道在哪里查看日志;

會寫簡單的SELECT、WHERE、GROUP BY等SQL語句;

Hive SQL轉(zhuǎn)換成MapReduce的大致流程;

Hive中常見的語句:創(chuàng)建表、刪除表、往表中加載數(shù)據(jù)、分區(qū)、將表中數(shù)據(jù)下載到本地;

從上面的學(xué)習(xí),你已經(jīng)了解到,HDFS是Hadoop提供的分布式存儲框架,它可以用來存儲海量數(shù)據(jù),MapReduce是Hadoop提供的分布式計算框架,它可以用來統(tǒng)計和分析HDFS上的海量數(shù)據(jù),而Hive則是SQL On Hadoop,Hive提供了SQL接口,開發(fā)人員只需要編寫簡單易上手的SQL語句,Hive負責把SQL翻譯成MapReduce,提交運行。

此時,你的”大數(shù)據(jù)平臺”是這樣的:

那么問題來了,海量數(shù)據(jù)如何到HDFS上呢?

第三章:把別處的數(shù)據(jù)搞到Hadoop上

此處也可以叫做數(shù)據(jù)采集,把各個數(shù)據(jù)源的數(shù)據(jù)采集到Hadoop上。

3.1 HDFS PUT命令

這個在前面你應(yīng)該已經(jīng)使用過了。

put命令在實際環(huán)境中也比較常用,通常配合shell、python等腳本語言來使用。

建議熟練掌握。

3.2 HDFS API

HDFS提供了寫數(shù)據(jù)的API,自己用編程語言將數(shù)據(jù)寫入HDFS,put命令本身也是使用API。

實際環(huán)境中一般自己較少編寫程序使用API來寫數(shù)據(jù)到HDFS,通常都是使用其他框架封裝好的方法。比如:Hive中的INSERT語句,Spark中的saveAsTextfile等。

建議了解原理,會寫Demo。

3.3 Sqoop

Sqoop是一個主要用于Hadoop/Hive與傳統(tǒng)關(guān)系型數(shù)據(jù)庫

Oracle/MySQL/SQLServer等之間進行數(shù)據(jù)交換的開源框架。

就像Hive把SQL翻譯成MapReduce一樣,Sqoop把你指定的參數(shù)翻譯成MapReduce,提交到Hadoop運行,完成Hadoop與其他數(shù)據(jù)庫之間的數(shù)據(jù)交換。

自己下載和配置Sqoop(建議先使用Sqoop1,Sqoop2比較復(fù)雜)。

了解Sqoop常用的配置參數(shù)和方法。

使用Sqoop完成從MySQL同步數(shù)據(jù)到HDFS;
使用Sqoop完成從MySQL同步數(shù)據(jù)到Hive表;

PS:如果后續(xù)選型確定使用Sqoop作為數(shù)據(jù)交換工具,那么建議熟練掌握,否則,了解和會用Demo即可。

3.4 Flume

Flume是一個分布式的海量日志采集和傳輸框架,因為“采集和傳輸框架”,所以它并不適合關(guān)系型數(shù)據(jù)庫的數(shù)據(jù)采集和傳輸。

Flume可以實時的從網(wǎng)絡(luò)協(xié)議、消息系統(tǒng)、文件系統(tǒng)采集日志,并傳輸?shù)紿DFS上。

因此,如果你的業(yè)務(wù)有這些數(shù)據(jù)源的數(shù)據(jù),并且需要實時的采集,那么就應(yīng)該考慮使用Flume。

下載和配置Flume。

使用Flume監(jiān)控一個不斷追加數(shù)據(jù)的文件,并將數(shù)據(jù)傳輸?shù)紿DFS;

PS:Flume的配置和使用較為復(fù)雜,如果你沒有足夠的興趣和耐心,可以先跳過Flume。

3.5 阿里開源的DataX

之所以介紹這個,是因為我們公司目前使用的Hadoop與關(guān)系型數(shù)據(jù)庫數(shù)據(jù)交換的工具,就是之前基于DataX開發(fā)的,非常好用。

可以參考我的博文《異構(gòu)數(shù)據(jù)源海量數(shù)據(jù)交換工具-Taobao DataX 下載和使用》。

現(xiàn)在DataX已經(jīng)是3.0版本,支持很多數(shù)據(jù)源。

你也可以在其之上做二次開發(fā)。

PS:有興趣的可以研究和使用一下,對比一下它與Sqoop。

如果你認真完成了上面的學(xué)習(xí)和實踐,此時,你的”大數(shù)據(jù)平臺”應(yīng)該是這樣的:

第四章:把Hadoop上的數(shù)據(jù)搞到別處去

前面介紹了如何把數(shù)據(jù)源的數(shù)據(jù)采集到Hadoop上,數(shù)據(jù)到Hadoop上之后,便可以使用Hive和MapReduce進行分析了。那么接下來的問題是,分析完的結(jié)果如何從Hadoop上同步到其他系統(tǒng)和應(yīng)用中去呢?

其實,此處的方法和第三章基本一致的。

4.1 HDFS GET命令

把HDFS上的文件GET到本地。需要熟練掌握。

4.2 HDFS API

同3.2.

4.3 Sqoop

同3.3.

使用Sqoop完成將HDFS上的文件同步到MySQL;
使用Sqoop完成將Hive表中的數(shù)據(jù)同步到MySQL;

4.4 DataX

同3.5.

如果你認真完成了上面的學(xué)習(xí)和實踐,此時,你的”大數(shù)據(jù)平臺”應(yīng)該是這樣的:

如果你已經(jīng)按照《寫給大數(shù)據(jù)開發(fā)初學(xué)者的話2》中第三章和第四章的流程認真完整的走了一遍,那么你應(yīng)該已經(jīng)具備以下技能和知識點:

知道如何把已有的數(shù)據(jù)采集到HDFS上,包括離線采集和實時采集;

你已經(jīng)知道sqoop(或者還有DataX)是HDFS和其他數(shù)據(jù)源之間的數(shù)據(jù)交換工具;

你已經(jīng)知道flume可以用作實時的日志采集。

從前面的學(xué)習(xí),對于大數(shù)據(jù)平臺,你已經(jīng)掌握的不少的知識和技能,搭建Hadoop集群,把數(shù)據(jù)采集到Hadoop上,使用Hive和MapReduce來分析數(shù)據(jù),把分析結(jié)果同步到其他數(shù)據(jù)源。

接下來的問題來了,Hive使用的越來越多,你會發(fā)現(xiàn)很多不爽的地方,特別是速度慢,大多情況下,明明我的數(shù)據(jù)量很小,它都要申請資源,啟動MapReduce來執(zhí)行。

第五章:快一點吧,我的SQL

其實大家都已經(jīng)發(fā)現(xiàn)Hive后臺使用MapReduce作為執(zhí)行引擎,實在是有點慢。

因此SQL On Hadoop的框架越來越多,按我的了解,最常用的按照流行度依次為SparkSQL、Impala和Presto.

這三種框架基于半內(nèi)存或者全內(nèi)存,提供了SQL接口來快速查詢分析Hadoop上的數(shù)據(jù)。關(guān)于三者的比較,請參考1.1.

我們目前使用的是SparkSQL,至于為什么用SparkSQL,原因大概有以下吧:

使用Spark還做了其他事情,不想引入過多的框架;

Impala對內(nèi)存的需求太大,沒有過多資源部署;

5.1 關(guān)于Spark和SparkSQL

什么是Spark,什么是SparkSQL。
Spark有的核心概念及名詞解釋。
SparkSQL和Spark是什么關(guān)系,SparkSQL和Hive是什么關(guān)系。
SparkSQL為什么比Hive跑的快。

5.2 如何部署和運行SparkSQL

Spark有哪些部署模式?
如何在Yarn上運行SparkSQL?
使用SparkSQL查詢Hive中的表。

PS: Spark不是一門短時間內(nèi)就能掌握的技術(shù),因此建議在了解了Spark之后,可以先從SparkSQL入手,循序漸進。

關(guān)于Spark和SparkSQL,可參考

http://lxw1234.com/archives/category/spark

如果你認真完成了上面的學(xué)習(xí)和實踐,此時,你的”大數(shù)據(jù)平臺”應(yīng)該是這樣的:

第六章:一夫多妻制

請不要被這個名字所誘惑。其實我想說的是數(shù)據(jù)的一次采集、多次消費。

在實際業(yè)務(wù)場景下,特別是對于一些監(jiān)控日志,想即時的從日志中了解一些指標(關(guān)于實時計算,后面章節(jié)會有介紹),這時候,從HDFS上分析就太慢了,盡管是通過Flume采集的,但Flume也不能間隔很短就往HDFS上滾動文件,這樣會導(dǎo)致小文件特別多。

為了滿足數(shù)據(jù)的一次采集、多次消費的需求,這里要說的便是Kafka。

6.1 關(guān)于Kafka

什么是Kafka?

Kafka的核心概念及名詞解釋。

6.2 如何部署和使用Kafka

使用單機部署Kafka,并成功運行自帶的生產(chǎn)者和消費者例子。

使用Java程序自己編寫并運行生產(chǎn)者和消費者程序。

Flume和Kafka的集成,使用Flume監(jiān)控日志,并將日志數(shù)據(jù)實時發(fā)送至Kafka。

如果你認真完成了上面的學(xué)習(xí)和實踐,此時,你的”大數(shù)據(jù)平臺”應(yīng)該是這樣的:

這時,使用Flume采集的數(shù)據(jù),不是直接到HDFS上,而是先到Kafka,Kafka中的數(shù)據(jù)可以由多個消費者同時消費,其中一個消費者,就是將數(shù)據(jù)同步到HDFS。

如果你已經(jīng)按照《寫給大數(shù)據(jù)開發(fā)初學(xué)者的話3》中第五章和第六章的流程認真完整的走了一遍,那么你應(yīng)該已經(jīng)具備以下技能和知識點:

為什么Spark比MapReduce快。

使用SparkSQL代替Hive,更快的運行SQL。

使用Kafka完成數(shù)據(jù)的一次收集,多次消費架構(gòu)。

自己可以寫程序完成Kafka的生產(chǎn)者和消費者。

從前面的學(xué)習(xí),你已經(jīng)掌握了大數(shù)據(jù)平臺中的數(shù)據(jù)采集、數(shù)據(jù)存儲和計算、數(shù)據(jù)交換等大部分技能,而這其中的每一步,都需要一個任務(wù)(程序)來完成,各個任務(wù)之間又存在一定的依賴性,比如,必須等數(shù)據(jù)采集任務(wù)成功完成后,數(shù)據(jù)計算任務(wù)才能開始運行。如果一個任務(wù)執(zhí)行失敗,需要給開發(fā)運維人員發(fā)送告警,同時需要提供完整的日志來方便查錯。

第七章:越來越多的分析任務(wù)

不僅僅是分析任務(wù),數(shù)據(jù)采集、數(shù)據(jù)交換同樣是一個個的任務(wù)。這些任務(wù)中,有的是定時觸發(fā),有點則需要依賴其他任務(wù)來觸發(fā)。當平臺中有幾百上千個任務(wù)需要維護和運行時候,僅僅靠crontab遠遠不夠了,這時便需要一個調(diào)度監(jiān)控系統(tǒng)來完成這件事。調(diào)度監(jiān)控系統(tǒng)是整個數(shù)據(jù)平臺的中樞系統(tǒng),類似于AppMaster,負責分配和監(jiān)控任務(wù)。

7.1 Apache Oozie

  • Oozie是什么?有哪些功能?
  • Oozie可以調(diào)度哪些類型的任務(wù)(程序)?
  • Oozie可以支持哪些任務(wù)觸發(fā)方式?
  • 安裝配置Oozie。
  • 7.2 其他開源的任務(wù)調(diào)度系統(tǒng)

    Azkaban:

    https://azkaban.github.io/

    light-task-scheduler:

    https://github.com/ltsopensource/light-task-scheduler

    Zeus:

    https://github.com/alibaba/zeus

    等等……

    另外,我這邊是之前單獨開發(fā)的任務(wù)調(diào)度與監(jiān)控系統(tǒng),具體請參考《大數(shù)據(jù)平臺任務(wù)調(diào)度與監(jiān)控系統(tǒng)》.

    如果你認真完成了上面的學(xué)習(xí)和實踐,此時,你的”大數(shù)據(jù)平臺”應(yīng)該是這樣的:

    第八章:我的數(shù)據(jù)要實時

    在第六章介紹Kafka的時候提到了一些需要實時指標的業(yè)務(wù)場景,實時基本可以分為絕對實時和準實時,絕對實時的延遲要求一般在毫秒級,準實時的延遲要求一般在秒、分鐘級。對于需要絕對實時的業(yè)務(wù)場景,用的比較多的是Storm,對于其他準實時的業(yè)務(wù)場景,可以是Storm,也可以是Spark Streaming。當然,如果可以的話,也可以自己寫程序來做。

    8.1 Storm

    什么是Storm?有哪些可能的應(yīng)用場景?

    Storm由哪些核心組件構(gòu)成,各自擔任什么角色?

    Storm的簡單安裝和部署。

    自己編寫Demo程序,使用Storm完成實時數(shù)據(jù)流計算。

    8.2 Spark Streaming

    什么是Spark Streaming,它和Spark是什么關(guān)系?

    Spark Streaming和Storm比較,各有什么優(yōu)缺點?

    使用Kafka + Spark Streaming,完成實時計算的Demo程序。

    如果你認真完成了上面的學(xué)習(xí)和實踐,此時,你的”大數(shù)據(jù)平臺”應(yīng)該是這樣的:

    至此,你的大數(shù)據(jù)平臺底層架構(gòu)已經(jīng)成型了,其中包括了數(shù)據(jù)采集、數(shù)據(jù)存儲與計算(離線和實時)、數(shù)據(jù)同步、任務(wù)調(diào)度與監(jiān)控這幾大模塊。接下來是時候考慮如何更好的對外提供數(shù)據(jù)了。第九章:我的數(shù)據(jù)要對外

    通常對外(業(yè)務(wù))提供數(shù)據(jù)訪問,大體上包含以下方面:

    離線:比如,每天將前一天的數(shù)據(jù)提供到指定的數(shù)據(jù)源(DB、FILE、FTP)等;離線數(shù)據(jù)的提供可以采用Sqoop、DataX等離線數(shù)據(jù)交換工具。

    實時:比如,在線網(wǎng)站的推薦系統(tǒng),需要實時從數(shù)據(jù)平臺中獲取給用戶的推薦數(shù)據(jù),這種要求延時非常低(50毫秒以內(nèi))。

    根據(jù)延時要求和實時數(shù)據(jù)的查詢需要,可能的方案有:HBase、Redis、MongoDB、ElasticSearch等。

    OLAP分析:OLAP除了要求底層的數(shù)據(jù)模型比較規(guī)范,另外,對查詢的響應(yīng)速度要求也越來越高,可能的方案有:Impala、Presto、SparkSQL、Kylin。如果你的數(shù)據(jù)模型比較規(guī)模,那么Kylin是最好的選擇。

    即席查詢:即席查詢的數(shù)據(jù)比較隨意,一般很難建立通用的數(shù)據(jù)模型,因此可能的方案有:Impala、Presto、SparkSQL。

    這么多比較成熟的框架和方案,需要結(jié)合自己的業(yè)務(wù)需求及數(shù)據(jù)平臺技術(shù)架構(gòu),選擇合適的。原則只有一個:越簡單越穩(wěn)定的,就是最好的。

    如果你已經(jīng)掌握了如何很好的對外(業(yè)務(wù))提供數(shù)據(jù),那么你的“大數(shù)據(jù)平臺”應(yīng)該是這樣的:

    第十章:牛逼高大上的機器學(xué)習(xí)

    關(guān)于這塊,我這個門外漢也只能是簡單介紹一下了。數(shù)學(xué)專業(yè)畢業(yè)的我非常慚愧,很后悔當時沒有好好學(xué)數(shù)學(xué)。

    在我們的業(yè)務(wù)中,遇到的能用機器學(xué)習(xí)解決的問題大概這么三類:

    分類問題:包括二分類和多分類,二分類就是解決了預(yù)測的問題,就像預(yù)測一封郵件是否垃圾郵件;多分類解決的是文本的分類;

    聚類問題:從用戶搜索過的關(guān)鍵詞,對用戶進行大概的歸類。

    推薦問題:根據(jù)用戶的歷史瀏覽和點擊行為進行相關(guān)推薦。

    大多數(shù)行業(yè),使用機器學(xué)習(xí)解決的,也就是這幾類問題。

    入門學(xué)習(xí)線路:

    數(shù)學(xué)基礎(chǔ);

    機器學(xué)習(xí)實戰(zhàn)(Machine Learning in Action),懂Python最好;

    SparkMlLib提供了一些封裝好的算法,以及特征處理、特征選擇的方法。

    機器學(xué)習(xí)確實牛逼高大上,也是我學(xué)習(xí)的目標。

    那么,可以把機器學(xué)習(xí)部分也加進你的“大數(shù)據(jù)平臺”了。

    End.

    的確,一個初學(xué)者按照作者的建議一步步學(xué)下去,如果能夠答出文章中提出的大部分問題,感覺已經(jīng)算是入門了。大家一起學(xué)習(xí),一起在這個DT時代發(fā)揮我們的光和熱。

    總結(jié)

    以上是生活随笔為你收集整理的大数据开发初学者学习路线的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。