MapReduce-Hadoop权威指南连载

【图书连载】MapReduce是一种可用于数据处理的编程模型。该模型比较简单,但用于编写有用的程序并不简单。Hadoop可以运行由各种语言编写的MapReduce程序。本章中,我们将看到用Java、Ruby、Python 和C++语言编写的同一个程序。最重要的是,MapReduce程序本质上是并行运行的,因此可以将大规模的数据分析任务交给任何一个拥有足够多机器的运营商。MapReduce的优势在于处理大规模数据集,所以这里先来看一个数据集。

  一个气象数据集

  在我们的例子里,要编写一个挖掘气象数据的程序。分布在全球各地的很多气象传感器每隔一小时收集气象数据,进而获取了大量的日志数据。由于这些数据是半结构化数据且是按照记录方式存储的,因此非常适合使用MapReduce来处理。

  数据的格式

  我们将使用国家气候数据中心(National Climatic Data Center,简称NCDC,网址为http://www.ncdc.noaa.gov/)提供的数据。这些数据按行并以ASCII编码存储,其中每一行是一条记录。该存储格式能够支持众多气象要素,其中许多要素可以有选择性地列入收集范围或其数据所需的存储长度是可变的。为了简单起见,我们重点讨论一些基本要素(如气温等),这些要素始终都有且长度固定。

  例2-1显示了一行采样数据,其中重要字段已突出显示。该行数据已被分成很多行以突出显示每个字段,在实际文件中,这些字段被整合成一行且没有任何分隔符。

  例2-1. 国家气候数据中心数据记录的格式

  0057 332130 # USAF weather station identifier

  99999 # WBAN weather station identifier

  19500101 # observation date

  0300 # observation time

  4 +51317 # latitude (degrees x 1000)

  +028783 # longitude (degrees x 1000) F

  M-12

  +0171 # elevation (meters)

  99999

  V020

  320 # wind direction (degrees)

  1 # quality code

  N

  0072

  1

  00450 # sky ceiling height (meters)

  1 # quality code

  C

  N

  010000 # visibility distance (meters)

  1 # quality code

  N

  9 -0128 # air temperature (degrees Celsius x 10)

  1 # quality code -0139

  # dew point temperature (degrees Celsius x 10)

  1 # quality code 10268

  # atmospheric pressure (hectopascals x 10)

  1 # quality code

  数据文件按照日期和气象站进行组织。从1901 年到2001 年,每一年都有一个目录,每一个目录中包含各个气象站该年气象数据的打包文件及其说明文件。例如,1999年对应文件夹下面包含如下记录:

  % ls raw/1990 | head

  010010-99999-1990.gz

  010014-99999-1990.gz

  010015-99999-1990.gz

  010016-99999-1990.gz

  010017-99999-1990.gz

  010030-99999-1990.gz

  010040-99999-1990.gz

  010080-99999-1990.gz

  010100-99999-1990.gz

  010150-99999-1990.gz

  因为有成千上万个气象台,所以整个数据集由大量的小容量文件组成。通常情况下,处理少量的大型文件显得更容易且有效,因此,这些数据需要经过预处理,将每年的数据文件拼接成一个独立文件。具体做法请参见附录C。

1234567下一页

时间: 2024-10-25 07:27:38

MapReduce-Hadoop权威指南连载的相关文章

hadoop权威指南学习(一) - 天气预报MapReduce程序的开发和部署

看过Tom White写的Hadoop权威指南(大象书)的朋友一定得从第一个天气预报的Map Reduce程序所吸引, 殊不知,Tom White大牛虽然在书中写了程序和讲解了原理,但是他以为你们都会部署了,这里轻描淡写给 带过了,这样就给菜鸟们留了课题,其实在跑书中的程序的时候,如果没经验,还是会踩坑的. 这里笔者就把踩过的坑说一下,以防后来人浪费时间了. 1. 首先,你得下载书中的ncdc气象原始数据,这个可以从书中的官网下载. 作者比较做人家,只给了2年的历史数据,无妨,2年也可以运行.

hadoop权威指南——IBM与AWS关键看啥?

Hadoop:不是选配而是发展趋势 就大数据的核心而言,Hadoop是一个用于有效存储和处理大数据的开源架构.多年来,开源初创公司Cloudera和Hortonworks在Hadoop市场一直占有绝对地位,诸如Oracle.微软以及其他一些公司也想在这个市场占有一席之地,但更多是通过与专业的Hadoop初创公司建立伙伴关系间接地参与市场争夺. 大数据核心(图片来源google) 根据Forrester分析的最新报告,传统技术供应商会推出一系列强势的产品战略,即使所推出的Hadoop产品仍有许多有

《HBase权威指南》一1.5 HBase:Hadoop数据库

1.5 HBase:Hadoop数据库 看过BigTable的架构之后,我们可能会简单地认为HBase完全是Google的BigTable的开源实现.但是这个说法可能过于简单,因为两者之间还有些差异(大多是细微的)值得一提. 1.5.1 历史 HBase是Powerset㉑在2007年创建的,最初是Hadoop的一部分.之后,它逐步成为Apache软件基金会旗下的顶级项目,具备Apache软件许可证,版本为2.0. HBase项目的主页是http://hbase.apache.org/,通过这个

《HBase权威指南》一导读

前 言 HBase权威指南 你阅读本书的理由可能有很多.可能是因为听说了Hadoop,并了解到它能够在合理的时间范围内处理PB级的数据,在研读Hadoop的过程中发现了一个处理随机读写的系统,它叫做HBase.或者将其称为目前流行的一种新的数据存储架构,传统数据库解决大数据问题时成本更高,更适合的技术范围是NoSQL. 无论你是如何来到这里的,我都希望你能够了解并学习如何在企业或组织中使用HBase解决海量数据问题.你可能有关系型数据库的背景,但更希望去研究这个"列式存储"系统:也许你

《逆向工程权威指南》目录—导读

版权 逆向工程权威指南 • 著 [乌克兰] Dennis Yurichev 译 Archer 安天安全研究与应急处理中心 责任编辑 陈冀康 • 人民邮电出版社出版发行 北京市丰台区成寿寺路11号 邮编 100164 电子邮件 315@ptpress.com.cn 网址 http://www.ptpress.com.cn • 读者服务热线:(010)81055410 反盗版热线:(010)81055315 版权声明 逆向工程权威指南 Simplified Chinese translation c

《ELK Stack权威指南 》第2章 插件配置

本节书摘来自华章出版社<ELK Stack权威指南 >一书中的第1章,第2节,作者饶琛琳,更多章节内容可以访问"华章计算机"公众号查看. 插 件 配 置 插件是Logstash最大的特色.各种不同的插件源源不断地被创造出来,发布到社区中供大家使用.本章会按照插件的类别,对一般场景下的一些常用插件做详细的配置和用例介绍.本章介绍的插件包括:1)输入插件.基于shipper端场景,主要介绍STDIN.TCP.File等插件.2)编解码插件.编解码通常是会被遗忘的环节,但是运用好

