我在看《Hadoop权威指南》时,里面提供了NCDC天气数据样本,提供的下载链接是:点击打开链接,但是里面只提供了1901和1902这两年的数据,这未免也太少了点!完全称不上“BIG DATA”,于是我现在提供一个方法获取1901年到2014年的天气数据样本。在网站:点击打开链接中提供了这些数据包,虽然每一个包都只有几十K,但是数据包太过于多了,原来是太少了,现在是太多了,都是个问题,不可能一个个手动去下载,其实编写几行shell语句就可以轻松解决这个问题!

准备工作:要是在Ubuntu或者是Debian下,应该系统已经安装了wget这个工具了,要是没有安装,可以用下面的命令进行安装:

  1. sudo apt-get install wget

要是在Mac OS X 下,系统是没有默认安装wget的,有两个方法来安装wget,其一是自己手动下载源代码包来自己编译安装,这样的最大问题就是它的依赖包有点多,要一个个编译,很麻烦。所以推荐第二个方法:先用下面的命令安装Homebrew:

  1. ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)"

安装完成后用下面的命令安装wget:

  1. brew install wget

完成后,在终端输入下列语句,当然也可以先把下列语句保存为一个shell程序文件,并赋予其执行权限,然后再运行。推荐就直接输入:

  1. #! bin/bash
  2. for i in {1901..2014}
  3. do
  4. cd /Users/Guo/Documents/NCDC
  5. wget --execute robots=off -r -np -nH --cut-dirs=3 -R index.html http://ftp3.ncdc.noaa.gov/pub/data/noaa/isd-lite/$i/
  6. cd isd-lite/$i
  7. mkdir -p /Users/Guo/Documents/NCDC/files/$i
  8. cp *.gz /Users/Guo/Documents/NCDC/files/$i
  9. cd /Users/Guo/Documents/NCDC
  10. rm -r isd-lite/
  11. done

简单地解释一下:对变量i从1901到2014递增,做后面的循环操作,“/Users/Guo/Documents/NCDC”以及“/Users/Guo/Documents/NCDC/files”是我自己建的文件夹,来用保存数据,所以呢,你要自己建立文件夹来保存数据,“$i”是对变量i当前值的引用、、、

我已经对不“友好”的部分做了优化,让每一年的数据包存入相对应的文件夹,以前我把所有文件包都放在一个文件夹内,才下几十年的数据一打开文件夹直接把我的Finder拖到假死,几分钟之后才醒来,我的是固态硬盘啊!现在有相应的年份文件夹,方便管理数据!

经过这几天的反复下载与删除,但还是没有下载完成,我发现在下载一个数据包特别多的时候,比如超过一W,bash会报一个Argument list too long的错误,这是因为当前年份文件夹下的数据包太多了,超过了bash的默认值。这导致下载完的数据包没有复制到files文件夹下的年份文件夹下,或者不能删除下载的数据包,要解决这个问题有其他的方法来绕过,但是我觉得太麻烦。我就想,干嘛要复制一次呢,我们直接保存原始下载的文件夹就行了嘛,并且是每个年份是分开存储的!并且我会让wget只保存*.gz文件!于是就有了下面的最新最完美版本!

  1. #! bin/bash
  2. for i in {1901..2014}
  3. do
  4. cd ~/noaa/
  5. wget --execute robots=off -r -np -nH --cut-dirs=4 -R index.html* http://ftp3.ncdc.noaa.gov/pub/data/noaa/isd-lite/$i/
  6. done

转自http://blog.csdn.net/lzslywl/article/details/26678731

