hadoop组件及其作用
1.hadoop有三個主要的核心組件:HDFS(分布式文件存儲)、MAPREDUCE(分布式的計算)、YARN(資源調(diào)度),現(xiàn)在云計算包括大數(shù)據(jù)和虛擬化進(jìn)行支撐。
在HADOOP(hdfs、MAPREDUCE、yarn)大數(shù)據(jù)處理技術(shù)框架,擅長離線數(shù)據(jù)分析.
? Zookeeper?分布式協(xié)調(diào)服務(wù)基礎(chǔ)組件,Hbase ?分布式海量數(shù)據(jù)庫,離線分析和在線業(yè)務(wù)處理。
Hive sql 數(shù)據(jù)倉庫工具,使用方便,功能豐富,基于MR延遲大,可以方便對數(shù)據(jù)的分析,并且數(shù)據(jù)的處理可以自定義方法進(jìn)行操作,簡單方便?! ?/span>
Sqoop數(shù)據(jù)導(dǎo)入導(dǎo)出工具,將數(shù)據(jù)從數(shù)據(jù)導(dǎo)入Hive,將Hive導(dǎo)入數(shù)據(jù)庫等操作。
Flume數(shù)據(jù)采集框架,可以從多種源讀取數(shù)據(jù)。
Azkaban對操作進(jìn)行管理,比如定時腳本執(zhí)行,有圖形化界面,上傳job簡單,只需要將腳本打成bao,可直接上傳。
2.hadoop的可以做離散日志分析,一般流程是:
?
將web中的數(shù)據(jù)取過來【通過flume】,然后通過預(yù)處理【mapreduce,一般只是使用map就可以了】,就是將數(shù)據(jù)中沒有用處的數(shù)據(jù)去除掉,將數(shù)據(jù)轉(zhuǎn)換【比如說時間的格式,Agent的組合】,并將數(shù)據(jù)進(jìn)行處理之后以固定格式輸出,由Hive處理,Hive是作用是將數(shù)據(jù)轉(zhuǎn)換出一個表,RTL就是寫SQL的一個過程,將數(shù)據(jù)進(jìn)行分析,然后將數(shù)據(jù)報表統(tǒng)計,這個時候使用的是pig數(shù)據(jù)分析【hive一般作為庫,pig做分析,我沒有使用pig,因為感覺還沒有hive的HQL處理方便】,最后將含金量最大的數(shù)據(jù)放入到mysql中,然后將mysql中的數(shù)據(jù)變?yōu)榭梢晥D化的工具。
?
推薦的使用:當(dāng)我們?yōu)g覽一各網(wǎng)頁的時候,將數(shù)據(jù)的值值傳遞給后臺保存到log中,后臺將數(shù)據(jù)收集起來,hadoop中的fiume可以將數(shù)據(jù)拿到放入到HDFS中,原始的數(shù)據(jù)進(jìn)行預(yù)處理,然后使用HIVE將數(shù)據(jù)變?yōu)楸?#xff0c;進(jìn)行數(shù)據(jù)的分析,將有價值的數(shù)據(jù)放入到mysql,作為推薦使用,這個一般是商城,數(shù)據(jù)的來源也是可以通過多種方式的,比如說隱形圖片、js、日志等都可以作為采集數(shù)據(jù)的來源。
?3.hadoop中的HDFS有兩個重要的角色:NameNode、datanode,Yarn有兩個主要的主角:ResourceManager和nodeManager.
4.分布式:使用多個節(jié)點(diǎn)協(xié)同完成一項或者多項業(yè)務(wù)功能的系統(tǒng)叫做分布式系統(tǒng),分布式一般使用多個節(jié)點(diǎn)組成,包括主節(jié)點(diǎn)和從節(jié)點(diǎn),進(jìn)行分析
5.mapreduce:是使用較少的代碼,完成對海量數(shù)據(jù)的處理,比如wordCount,統(tǒng)計單詞的個數(shù)。
實現(xiàn)思想:將單詞一個一個的遍歷,然后將單詞加1處理,但是這是集群,那么就每個節(jié)點(diǎn)計算自己節(jié)點(diǎn)的數(shù)據(jù),然后最后交給一個統(tǒng)計的程序完成就可以了,最后將單詞和結(jié)果輸出。
代碼實現(xiàn):
map階段:
從HDFS的數(shù)據(jù)文件中逐行讀取數(shù)據(jù)
將每一行數(shù)據(jù)切分出單詞
為每一個單詞構(gòu)造出鍵值對(單詞,1)[這里的1不是java類型的]
將鍵值對發(fā)送給reduce
public class WordCountMapper extends Mapper<LongWritable, Text, Text, IntWritable>{//map方法的生命周期: 框架每傳一行數(shù)據(jù)就被調(diào)用一次//key : 偏移量//value: 這一行的內(nèi)容 @Overrideprotected void map(LongWritable key, Text value, Context context) throws Exception {//拿到一行數(shù)據(jù)轉(zhuǎn)換為stringString line = value.toString();//將這一行切分出各個單詞String[] words = line.split(" ");//遍歷數(shù)組,輸出<單詞,1>for(String word:words){context.write(new Text(word), new IntWritable(1));}} }reduce階段:
接收到map階段的單詞的key-value鍵值對。
將相同的單詞匯聚為一組。
對每一組,遍歷組中的所有的值,累加求和,并得到最后的結(jié)果
將值保存到HDFS中。
@Overrideprotected void reduce(Text key, Iterable<IntWritable> values, Context context) throws IOException, InterruptedException {//定義一個計數(shù)器int count = 0;for(IntWritable value:values){count += value.get();}context.write(key, new IntWritable(count));} }map和reduce就實現(xiàn)完成了。
6.配置ssh免登陸
#生成ssh免登陸密鑰
#進(jìn)入到我的home目錄
cd ~/.ssh
ssh-keygen -t rsa
執(zhí)行完這個命令后,會生成兩個文件id_rsa(私鑰)、id_rsa.pub(公鑰)
將公鑰拷貝到要免密登陸的目標(biāo)機(jī)器上
ssh-copy-id hostname
7. 上傳 hadoop fs -put 本地目錄 /遠(yuǎn)程目錄
查看 hadoop fs -cat 本地目錄 /遠(yuǎn)程目錄
大于128M的數(shù)據(jù),會進(jìn)行切片處理,我們可以將片寫入一個文件之后,數(shù)據(jù)就會比比變?yōu)樯蟼髦暗奈募?br /> 創(chuàng)建多級目錄使用的是-p
轉(zhuǎn)載于:https://www.cnblogs.com/kw28188151/p/8666957.html
總結(jié)
以上是生活随笔為你收集整理的hadoop组件及其作用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ISD9160学习笔记08_结项总结
- 下一篇: AUTOCAD——超级填充