大數(shù)據(jù)開發(fā)初學者該怎么做租副?

經(jīng)常有初學者在問坐慰,自己想往大數(shù)據(jù)方向發(fā)展,該學哪些技術(shù)用僧,學習路線是什么樣的结胀,覺得大數(shù)據(jù)很火,就業(yè)很好责循,薪資很高糟港。如果自己很迷茫,為了這些原因想往大數(shù)據(jù)方向發(fā)展院仿,也可以秸抚,那么我就想問一下,你的專業(yè)是什么歹垫,對于計算機/軟件剥汤,你的興趣是什么?是計算機專業(yè)排惨,對操作系統(tǒng)吭敢、硬件、網(wǎng)絡暮芭、服務器感興趣鹿驼?是軟件專業(yè)欲低,對軟件開發(fā)、編程畜晰、寫代碼感興趣伸头?還是數(shù)學、統(tǒng)計學專業(yè)舷蟀,對數(shù)據(jù)和數(shù)字特別感興趣恤磷。。

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

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

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

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

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

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

現(xiàn)如今,正式為了應對大數(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)服務:Zookeeper

集群管理與監(jiān)控:Ambari凶硅、Ganglia、Nagios胁塞、Cloudera Manager

數(shù)據(jù)挖掘担钮、機器學習:Mahout格侯、Spark MLLib

數(shù)據(jù)同步:Sqoop

任務調(diào)度:Oozie

……

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

歡迎加入大數(shù)據(jù)交流群:658558542 一起吹水交流學習

第一章:初識Hadoop

1.1 學會百度與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)進來了。

歡迎加入大數(shù)據(jù)交流群:658558542 一起吹水交流學習

第二章:更高效的WordCount

2.1 學點SQL吧

你知道數(shù)據(jù)庫嗎漾根?你會寫SQL嗎泰涂?

如果不會,請學點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è)務系統(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任務敢茁。

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

2.6 Hive是怎么工作的

明明寫的是SQL,為什么Hadoop WEB界面中看到的是MapReduce任務彰檬?

2.7 學會Hive的基本命令

創(chuàng)建伸刃、刪除表;

加載數(shù)據(jù)到表逢倍;

下載Hive表的數(shù)據(jù)捧颅;

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

如果你已經(jīng)按照《寫給大數(shù)據(jù)開發(fā)初學者的話》中第一章和第二章的流程認真完整的走了一遍碉哑,那么你應該已經(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ù)下載到本地拱她;

從上面的學習二驰,你已經(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ù)交流群:658558542 一起吹水交流學習

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

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

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

3.1 HDFS PUT命令

這個在前面你應該已經(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比較復雜)乃戈。

了解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)絡協(xié)議、消息系統(tǒng)沈条、文件系統(tǒng)采集日志需忿,并傳輸?shù)紿DFS上。

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

下載和配置Flume汗洒。

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

PS:Flume的配置和使用較為復雜溢谤,如果你沒有足夠的興趣和耐心,可以先跳過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勉痴。

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

歡迎加入大數(shù)據(jù)交流群:658558542 一起吹水交流學習

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