hadoop ncdc数据下载方法的更多相关文章

  1. 腾讯QQ群数据下载方法(7000万个qq群资料全泄漏)

    仔细读完一定能找到自己需要的东西 据新华网报道,国内知名安全漏洞监测平台乌云20日公布报告称,腾讯QQ群关系数据被泄露,网上可以轻易就能找到数据下载链接,根据这些数据,通过QQ号可以查询到备注姓名.年 ...

  2. Landsat数据下载方法小结

    本文转载自:http://malagis.com/landsat-data-download.html 本文介绍下载Landsat数据的方法. Landsat(美国陆地卫星)是遥感应用中常用的卫星数据 ...

  3. Hadoop安装包下载方法

    Hadoop3.0版本的诞生,引入了很多新功能,为了验证Hadoop2.0与3.0版本的性能,需下载Hadoop的不同版本.故下文演示如何下载Hadoop安装包的方法. 1. 进入Apache Had ...

  4. NOAA数据下载方法

    NOAA OneStop https://data.noaa.gov/onestop/about NOAA 数据搜索平台,在一个地方同时搜索NOAA的 Geophysical, oceans, coa ...

  5. SMOS数据产品介绍与下载方法

    1. SMOS数据介绍 The Soil Moisture and Ocean Salinity (SMOS) 卫星是欧空局发射的一颗以探测地球土壤水含量以及海表盐度为目标的卫星,卫星所搭载的唯一载荷 ...

  6. MODIS系列之NDVI(MOD13Q1)一:数据下载(一)基于插件

    引言: 写MODIS数据处理这个系列文章的初衷,主要是为了分享本人处理MODIS数据方面的一些经验.鉴于网上对这方面系统性的总结还比较少,我搜集资料时也是走了许多的弯路,因此希望通过此文让初学者能够更 ...

  7. Hadoop 一: NCDC 数据准备

    Hadoop 本文介绍Hadoop- The Definitive Guide一书中的NCDC数据准备,为后面的学习构建大数据环境; 环境 3节点 Hadoop 2.7.3 集群; java vers ...

  8. Hadoop 1: NCDC 数据准备

    本文介绍Hadoop- The Definitive Guide一书中的NCDC数据准备,为后面的学习构建大数据环境; 环境 3节点 Hadoop 2.7.3 集群; java version &qu ...

  9. SMAP数据产品介绍与下载方法

    1 SMAP(Soil Moisture Active and Passive)数据介绍 SMAP baseline science data products在下面的表格中展示,这些数据产品可以从两 ...

随机推荐

  1. Python实践练习:电话号码和 E-mail 地址提取程序

    题目: 假设你有一个无聊的任务,要在一篇长的网页或文章中,找出所有电话号码和邮件地址.如果手动翻页,可能需要查找很长时间.如果有一个程序,可以在剪贴板的文本中查找电话号码和 E-mail 地址,那你就 ...

  2. jQuery之事件和动画

    1.加载DOM $(document).ready(function(){ }) 简写形式: $(function(){ }) 事件绑定: 合成事件 事件冒泡 移除事件 JQuery中的动画 show ...

  3. HALCON形状匹配(转)

    LIntExport Herror create_shape_model( const Hobject&  Template ,  //reduce_domain后的模板图像 Hlong  N ...

  4. MyBatis 学习记录4 MyBatis的一级缓存

    主题 分享记录一下MyBatis的一级缓存相关的学习. Demo public static void firstLevelCache() { init("mybatis-config.xm ...

  5. Build/Run Instructions for Codec Engine Examples

    General Information This page explains how to build the examples provided in the Codec Engine (CE) p ...

  6. C#中打开设计视图时报"未将对象引用设置到对象的实例"

    通常情况下,若是你将用户控件写好了放入窗体中,若是有不合理的代码,则会弹出错误提示框,不让你放.若是你之前只是随便加了一个用户控件,并且没有什么问题,但后来你又把控件改坏掉了,那么你打开就会报错(在窗 ...

  7. Java如何快速修改Jar包里的文件内容

    需求背景:写了一个实时读取日志文件以及监控的小程序,打包成了Jar包可执行文件,通过我们的web主系统上传到各个服务器,然后调用ssh命令执行.每次上传前都要通过解压缩软件修改或者替换里面的配置文件, ...

  8. js原型和原型链[转]

    附上原文出处:http://hzjavaeyer.group.iteye.com/group/wiki/3086-JavaScript-core-concepts 一.概念: 原型对象:JavaScr ...

  9. UsePass & GrabPass

    [UsePass] The UsePass command uses named passes from another shader. [Syntax] UsePass "Shader/N ...

  10. MyCat的安装及基本使用(MySQL分库分表)

    1.Mycat的简介 1.1 数据库集群产生的背景 如今随着互联网的发展,数据的量级也是成指数的增长,从GB到TB到PB.对数据的各种操作也是愈加的困难,传统的关系性数据库已经无法满足快速查询与插入数 ...