前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到教程。
如果你已經按照《寫給大數據開發初學者的話2》中第三章和第四章的流程認真完整的走了一遍,那么你應該已經具備以下技能和知識點:
- 知道如何把已有的數據采集到HDFS上,包括離線采集和實時采集;
- 你已經知道sqoop(或者還有DataX)是HDFS和其他數據源之間的數據交換工具;
- 你已經知道flume可以用作實時的日志采集;
從前面的學習,對于大數據平臺,你已經掌握的不少的知識和技能,搭建Hadoop集群,
把數據采集到Hadoop上,使用Hive和MapReduce來分析數據,把分析結果同步到其他數據源。
接下來的問題來了,Hive使用的越來越多,你會發現很多不爽的地方,特別是速度慢,
大多情況下,明明我的數據量很小,它都要申請資源,啟動MapReduce來執行。
第五章:快一點吧,我的SQL
其實大家都已經發現Hive后臺使用MapReduce作為執行引擎,實在是有點慢。
因此SQL On Hadoop的框架越來越多,按我的了解,最常用的按照流行度依次為SparkSQL、Impala和Presto.
這三種框架基于半內存或者全內存,提供了SQL接口來快速查詢分析Hadoop上的數據。關于三者的比較,請參考1.1.
我們目前使用的是SparkSQL,至于為什么用SparkSQL,原因大概有以下吧:
- 使用Spark還做了其他事情,不想引入過多的框架;
- Impala對內存的需求太大,沒有過多資源部署;
5.1 關于Spark和SparkSQL
什么是Spark,什么是SparkSQL。
Spark有的核心概念及名詞解釋。
SparkSQL和Spark是什么關系,SparkSQL和Hive是什么關系。
SparkSQL為什么比Hive跑的快。
5.2 如何部署和運行SparkSQL
Spark有哪些部署模式?
如何在Yarn上運行SparkSQL?
使用SparkSQL查詢Hive中的表。
PS: Spark不是一門短時間內就能掌握的技術,因此建議在了解了Spark之后,可以先從SparkSQL入手,循序漸進。
關于Spark和SparkSQL,可參考?http://lxw1234.com/archives/category/spark
第六章:一夫多妻制
請不要被這個名字所誘惑。其實我想說的是數據的一次采集、多次消費。
在實際業務場景下,特別是對于一些監控日志,想即時的從日志中了解一些指標(關于實時計算,后面章節會有介紹),這時候,從HDFS上分析就太慢了,盡管是通過Flume采集的,但Flume也不能間隔很短就往HDFS上滾動文件,這樣會導致小文件特別多。
為了滿足數據的一次采集、多次消費的需求,這里要說的便是Kafka。
6.1 關于Kafka
什么是Kafka?
Kafka的核心概念及名詞解釋。
6.2 如何部署和使用Kafka
使用單機部署Kafka,并成功運行自帶的生產者和消費者例子。
使用Java程序自己編寫并運行生產者和消費者程序。
Flume和Kafka的集成,使用Flume監控日志,并將日志數據實時發送至Kafka。
關于Kafka,可以參考?http://lxw1234.com/archives/category/kafka
這時,使用Flume采集的數據,不是直接到HDFS上,而是先到Kafka,Kafka中的數據可以由多個消費者同時消費,其中一個消費者,就是將數據同步到HDFS。
?
寫給大數據開發初學者的話1
?
寫給大數據開發初學者的話2
?
第三章:把別處的數據搞到Hadoop上
第四章:把Hadoop上的數據搞到別處去
寫給大數據開發初學者的話3
第五章:快一點吧,我的SQL
第六章:一夫多妻制
寫給大數據開發初學者的話4
第七章:越來越多的分析任務
第八章:我的數據要實時
寫給大數據開發初學者的話5
第九章:我的數據要對外
第十章:牛逼高大上的機器學習
?
?
?