云计算-Hadoop两小时快速入门指南-第一部分

简介: 买了一本书《Hadoop权威指南》第二版,书写的真不错,就是思维跳跃性太大,看了没两章,是前后狂翻(没办法,他一说就是看附录A安装Hadoop,看附录C准备NCDC天气数据)附录A需要研究一下,根据自己的需求确定下来,学习阶段也就本地模式就够了,不要玩什么集群模式,浪费感情,浪费计算机资源。具体过程上网搜搜吧,好多人写,不过你需要的就是最基本的模式,只要安装Java、解压缩Hadoop,配置

买了一本书《Hadoop权威指南》第二版,书写的真不错,就是思维跳跃性太大,看了没两章,是前后狂翻(没办法,他一说就是看附录A安装Hadoop,看附录C准备NCDC天气数据)

附录A需要研究一下,根据自己的需求确定下来,学习阶段也就本地模式就够了,不要玩什么集群模式,浪费感情,浪费计算机资源。具体过程上网搜搜吧,好多人写,不过你需要的就是最基本的模式,只要安装Java、解压缩Hadoop,配置hadoop的bin目录到path环境变量。就可以了。集群了之类的,不要玩那些没用的,入门以后再说。我相信你30分钟都能搞好一个liunx系统,并安装jdk、解压缩hadoop,配置JAVA_HOME,和path环境变量。

 

附录C:准备NCDC天气数据,这一章节巨崩溃,看了两天(全是下班后的业余时间)也就从它所描述的NCDC官网上下载到了我需要的测试数据,好多,看了半天本来就是测试,随便找两个温度测试站点的2年的数据合并一下作为测试数据算了。

得意得意得意得意得意得意得意得意得意得意得意得意得意得意得意得意得意得意得意得意得意得意得意得意得意得意得意得意

下面开始我对前两章的理解,希望给后来者能通过一晚上的时间,快速学习会第二章节的内容。

1.      准备工作(30分钟)

1)     科普HDFS基础命令

1,查看目录(列表)信息

#bin/hadoop dfs -ls /

 

2,创建目录test

#bin/hadoop dfs -mkdir test

 

3,删除目录test

#bin/hadoop dfs -rmr test

 

4,上传文件到HDFS目录

#bin/haddop dfs -put *.txt test

 

5,下载文件

#bin/hadoop dfs -get test test1

 

6. 查看一个文件

#bin/hadoop dfs –tail test

#bin/hadoop dfs –cat test

 

2)     准备天气预报数据

打开FTP

ftp://ftp.ncdc.noaa.gov/pub/data/gsod/

随意下两个年份的文件进行分析。

2011/007018-99999-2011.op.gz

2010/999999-94645-2012.op.gz

上传这两个gz文件到Linux服务器上,解压缩gz文件,执行命令合并两个临时文件

cat  007018-99999-2011.op 999999-94645-2012.op> ncdc-all.op

将合并后的温度文件,上传到hdfs上,等待分析备用。

hadoop dfs -put  ncdc-all.op  ./hdfs/temperature

2.      编写Map-Reduce函数和调度函数(Job)(60分钟)

    多看看代码吧,没坏处。详见附件。附件没法上传,等我上传到资源里面吧。

http://download.csdn.net/detail/xzknet/4905094

哦,对了,附件密码忘记说了,和文件名称一样。哈哈

3.      上传Jar包到Linux服务器。(30分钟)

将第二步编写的代码打包成HadoopTest.jar放到本地某一个目录下,例如:

/home/xzknet/demo/ch02/

   然后进入该目录执行如下命令

hadoop jar ./ch02.jar /home/xzknet/demo/ch02/hdfs output

   系统返回如下信息

xzknet@bogon:~/demo/ch02$hadoop jar ./ch02.jar /home/xzknet/demo/ch02/hdfs output

12/12/1807:35:48 INFO jvm.JvmMetrics: Initializing JVM Metrics with processName=JobTracker,sessionId=

12/12/1807:35:48 WARN mapred.JobClient: Use GenericOptionsParser for parsing thearguments. Applications should implement Tool for the same.

12/12/1807:35:48 INFO mapred.FileInputFormat: Total input paths to process : 1

