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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

HDFS设计思路,HDFS使用,查看集群状态,HDFS,HDFS上传文件,HDFS下载文件,yarn web管理界面信息查看,运行一个mapreduce程序,mapreduce的demo...

發布時間:2024/4/14 编程问答 25 豆豆

26 集群使用初步

HDFS的設計思路

l?設計思想??

分而治之:將大文件、大批量文件,分布式存放在大量服務器上,以便于采取分而治之的方式對海量數據進行運算分析;

?

l?在大數據系統中作用:

為各類分布式運算框架(如:mapreduce,spark,tez,……)提供數據存儲服務

?

l?重點概念:文件切塊,副本存放,元數據


26.1 HDFS使用

1、查看集群狀態

命令:?? hdfs? dfsadmin?–report

可以看出,集群共有3個datanode可用

也可打開web控制臺查看HDFS集群信息,在瀏覽器打開http://hadoop:50070/

2、上傳文件到HDFS

查看HDFS中的目錄信息

命令:hadoop? fs? –ls? /

?

上傳文件

命令:hadoop fs -put ./findbugs-1.3.9 /

[toto@hadoop software]$ hadoop fs -put ./findbugs-1.3.9 /

put: `/findbugs-1.3.9/LICENSE-ASM.txt': File exists

put: `/findbugs-1.3.9/LICENSE-AppleJavaExtensions.txt': File exists

put: `/findbugs-1.3.9/LICENSE-bcel.txt': File exists

put: `/findbugs-1.3.9/LICENSE-commons-lang.txt': File exists

put: `/findbugs-1.3.9/LICENSE-docbook.txt': File exists

put: `/findbugs-1.3.9/LICENSE-dom4j.txt': File exists

