About MapReduce

简介: 可以不看

MapReduce:一种可用于数据处理的编程模型。Hadoop可以运行各种语言版本的MapReduce程序。接下来可能看到Java、Ruby、Python和C++语言版本的同一个程序。MapReduce程序本质上是并行运行的,因此可以将大规模的数据分析任务分发给任何一个拥有足够多机器的数据中心。MapReduce 的优势在于处理大规模的数据集。
书中以气象数据集为例,此不作改变
取例气象数据中:每一行是一条记录。
每年的数据再拼接成一个单独的文件。
使用Unix工具分析数据:下面小程序提取某一个值并进行比较取最大值

awk:非常强大的文本操纵工具,sed,awk,grep 这个三个命令 都是操作文本文件的
unix系统有几个非常命令的特点:
1. 对于内核而言,unix文件都是字节序列。io设备也是文件。
2. 至于文件的含义交由应用程序来解释。其中文本文件非常重要,因为unix提供 很多了实用程序(utility),这些程序功能相对独立,但可以通过管道来实现进程间通信(IPC),这样松散的耦合可以完成复杂的操作。那么进程间的通信的数据格式是怎样的呢? 其实对于实用程序而言,这个数据格式就是简单的文本文件。此外,还有IO重定向,也是一个不错的创意。至于文本文件中的内容采用什么格式呢?这个很具体的命令有关,那么操作文本就变得非常重要。grep,sed和awk就是三个操纵文本文件的命令
grep搜索
sed 修改和编辑文本文件中某些行
awk 是访问文本文件,操纵文本文件中某些数据
明白了吗?

摘自:https://zhidao.baidu.com/question/301782640.html?fr=iks&word=awk&ie=gbk


#! /usr/bin/env bash
for year in all/*
do
	echo -ne `basename $year .gz`"\t"
	gunzip -c $year | \
		awk`{temp = substr($0, 88, $) + 0;
			q = substr($0, 93, 1);
			if(temp != 9999 && q - /[01459]/&& temp > max) max = temp}
		End{print max}'
done

这个脚本循环遍历按年压缩的数据文件,首先是显示年份,然后使用awk处理每一个文件。awk从数据中提取两个字段气温和质量代码。气温值加0后转换为整数。接着测试气温值是否有效(用9999替代NCDC数据集中的缺失的值),通过质量代码来检测读取的数据值是否有疑问或错误。如果数据读取正确,那么该值将于目前读取到的最大气温值进行比较,如果该值比原先的最大值大,就替换目前的最大值。处理完问价那种所有的行后,在执行END块中的代码并在屏幕上输出最大气温值。


使用Hadoop来分析数据

map和recude

MapReduce任务过程分为两个处理阶段:map阶段和reduce阶段。每个阶段都以键值对作为输入和输出。其类型由程序员来选择。程序员还需要写两个函数:map 函数和reduce函数。

map阶段的输入是原始数据。选择文本格式作为输入格式,将数据集的每一行作为文本输入。键是某一行起始位置相对于文件起始位置的偏移量,不过我们不需要这个信息,所以将其忽略。




2.3.2






目录
相关文章
|
存储 分布式计算 资源调度
MapReduce(一·)
MapReduce(一·)
150 0
MapReduce(一·)
|
分布式计算 并行计算 大数据
初识MapReduce
初识MapReduce
113 0
|
分布式计算
MapReduce
"Map(映射)"和"Reduce(归约)" MapReduce工作流程
769 0
|
存储 分布式计算 资源调度
|
缓存 分布式计算 NoSQL
MapReduce(二)
MapReduce(二)
128 0
MapReduce(二)
|
存储 缓存 分布式计算
快速理解MapReduce
1 什么是MapReduce?   Map本意可以理解为地图,映射(面向对象语言都有Map集合),这里我们可以理解为从现实世界获得或产生映射。Reduce本意是减少的意思,这里我们可以理解为归并前面Map产生的映射。 2 MapReduce的编程模型   按照google的MapReduce论文所说的,MapReduce的编程模型的原理是:利用一个输入key/value对集合
1040 0
|
分布式计算 数据处理
38 MAPREDUCE中的其他应用
38 MAPREDUCE中的其他应用
83 0
|
分布式计算
37 MAPREDUCE中的DistributedCache应用
37 MAPREDUCE中的DistributedCache应用
54 0
|
分布式计算 监控 Java
MapReduce(一)
分布式并行编程框架 特点:     MapReduce将复杂的、运行于大规模集群上的并行计算过程高度地抽象到了两个函数:Map和Reduce•编程容易,不需要掌握分布式并行编程细节,也可以很容易把自己的程序运行在分布式系统上,完成海量数据的计算;     •MapReduce采用“分...
1223 0
|
存储 分布式计算 资源调度

热门文章

最新文章