英国留学读本学费明细:2.1 一个气象数据集 - 51CTO.COM

来源:百度文库 编辑:九乡新闻网 时间:2024/04/29 18:28:21

2.1 一个气象数据集

http://book.51cto.com  2010-04-23 15:11  周傲英/曾大聃译  清华大学出版社  我要评论(0)
  • 摘要:《Hadoop权威指南(中文版)》第2章MapReduce简介,本章介绍MapReduce。本节为大家介绍一个气象数据集。
  • 标签:Hadoop  Hadoop权威指南(中文版)

第2章 MapReduce简介

MapReduce是一种用于数据处理的编程模型。该模型非常简单。同一个程序Hadoop可以运行用各种语言编写的MapReduce程序。在本章中,我们将看到用Java,Ruby,Python和C++这些不同语言编写的不同版本。最重要的是,MapReduce程序本质上是并行的,因此可以将大规模的数据分析交给任何一个拥有足够多机器的运营商。MapReduce的优势在于处理大型数据集,所以下面首先来看一个例子。

2.1  一个气象数据集

在我们这个例子里,要编写一个挖掘气象数据的程序。分布在全球各地的气象传感器每隔一小时便收集当地的气象数据,从而积累了大量的日志数据。它们是适合用MapReduce进行分析的最佳候选,因为它们是半结构化且面向记录的数据。

数据的格式

我们将使用National Climatic Data Center(国家气候数据中心,NCDC,网址为http://www.ncdc.noaa.gov/)提供的数据。数据是以面向行的ASCII格式存储的,每一行便是一个记录。该格式支持许多气象元素,其中许多数据是可选的或长度可变的。为简单起见,我们将重点讨论基本元素(如气温),这些数据是始终都有且有固定宽度的。

例2-1显示了一个简单的示例行,其中一些重要字段加粗显示。该行已被分成多行以显示出每个字段,在实际文件中,字段被整合成一行且没有任何分隔符。

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

 

  1. 0057  
  2. 332130      # USAF weather station identifier  
  3. 99999       # WBAN weather station identifier  
  4. 19500101    # observation date  
  5. 0300        # observation time  
  6. 4  
  7. +51317      # latitude (degrees × 1000)  
  8. +028783     # longitude (degrees × 1000)  
  9. FM-12  
  10. +0171       # elevation (meters)  
  11. 99999  
  12. V020  
  13. 320         # wind direction (degrees)  
  14. 1           # quality code  
  15. N  
  16. 0072  
  17. 1  
  18. 00450       # sky ceiling height (meters)  
  19. 1           # quality code  
  20. C  
  21. N  
  22. 010000      # visibility distance (meters)  
  23. 1           # quality code  
  24. N  
  25. 9  
  26. -0128       # air temperature (degrees Celsius × 10)  
  27. 1           # quality code  
  28. -0139       # dew point temperature (degrees Celsius × 10)  
  29. 1           # quality code  
  30. 10268       # atmospheric pressure (hectopascals × 10)  
  31. 1           # quality code 

数据文件按照日期和气象站进行组织。从1901年到2001 年,每一年都有一个目录,每一个目录都包含一个打包文件,文件中的每一个气象站都带有当年的数据。例如,1990年的前面的数据项如下:

  1. % ls raw/1990 | head  
  2. 010010-99999-1990.gz  
  3. 010014-99999-1990.gz  
  4. 010015-99999-1990.gz  
  5. 010016-99999-1990.gz  
  6. 010017-99999-1990.gz  
  7. 010030-99999-1990.gz  
  8. 010040-99999-1990.gz  
  9. 010080-99999-1990.gz  
  10. 010100-99999-1990.gz  
  11. 010150-99999-1990.gz 
因为实际生活中有成千上万个气象台,所以整个数据集由大量较小的文件组成。通常情况下,我们更容易、更有效地处理数量少的大型文件,因此,数据会被预先处理而使每年记录的读数连接到一个单独的文件中。(具体做法请参见附录C)