put: `/findbugs-1.3.9/LICENSE-jFormatString.txt': File exists

查看上傳后的信息列表(hadoop fs –ls /hadoop fs -ls /findbugs-1.3.9

?

從HDFS下載文件

命令:hadoop fs -get /findbugs-1.3.9/LICENSE-ASM.txt

[toto@hadoop learn]$ cd /home/toto/learn

/home/toto/learn

[toto@hadoop learn]$ pwd

/home/toto/learn

[toto@hadoop learn]$ hadoop fs -get /findbugs-1.3.9/LICENSE-ASM.txt

[toto@hadoop learn]$ ls

LICENSE-ASM.txt

?

yarn的管理界面是:http://hadoop:8088/cluster

?

26.2模擬運行一個mapreduce程序

模擬運行一個mapreduce程序的時候,需要先啟動hdfs,啟動命令是:

[toto@hadoop1 hadoop-2.8.0]$cd /home/toto/software/hadoop-2.8.0

[toto@hadoop1 hadoop-2.8.0]$sbin/start-dfs.sh

在/home/toto/software/hadoop-2.8.0/share/hadoop/mapreduce下有一個mapreduce的運行例子:

[toto@hadoop mapreduce]$ cd /home/toto/software/hadoop-2.8.0/share/hadoop/mapreduce

[toto@hadoop mapreduce]$ pwd

/home/toto/software/hadoop-2.8.0/share/hadoop/mapreduce

[toto@hadoop mapreduce]$ ll

總用量 5088

-rw-r--r--. 1 toto hadoop? 562900 3月? 17 13:31 hadoop-mapreduce-client-app-2.8.0.jar

-rw-r--r--. 1 toto hadoop? 782739 3月? 17 13:31 hadoop-mapreduce-client-common-2.8.0.jar

-rw-r--r--. 1 toto hadoop 1571179 3月? 17 13:31 hadoop-mapreduce-client-core-2.8.0.jar

-rw-r--r--. 1 toto hadoop? 195000 3月? 17 13:31 hadoop-mapreduce-client-hs-2.8.0.jar

-rw-r--r--. 1 toto hadoop?? 31533 3月? 17 13:31 hadoop-mapreduce-client-hs-plugins-2.8.0.jar

-rw-r--r--. 1 toto hadoop?? 66999 3月? 17 13:31 hadoop-mapreduce-client-jobclient-2.8.0.jar

-rw-r--r--. 1 toto hadoop 1587158 3月? 17 13:31 hadoop-mapreduce-client-jobclient-2.8.0-tests.jar

-rw-r--r--. 1 toto hadoop?? 75495 3月? 17 13:31 hadoop-mapreduce-client-shuffle-2.8.0.jar

-rw-r--r--. 1 toto hadoop? 301934 3月? 17 13:31 hadoop-mapreduce-examples-2.8.0.jar

drwxr-xr-x. 2 toto hadoop??? 4096 3月? 17 13:31 jdiff

drwxr-xr-x. 2 toto hadoop??? 4096 3月? 17 13:31 lib

drwxr-xr-x. 2 toto hadoop??? 4096 3月? 17 13:31 lib-examples

drwxr-xr-x. 2 toto hadoop??? 4096 3月? 17 13:31 sources

[toto@hadoop mapreduce]$

?

使用命令運行mapreduce命令:

[toto@hadoop mapreduce]$ hadoop jar hadoop-mapreduce-examples-2.8.0.jar pi 5 5

Number of Maps? = 5

Samples per Map = 5

Wrote input for Map #0

Wrote input for Map #1

Wrote input for Map #2

Wrote input for Map #3

Wrote input for Map #4

Starting Job

17/05/29 14:47:36 INFO client.RMProxy: Connecting to ResourceManager at hadoop/192.168.106.80:8032

17/05/29 14:47:37 INFO input.FileInputFormat: Total input files to process : 5

17/05/29 14:47:37 INFO mapreduce.JobSubmitter: number of splits:5

17/05/29 14:47:38 INFO mapreduce.JobSubmitter: Submitting tokens for job: job_1495998405307_0001

17/05/29 14:47:39 INFO impl.YarnClientImpl: Submitted application application_1495998405307_0001

17/05/29 14:47:39 INFO mapreduce.Job: The url to track the job: http://hadoop:8088/proxy/application_1495998405307_0001/

17/05/29 14:47:39 INFO mapreduce.Job: Running job: job_1495998405307_0001

17/05/29 14:48:00 INFO mapreduce.Job: Job job_1495998405307_0001 running in uber mode : false

17/05/29 14:48:00 INFO mapreduce.Job:? map 0% reduce 0%

進入hdfs的管理界面(http://hadoop:8088/cluster/apps),查看程序運行情況:

?



26.2 MAPREDUCE使用

mapreduce是hadoop中的分布式運算編程框架,只要按照其編程規范,只需要編寫少量的業務邏輯代碼即可實現一個強大的海量數據并發處理程序

?

26.2.1 Demo開發——wordcount

1、需求

從大量(比如T級別)文本文件中,統計出每一個單詞出現的總次數

?

2、mapreduce實現思路

Map階段:

a)????????從HDFS的源數據文件中逐行讀取數據

b)????????將每一行數據切分出單詞

c)????????為每一個單詞構造一個鍵值對(單詞,1)

d)????????將鍵值對發送給reduce

?

Reduce階段:

a)????????接收map階段輸出的單詞鍵值對

b)????????將相同單詞的鍵值對匯聚成一組

c)????????對每一組,遍歷組中的所有“值”,累加求和,即得到每一個單詞的總次數

d)????????將(單詞,總次數)輸出到HDFS的文件中

?

?

1、? 具體編碼實現

(1)定義一個mapper類

//首先要定義四個泛型的類型

//keyin:? LongWritable??? valuein: Text

//keyout: Text??????????? valueout:IntWritable

?

public class WordCountMapper extends Mapper<LongWritable, Text, Text, IntWritable>{

???????? //map方法的生命周期:? 框架每傳一行數據就被調用一次

???????? //key :? 這一行的起始點在文件中的偏移量

???????? //value: 這一行的內容

???????? @Override

???????? protected void map(LongWritable key, Text value, Context context) throws IOException, InterruptedException {

?????????????????? //拿到一行數據轉換為string

?????????????????? String line = value.toString();

?????????????????? //將這一行切分出各個單詞

?????????????????? String[] words = line.split(" ");

?????????????????? //遍歷數組,輸出<單詞,1>

?????????????????? for(String word:words){

?????????????????? ???????? context.write(new Text(word), new IntWritable(1));

?????????????????? }

???????? }

}

?

(2)定義一個reducer類

???????? //生命周期:框架每傳遞進來一個kv 組,reduce方法被調用一次

???????? @Override

???????? protected void reduce(Text key, Iterable<IntWritable> values, Context context) throws IOException, InterruptedException {

?????????????????? //定義一個計數器

?????????????????? int count = 0;

?????????????????? //遍歷這一組kv的所有v,累加到count中

?????????????????? for(IntWritable value:values){

??????????????????????????? count += value.get();

?????????????????? }

?????????????????? context.write(key, new IntWritable(count));

???????? }

}

?

(3)定義一個主類,用來描述job并提交job

public class WordCountRunner {

???????? //把業務邏輯相關的信息(哪個是mapper,哪個是reducer,要處理的數據在哪里,輸出的結果放哪里。。。。。。)描述成一個job對象

???????? //把這個描述好的job提交給集群去運行

???????? public static void main(String[] args) throws Exception {

?????????????????? Configuration conf = new Configuration();

?????????????????? Job wcjob = Job.getInstance(conf);

?????????????????? //指定我這個job所在的jar包

//?????????????? wcjob.setJar("/home/hadoop/wordcount.jar");

?????????????????? wcjob.setJarByClass(WordCountRunner.class);

??????????????????

?????????????????? wcjob.setMapperClass(WordCountMapper.class);

?????????????????? wcjob.setReducerClass(WordCountReducer.class);

?????????????????? //設置我們的業務邏輯Mapper類的輸出key和value的數據類型

?????????????????? wcjob.setMapOutputKeyClass(Text.class);

?????????????????? wcjob.setMapOutputValueClass(IntWritable.class);

?????????????????? //設置我們的業務邏輯Reducer類的輸出key和value的數據類型

?????????????????? wcjob.setOutputKeyClass(Text.class);

?????????????????? wcjob.setOutputValueClass(IntWritable.class);

??????????????????

?????????????????? //指定要處理的數據所在的位置

?????????????????? FileInputFormat.setInputPaths(wcjob, "hdfs://hdp-server01:9000/wordcount/data/big.txt");

?????????????????? //指定處理完成之后的結果所保存的位置

?????????????????? FileOutputFormat.setOutputPath(wcjob, new Path("hdfs://hdp-server01:9000/wordcount/output/"));

??????????????????

?????????????????? //向yarn集群提交這個job

?????????????????? boolean res = wcjob.waitForCompletion(true);

?????????????????? System.exit(res?0:1);

???????? }

?

26.2.2 程序打包運行

1.????????將程序打包

2.????????準備輸入數據

vi? /home/hadoop/test.txt

Hello tom

Hello jim

Hello ketty

Hello world

Ketty tom

在hdfs上創建輸入數據文件夾:

hadoop?? fs?mkdir? -p? /wordcount/input

將words.txt上傳到hdfs上

???????? hadoop? fs? –put? /home/hadoop/words.txt? /wordcount/input

?

3.????????將程序jar包上傳到集群的任意一臺服務器上

?

4.????????使用命令啟動執行wordcount程序jar包

$ hadoop jar wordcount.jar cn.toto.bigdata.mrsimple.WordCountDriver/wordcount/input /wordcount/out

5.????????查看執行結果

$ hadoop fs –cat /wordcount/out/part-r-00000

?

總結

以上是生活随笔為你收集整理的HDFS设计思路,HDFS使用,查看集群状态,HDFS,HDFS上传文件,HDFS下载文件,yarn web管理界面信息查看,运行一个mapreduce程序,mapreduce的demo...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 黄色三级视频网站 | 成人综合在线观看 | 91久久精品无码一区二区 | 色桃视频| 日韩国产欧美在线视频 | 17c在线 | 欧美性xxxxx极品娇小 | 97精品熟女少妇一区二区三区 | 免费av不卡在线观看 | 性毛片| 欧美丰满一区二区免费视频 | www日韩在线观看 | 欧洲色区| 国产视频在线观看一区二区 | 国产亚洲无码精品 | 亚洲日本va中文字幕 | 女女同性女同一区二区三区九色 | 日韩制服诱惑 | 亚洲成a | 中日韩av在线 | 神马久久网站 | 东方伊甸园av在线 | 熟女俱乐部一区二区 | 国产一级在线免费观看 | 国产精品久久久久久妇女 | 女生鸡鸡软件 | www.中文字幕 | 日本不卡视频一区二区三区 | 国产精品丝袜黑色高跟鞋 | 欧美xx孕妇 | a级黄色片 | 国产成人综合在线视频 | 8x8x最新网址 | 少妇被黑人到高潮喷出白浆 | 日韩精品一区二区三区视频在线观看 | 日本免费看| 日韩精品一区二区三区网站 | 瑟瑟综合网 | www.日日干| 国产成人福利视频 | 国产青青青 | 国产精品人人做人人爽 | 香蕉久久久久久久av网站 | 国产亚洲欧美一区 | 天天综合精品 | 天堂综合在线 | 无码精品一区二区三区在线播放 | 中文字幕免费高清 | 国内精品99 | 色屁屁一区二区三区视频 | 天天射夜夜骑 | 久久免费视频6 | 波多野结衣乳巨码无在线观看 | 一级大片黄色 | 26uuu亚洲国产精品 | 日本中文字幕在线视频 | 夜夜精品视频 | 黄色动漫免费在线观看 | 日韩视频在线播放 | 久久一视频 | 成人精品在线看 | 黄色一级片免费播放 | 国产一级一级片 | 伊人久久久久噜噜噜亚洲熟女综合 | 亚洲免费视频观看 | 久久中文字幕在线观看 | 天天摸夜夜操 | 欧美日韩国产高清 | 一卡二卡三卡四卡五卡 | aaaaa级少妇高潮大片免费看 | 国产欧美久久久久久 | 色吧综合| 欧美精品色图 | 森泽佳奈av| 欧美日韩一区在线观看 | 亚洲麻豆一区二区三区 | 国产精品免费视频一区二区三区 | 一卡二卡在线 | 黄色成年视频 | 久久噜噜噜精品国产亚洲综合 | 亚洲国产aⅴ精品一区二区 日韩黄色在线视频 | 丰满岳乱妇一区二区三区 | 一本不卡| 潮喷失禁大喷水无码 | 亚洲AV无码成人精品区东京热 | 日韩在线观看中文字幕 | 91精品国产一区二区三区 | 日韩免费在线视频 | 欧美影院在线 | 国产成人tv | 中文字幕日韩人妻在线视频 | 黄色成人在线观看 | 亚欧av在线| 久久精品男人的天堂 | 欧美久久久久久久久 | 精品国产一区二区三区在线观看 | 免费av网站在线观看 | 1000部拍拍拍18勿入免费视频 | 超碰av在线 |