写给大数据开发初学者的话2
見 :?http://lxw1234.com/archives/2016/11/782.htm
如果你已經(jīng)按照《寫給大數(shù)據(jù)開發(fā)初學(xué)者的話》中第一章和第二章的流程認(rèn)真完整的走了一遍,那么你應(yīng)該已經(jīng)具備以下技能和知識點:
從上面的學(xué)習(xí),你已經(jīng)了解到,HDFS是Hadoop提供的分布式存儲框架,它可以用來存儲海量數(shù)據(jù),MapReduce是Hadoop提供的分布式計算框架,它可以用來統(tǒng)計和分析HDFS上的海量數(shù)據(jù),而Hive則是SQL On Hadoop,Hive提供了SQL接口,開發(fā)人員只需要編寫簡單易上手的SQL語句,Hive負(fù)責(zé)把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等之間進(jìn)行數(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。
如果你認(rèn)真完成了上面的學(xué)習(xí)和實踐,此時,你的”大數(shù)據(jù)平臺”應(yīng)該是這樣的:
?
如果覺得本博客對您有幫助,請?贊助作者?。
?
第四章:把Hadoop上的數(shù)據(jù)搞到別處去
前面介紹了如何把數(shù)據(jù)源的數(shù)據(jù)采集到Hadoop上,數(shù)據(jù)到Hadoop上之后,便可以使用Hive和MapReduce進(jìn)行分析了。那么接下來的問題是,分析完的結(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.
?
如果你認(rèn)真完成了上面的學(xué)習(xí)和實踐,此時,你的”大數(shù)據(jù)平臺”應(yīng)該是這樣的:
以下章節(jié)正在整理中,請持續(xù)關(guān)注?lxw的大數(shù)據(jù)田地
?
第五章:快一點吧,我的SQL
第六章:一夫多妻制
第七章:越來越多的分析任務(wù)
第八章:我的數(shù)據(jù)要實時
第九章:我的數(shù)據(jù)要對外
第十章:牛逼高大上的機器學(xué)習(xí)
?寫給大數(shù)據(jù)開發(fā)初學(xué)者的話1
寫給大數(shù)據(jù)開發(fā)初學(xué)者的話2
第三章:把別處的數(shù)據(jù)搞到Hadoop上
第四章:把Hadoop上的數(shù)據(jù)搞到別處去
寫給大數(shù)據(jù)開發(fā)初學(xué)者的話3
第五章:快一點吧,我的SQL
第六章:一夫多妻制
寫給大數(shù)據(jù)開發(fā)初學(xué)者的話4
第七章:越來越多的分析任務(wù)
第八章:我的數(shù)據(jù)要實時
寫給大數(shù)據(jù)開發(fā)初學(xué)者的話5
第九章:我的數(shù)據(jù)要對外
第十章:牛逼高大上的機器學(xué)習(xí)
總結(jié)
以上是生活随笔為你收集整理的写给大数据开发初学者的话2的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: maven 中 pom.xml 配置文件
- 下一篇: 【Cef编译】 CefSharp编译失败