前面介紹了如何把數(shù)據(jù)源的數(shù)據(jù)采集到Hadoop上蒸矛,數(shù)據(jù)到Hadoop上之后,便可以使用Hive和MapReduce進行分析了胸嘴。那么接下來的問題是雏掠,分析完的結(jié)果如何從Hadoop上同步到其他系統(tǒ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.

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

歡迎加入大數(shù)據(jù)交流群:658558542 一起吹水交流學習??

從前面的學習坏挠,對于大數(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

如果你認真完成了上面的學習和實踐钞艇,此時啄寡,你的”大數(shù)據(jù)平臺”應該是這樣的:

歡迎加入大數(shù)據(jù)交流群:658558542 一起吹水交流學習

第六章:一夫多妻制

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

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

為了滿足數(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磨镶。

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

歡迎加入大數(shù)據(jù)交流群:658558542 一起吹水交流學習

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

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

為什么Spark比MapReduce快暗膜。

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

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

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

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

第七章:越來越多的分析任務

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

7.1 Apache Oozie

1. Oozie是什么?有哪些功能耻讽?

2. Oozie可以調(diào)度哪些類型的任務(程序)察纯?

3. Oozie可以支持哪些任務觸發(fā)方式?

4. ?安裝配置Oozie。

7.2 其他開源的任務調(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ā)的任務調(diào)度與監(jiān)控系統(tǒng)香伴,具體請參考《大數(shù)據(jù)平臺任務調(diào)度與監(jiān)控系統(tǒng)》.

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

歡迎加入大數(shù)據(jù)交流群:658558542 一起吹水交流學習

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

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

8.1 Storm

1. 什么是Storm采记?有哪些可能的應用場景佣耐?

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

3. Storm的簡單安裝和部署兼砖。

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

8.2 Spark Streaming

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

2. Spark Streaming和Storm比較丸冕,各有什么優(yōu)缺點耽梅?

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

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

歡迎加入大數(shù)據(jù)交流群:658558542 一起吹水交流學習

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

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

通常對外(業(yè)務)提供數(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ī)范涡尘,另外,對查詢的響應速度要求也越來越高响迂,可能的方案有:Impala考抄、Presto、SparkSQL蔗彤、Kylin川梅。如果你的數(shù)據(jù)模型比較規(guī)模,那么Kylin是最好的選擇然遏。

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

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

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

歡迎加入大數(shù)據(jù)交流群:658558542 一起吹水交流學習

第十章:牛逼高大上的機器學習

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

在我們的業(yè)務中苦掘,遇到的能用機器學習解決的問題大概這么三類:

分類問題:包括二分類和多分類换帜,二分類就是解決了預測的問題,就像預測一封郵件是否垃圾郵件鹤啡;多分類解決的是文本的分類惯驼;

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

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

大多數(shù)行業(yè),使用機器學習解決的抖部,也就是這幾類問題说贝。

入門學習線路:

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

機器學習實戰(zhàn)(Machine Learning in Action)慎颗,懂Python最好乡恕;

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

機器學習確實牛逼高大上,也是我學習的目標讯屈。

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

歡迎加入大數(shù)據(jù)交流群:658558542 一起吹水交流學習

為了幫助大家讓學習變得輕松涮母、高效,給大家免費分享一大批資料躁愿,幫助大家在成為大數(shù)據(jù)工程師叛本,乃至架構(gòu)師的路上披荊斬棘。在這里給大家推薦一個大數(shù)據(jù)學習交流圈:658558542 歡迎大家進群交流討論彤钟,學習交流来候,共同進步。

當真正開始學習的時候難免不知道從哪入手逸雹,導致效率低下影響繼續(xù)學習的信心营搅。

但最重要的是不知道哪些技術(shù)需要重點掌握,學習時頻繁踩坑梆砸,最終浪費大量時間转质,所以有有效資源還是很有必要的。

最后祝福所有遇到瓶疾且不知道怎么辦的大數(shù)據(jù)程序員們帖世,祝福大家在往后的工作與面試中一切順利休蟹。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子赂弓,更是在濱河造成了極大的恐慌绑榴,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,110評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件盈魁,死亡現(xiàn)場離奇詭異翔怎,居然都是意外死亡,警方通過查閱死者的電腦和手機备埃,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,443評論 3 395
  • 文/潘曉璐 我一進店門姓惑,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人按脚,你說我怎么就攤上這事于毙。” “怎么了辅搬?”我有些...
    開封第一講書人閱讀 165,474評論 0 356
  • 文/不壞的土叔 我叫張陵唯沮,是天一觀的道長。 經(jīng)常有香客問我堪遂,道長介蛉,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,881評論 1 295
  • 正文 為了忘掉前任溶褪,我火速辦了婚禮币旧,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘猿妈。我一直安慰自己吹菱,他們只是感情好,可當我...
    茶點故事閱讀 67,902評論 6 392
  • 文/花漫 我一把揭開白布彭则。 她就那樣靜靜地躺著鳍刷,像睡著了一般。 火紅的嫁衣襯著肌膚如雪俯抖。 梳的紋絲不亂的頭發(fā)上输瓜,一...
    開封第一講書人閱讀 51,698評論 1 305
  • 那天,我揣著相機與錄音芬萍,去河邊找鬼尤揣。 笑死,一個胖子當著我的面吹牛担忧,可吹牛的內(nèi)容都是我干的芹缔。 我是一名探鬼主播,決...
    沈念sama閱讀 40,418評論 3 419
  • 文/蒼蘭香墨 我猛地睜開眼瓶盛,長吁一口氣:“原來是場噩夢啊……” “哼最欠!你這毒婦竟也來了偿曙?” 一聲冷哼從身側(cè)響起让网,我...
    開封第一講書人閱讀 39,332評論 0 276
  • 序言:老撾萬榮一對情侶失蹤查牌,失蹤者是張志新(化名)和其女友劉穎帝璧,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體拌阴,經(jīng)...
    沈念sama閱讀 45,796評論 1 316
  • 正文 獨居荒郊野嶺守林人離奇死亡绍绘,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,968評論 3 337
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了迟赃。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片陪拘。...
    茶點故事閱讀 40,110評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖纤壁,靈堂內(nèi)的尸體忽然破棺而出左刽,到底是詐尸還是另有隱情,我是刑警寧澤酌媒,帶...
    沈念sama閱讀 35,792評論 5 346
  • 正文 年R本政府宣布欠痴,位于F島的核電站,受9級特大地震影響秒咨,放射性物質(zhì)發(fā)生泄漏喇辽。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,455評論 3 331
  • 文/蒙蒙 一雨席、第九天 我趴在偏房一處隱蔽的房頂上張望菩咨。 院中可真熱鬧,春花似錦陡厘、人聲如沸旦委。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,003評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至摩钙,卻和暖如春罢低,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背胖笛。 一陣腳步聲響...
    開封第一講書人閱讀 33,130評論 1 272
  • 我被黑心中介騙來泰國打工网持, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人长踊。 一個月前我還...
    沈念sama閱讀 48,348評論 3 373
  • 正文 我出身青樓功舀,卻偏偏與公主長得像,于是被迫代替她去往敵國和親身弊。 傳聞我的和親對象是個殘疾皇子辟汰,可洞房花燭夜當晚...
    茶點故事閱讀 45,047評論 2 355

推薦閱讀更多精彩內(nèi)容