12/12/1807:35:48 INFO mapred.JobClient: Running job: job_local_0001

12/12/1807:35:48 INFO mapred.FileInputFormat: Total input paths to process : 1

12/12/1807:35:48 INFO mapred.MapTask: numReduceTasks: 1

12/12/1807:35:48 INFO mapred.MapTask: io.sort.mb = 100

12/12/1807:35:48 INFO mapred.MapTask: data buffer = 79691776/99614720

12/12/1807:35:48 INFO mapred.MapTask: record buffer = 262144/327680

12/12/1807:35:48 INFO mapred.MapTask: Starting flush of map output

12/12/1807:35:49 INFO mapred.MapTask: Finished spill 0

12/12/1807:35:49 INFO mapred.TaskRunner: Task:attempt_local_0001_m_000000_0 is done.And is in the process of commiting

12/12/1807:35:49 INFO mapred.LocalJobRunner:file:/home/xzknet/demo/ch02/hdfs/temperature:0+99802

12/12/1807:35:49 INFO mapred.TaskRunner: Task 'attempt_local_0001_m_000000_0' done.

12/12/1807:35:49 INFO mapred.LocalJobRunner:

12/12/1807:35:49 INFO mapred.Merger: Merging 1 sorted segments

12/12/1807:35:49 INFO mapred.Merger: Down to the last merge-pass, with 1 segments leftof total size: 7878 bytes

12/12/1807:35:49 INFO mapred.LocalJobRunner:

12/12/1807:35:49 INFO mapred.TaskRunner: Task:attempt_local_0001_r_000000_0 is done.And is in the process of commiting

12/12/1807:35:49 INFO mapred.LocalJobRunner:

12/12/1807:35:49 INFO mapred.TaskRunner: Task attempt_local_0001_r_000000_0 is allowedto commit now

12/12/1807:35:49 INFO mapred.FileOutputCommitter: Saved output of task'attempt_local_0001_r_000000_0' to file:/home/xzknet/demo/ch02/output

12/12/1807:35:49 INFO mapred.LocalJobRunner: reduce > reduce

12/12/1807:35:49 INFO mapred.TaskRunner: Task 'attempt_local_0001_r_000000_0' done.

12/12/1807:35:49 INFO mapred.JobClient:  map 100%reduce 100%

12/12/1807:35:49 INFO mapred.JobClient: Job complete: job_local_0001

12/12/1807:35:49 INFO mapred.JobClient: Counters: 13

12/12/1807:35:49 INFO mapred.JobClient:  FileSystemCounters

12/12/1807:35:49 INFO mapred.JobClient:    FILE_BYTES_READ=244318

12/12/1807:35:49 INFO mapred.JobClient:    FILE_BYTES_WRITTEN=78028

12/12/1807:35:49 INFO mapred.JobClient:  Map-Reduce Framework

12/12/1807:35:49 INFO mapred.JobClient:    Reduce input groups=2

12/12/1807:35:49 INFO mapred.JobClient:    Combine output records=0

12/12/1807:35:49 INFO mapred.JobClient:     Mapinput records=718

12/12/1807:35:49 INFO mapred.JobClient:    Reduce shuffle bytes=0

12/12/1807:35:49 INFO mapred.JobClient:    Reduce output records=2

12/12/1807:35:49 INFO mapred.JobClient:    Spilled Records=1432

12/12/1807:35:49 INFO mapred.JobClient:     Mapoutput bytes=6444

12/12/1807:35:49 INFO mapred.JobClient:     Mapinput bytes=99802

12/12/1807:35:49 INFO mapred.JobClient:    Combine input records=0

12/12/1807:35:49 INFO mapred.JobClient:     Mapoutput records=716

12/12/1807:35:49 INFO mapred.JobClient:    Reduce input records=716

然后查看当前目录,生成output目录,打开此目录,可以看到生成结果文件,我们会看到此目录包含crc文件,是一个HDFS文件夹。

我们可以直接打开此结果文件,我们即可以看到两年的最高气温

xzknet@bogon:~/demo/ch02$ls

ch02.jar  hdfs ncdc-all.op  output

xzknet@bogon:~/demo/ch02$cd output

