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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

hadoop组件及其作用

發(fā)布時間:2023/12/14 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 hadoop组件及其作用 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1.hadoop有三個主要的核心組件:HDFS(分布式文件存儲)、MAPREDUCE(分布式的計算)、YARN(資源調(diào)度),現(xiàn)在云計算包括大數(shù)據(jù)和虛擬化進(jìn)行支撐。

  在HADOOPhdfsMAPREDUCE、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)容,希望文章能夠幫你解決所遇到的問題。

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