基础梳理
1.Mapreduce 分布式计算系统
一个分布式运算程序的编程框架也是hadoop的数据分析和应用的核心框架,将用户的业务逻辑代码和自带的默认组件整合一个完整的分布式用程序,并发运行在一个hadoop集群上
2.为什么需要MapReduce
1.海量数据在单机上受硬件资源限制
2.单机程序扩展到集群来分布式运行,加大程序复杂开发难度大
3.使用MR框架,研发大部分工作集中在业务逻辑开发,复杂的计算交给框架处理
3.MapReduce运行目录及实例
在MapReduce组件里,官方提供一些样例程序其中就有WordCount和Pi程序.他们的jar包在hadoop目录下hadoop-mapreduce-examples-2.8.1.jar,忘记目录可以find -name *example*
[hadoop@hadoop001 hadoop-2.8.1]$ pwd
/opt/software/hadoop-2.8.1
[hadoop@hadoop001 hadoop-2.8.1]$ find . -name *examples*
./share/hadoop/mapreduce/hadoop-mapreduce-examples-2.8.1.jar
./share/hadoop/mapreduce/sources/hadoop-mapreduce-examples-2.8.1-sources.jar
./share/hadoop/mapreduce/sources/hadoop-mapreduce-examples-2.8.1-test-sources.jar
4.hadoop命令跑wordcount例子程序(词频统计)
#创建测试文本上传hdfs
[hadoop@hadoop001 hadoop-2.8.1]$ vim 1.txt
a1 a2
a2 f1 a2
[hadoop@hadoop001 hadoop-2.8.1]$ hdfs dfs -put 1.txt /input
[hadoop@hadoop001 hadoop-2.8.1]$ hdfs dfs -ls /input
Found 1 items
-rw-r--r-- 1 hadoop supergroup 52 2018-05-28 16:55 /input/1.txt
#输出目录存在否者会提示错误
[hadoop@hadoop001 mapreduce]$ hadoop jar hadoop-mapreduce-examples-2.8.1.jar wordcount /input/ /output1
#查看统计结果
[hadoop@hadoop001 mapreduce]$ hdfs dfs -cat /output1/part-r-00000
a1 1
a2 3
f1 1
WordCount例子可以体现出MapReduce运用原理
![](//img.blog.itpub.net/blog/attachment/201805/28/31441024_1527522365S76H.png?x-oss-process=style/bb)
Map Task 映射:
空格分割|每个线程中以单词为统计,以1为词频的values (key/values)
a1 1
a2 1
a2 1
a2 1
f1 1
每个map的输出都需要shuffle(洗牌)操作,将相同的Key放在一个桶里
交给reduce处理
Reduce Task 规约 合并计算:
a1 1
a2 3
f1 1
5.MapReduce运行机制
输入分片:一个文件如果有5个块 那个默认就会有5个Map Task任务
如果在map计算前进行分片调整,将小文件进行合并,对于木桶效应
MapReduce可以实现优化计算
参考 http://blog.itpub.net/30089851/viewspace-2127850/
1.Mapreduce 分布式计算系统
一个分布式运算程序的编程框架也是hadoop的数据分析和应用的核心框架,将用户的业务逻辑代码和自带的默认组件整合一个完整的分布式用程序,并发运行在一个hadoop集群上
2.为什么需要MapReduce
1.海量数据在单机上受硬件资源限制
2.单机程序扩展到集群来分布式运行,加大程序复杂开发难度大
3.使用MR框架,研发大部分工作集中在业务逻辑开发,复杂的计算交给框架处理
3.MapReduce运行目录及实例
在MapReduce组件里,官方提供一些样例程序其中就有WordCount和Pi程序.他们的jar包在hadoop目录下hadoop-mapreduce-examples-2.8.1.jar,忘记目录可以find -name *example*
[hadoop@hadoop001 hadoop-2.8.1]$ pwd
/opt/software/hadoop-2.8.1
[hadoop@hadoop001 hadoop-2.8.1]$ find . -name *examples*
./share/hadoop/mapreduce/hadoop-mapreduce-examples-2.8.1.jar
./share/hadoop/mapreduce/sources/hadoop-mapreduce-examples-2.8.1-sources.jar
./share/hadoop/mapreduce/sources/hadoop-mapreduce-examples-2.8.1-test-sources.jar
4.hadoop命令跑wordcount例子程序(词频统计)
#创建测试文本上传hdfs
[hadoop@hadoop001 hadoop-2.8.1]$ vim 1.txt
a1 a2
a2 f1 a2
[hadoop@hadoop001 hadoop-2.8.1]$ hdfs dfs -put 1.txt /input
[hadoop@hadoop001 hadoop-2.8.1]$ hdfs dfs -ls /input
Found 1 items
-rw-r--r-- 1 hadoop supergroup 52 2018-05-28 16:55 /input/1.txt
#输出目录存在否者会提示错误
[hadoop@hadoop001 mapreduce]$ hadoop jar hadoop-mapreduce-examples-2.8.1.jar wordcount /input/ /output1
#查看统计结果
[hadoop@hadoop001 mapreduce]$ hdfs dfs -cat /output1/part-r-00000
a1 1
a2 3
f1 1
WordCount例子可以体现出MapReduce运用原理
![](http://img.blog.itpub.net/blog/attachment/201805/28/31441024_1527522365S76H.png?x-oss-process=style/bb)
Map Task 映射:
空格分割|每个线程中以单词为统计,以1为词频的values (key/values)
a1 1
a2 1
a2 1
a2 1
f1 1
每个map的输出都需要shuffle(洗牌)操作,将相同的Key放在一个桶里
交给reduce处理
Reduce Task 规约 合并计算:
a1 1
a2 3
f1 1
5.MapReduce运行机制
输入分片:一个文件如果有5个块 那个默认就会有5个Map Task任务
如果在map计算前进行分片调整,将小文件进行合并,对于木桶效应
MapReduce可以实现优化计算
参考 http://blog.itpub.net/30089851/viewspace-2127850/
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/31441024/viewspace-2155251/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/31441024/viewspace-2155251/