xzknet@bogon:~/demo/ch02/output$ls

part-00000

xzknet@bogon:~/demo/ch02/output$ls

part-00000

xzknet@bogon:~/demo/ch02/output$tail part-00000

2010    85.4

2012    73.7

   注意:eclipse的导出Jar包时,export选项中有MainClass选项,注意设置该选项,否则:运行hadoop jar 命令时在***.jar后面需要指定包括包路径的mainclass类名.

 

 跟书上的命令不大一样,不过他那里是指的local的方式,

这里ch02.jar在本地,要分析的数据文件temperature 在hdfs上,产生的输出在hdfs上,output是一个文件夹

xzknet@bogon:~/demo/ch02$ hadoop dfs -cat ./output/part-00000

2010    85.4

2012    73.7

xzknet@bogon:~/demo/ch02$ hadoop dfs -tail ./output/part-00000

2010    85.4

2012    73.7

到这里,恭喜你,你已经入门了。并用Hadoop开发了自己第一个云计算程序。

相关文章
|
6月前
|
分布式计算 Hadoop Java
Hadoop快速入门——第一章、认识Hadoop与创建伪分布式模式(Hadoop3.1.3版本配置)
Hadoop快速入门——第一章、认识Hadoop与创建伪分布式模式(Hadoop3.1.3版本配置)
138 0
|
3月前
|
存储 分布式计算 监控
Hadoop在云计算环境下的部署策略
【8月更文第28天】Hadoop是一个开源软件框架,用于分布式存储和处理大规模数据集。随着云计算技术的发展,越来越多的企业开始利用云平台的优势来部署Hadoop集群,以实现更高的可扩展性、可用性和成本效益。本文将探讨如何在公有云、私有云及混合云环境下部署和管理Hadoop集群,并提供具体的部署策略和代码示例。
97 0
|
6月前
|
分布式计算 资源调度 Hadoop
Apache Hadoop入门指南:搭建分布式大数据处理平台
【4月更文挑战第6天】本文介绍了Apache Hadoop在大数据处理中的关键作用,并引导初学者了解Hadoop的基本概念、核心组件(HDFS、YARN、MapReduce)及如何搭建分布式环境。通过配置Hadoop、格式化HDFS、启动服务和验证环境,学习者可掌握基本操作。此外,文章还提及了开发MapReduce程序、学习Hadoop生态系统和性能调优的重要性,旨在为读者提供Hadoop入门指导,助其踏入大数据处理的旅程。
876 0
|
6月前
|
分布式计算 Hadoop 大数据
【云计算与大数据计算】Hadoop MapReduce实战之统计每个单词出现次数、单词平均长度、Grep(附源码 )
【云计算与大数据计算】Hadoop MapReduce实战之统计每个单词出现次数、单词平均长度、Grep(附源码 )
245 1
|
6月前
|
存储 分布式计算 Hadoop
【云计算与大数据技术】Hadoop MapReduce的讲解(图文解释,超详细必看)
【云计算与大数据技术】Hadoop MapReduce的讲解(图文解释,超详细必看)
295 0
|
6月前
|
分布式计算 并行计算 Hadoop
【云计算与大数据计算】分布式处理CPU多核、MPI并行计算、Hadoop、Spark的简介(超详细)
【云计算与大数据计算】分布式处理CPU多核、MPI并行计算、Hadoop、Spark的简介(超详细)
303 0
|
6月前
|
存储 分布式计算 大数据
【云计算与大数据技术】大数据系统总体架构概述(Hadoop+MapReduce )
【云计算与大数据技术】大数据系统总体架构概述(Hadoop+MapReduce )
358 0
|
分布式计算 并行计算 NoSQL
(超详细)0基础利用python调用Hadoop,云计算3
(超详细)0基础利用python调用Hadoop,云计算
172 0
|
存储 分布式计算 资源调度
(超详细)0基础利用python调用Hadoop,云计算2
(超详细)0基础利用python调用Hadoop,云计算
198 0
|
分布式计算 并行计算 Hadoop
(超详细)0基础利用python调用Hadoop,云计算1
(超详细)0基础利用python调用Hadoop,云计算
158 0