《Netty 权威指南》—— 选择Netty的理由

声明:本文是<Netty 权威指南>的样章,感谢博文视点授权并发编程网站发布样章,禁止以任何形式转载此文. 在开始本节之前,我先讲一个亲身经历的故事:曾经有两个项目组同时用到了NIO编程技术,一个项目组选择自己开发NIO服务端,直接使用JDK原生的API,结果2个多月过去了,他们的NIO服务端始终无法稳定,问题频出.由于NIO通信是它们的核心组件之一,因此,项目的进度受到了严重的影响,领导对此非常恼火.另一个项目组直接使用Netty作为NIO服务端,业务的定制开发工作量非常小,测试表明,功能和

《ELK Stack权威指南(第2版)》一导读

Preface前 言 <ELK Stack权威指南>第1版面世之后的这一年多时间里,ELK Stack在Elastic.co公司以及社区的共同努力下飞速发展.国内外都出现了不少基于ELK Stack实现的日志分析产品和创业公司.ELK Stack已经成为DevOps技术栈中必不可缺少的一个部分,较大型的互联网公司甚至已经配备有专职的ELK Stack管理团队. 对于并不精通ELK Stack技术及其发展历史的人来说,过去复杂的版本对应是新手的第一道门槛.最近全新更新的ELK Stack各组件,

经典的《JavaScript 权威指南》中的“对象”不经典

javascript|对象 这些天在为Qomo项目写"JavaScript面向对象的支持"这组文章.也一直在期待网上购得的那本<JavaScript 权威指南>(第四版)快快到来. 在前公司,有这本书的第二或第三版,也一直将这本书视为经典.但那时并没有深入的去看它前几章的概念性叙述,而是把它当成一本手册来查.现在却刻意地关注了,因为Qomo的底层是以纯理论的OOP为基础的. 今天这本书终于寄到了,但是一读之下,大失所望.不知道作者对JavaScript语言的理解能力不够,还