====前提:

搭建好集群环境(zookeeper、hadoop、hbase)。

搭建方法这里就不进行介绍了,网上有很多博客在介绍这些。

====简单需求:

WordCount单词计数,号称Hadoop的HelloWorld。所以,我打算通过这个来初体验一下Hadoop。需求如下:

①、计算文件中出现每个单词的频数

②、输入结果按照字母顺序进行排序

====Map过程:

首先将文件进行切分成单词。将所有单词的项目都聚到一起。生成key-value的中间结果。

====Reduce过程

拿到之前Map的中间结果,进行合并(归约)。

====源代码

源代码来自慕课网,由于我自己学习需要,放到了我的Github空间上了。

https://github.com/quchunhui/WordCount

====上传Jar包

首先需要确认Linux集群运转是否正常。使用jps命令查看。确保hadoop相关进程的存在。

需要注意一点,不同版本的Hadoop的jps结果可能不一样。我在看慕课网的视频的时候,

发现人家里面还有TaskTracker和JobTracker呢,但是新版本的Hadoop就已经没有。

并不是集群环境的问题。具体什么是正确的,可以去查看官网的帮助文档。

①、在Master端的jps结果

②、在Slave端的jps结果

然后,将写完的代码达成jar包。由于我使用的是Mave环境,所以在Maven环境下使用mvn package进行打包即可。

====上传文件至hdfs文件目录

①、将上述步骤中生成的jar包上传到Linux服务器上。

我在HDOOP_HOME的根目录下创建了一个专门用于存放jar包的文件夹package。将生成的jar包上传到这里

/home/qch/software/hadoop-2.7.1/package

②、使用hadoop fs -put命令将数据源文件到hdfs文件目录

注意,这里是hdfs文件目录,并非是Linux系统上的某个文件夹。如果目录不存在,需要通过hadoop fs -mkdir命令自己手动去逐层创建。

我这里将上述3个文件上传到了hdfs文件目录[/user/root/wc_input]上了。

====程序运行

①、通过【hadoop jar <jar> [mainClass] args…】命令来运行程序。

命令:hadoop jar ../package/WordCount-1.0-SNAPSHOT.jar test.WordCount wc_input/file wc_output

②、运行成功之后,可以通过命令来查看hdfs上的生成结果是否正确。

====总结:

我犯的最小白的错误就是,不知道需要将文件上传到hdfs文件目录下面。希望以后加深对hdfs的了解。

这也就是我今天(2016/4/22。)的第一个mapreduce成果。

下一步需要真正去进行我的MapReduce工作了,需要考虑按照什么规则进行Map和Reduce。这才是重中之重。

--END--

最新文章

  1. RadioGroup实现导航栏
  2. Sina 新浪Ip归属地Api 很好用的,使用get请求
  3. 手机版web相关meta配置
  4. yii-basic-app-2.0.5/basic/config/web.php
  5. get utc+8 当时时间
  6. win8系统输入法设置
  7. CSAPP2e:Shell lab 解答
  8. UVALive 6811 Irrigation Line(二分图最小点覆盖--匈牙利算法)
  9. 从Eclipse到Android Studio经历
  10. 《C++程序设计》上半部读书笔记
  11. windows迁移linux问题集锦[ZZ]
  12. 浏览器url传参中文时得到null的解决方法
  13. Windows API 之 InternetOpen、InternetOpenUrl、InternetReadFile
  14. Java回调机制解读
  15. Docker 网络背后的原理探索
  16. (转)Android 之生成图形验证码
  17. python设计模式第二十天【迭代器模式】
  18. 在Windows下解决git ERROR: Permission to XXX.git denied to user
  19. 25天javaweb基础
  20. python 流程控制(条件语句)

热门文章

  1. Django CBV与FBV
  2. 查询mysql数据库启动时间抛异常
  3. AD域中客户端时间与服务器同步
  4. 运维平台cmdb开发-day2
  5. 十三 Thread的一些常用方法
  6. MySql——编程
  7. [Cpp primer] Namespace using Declarations
  8. 第十章 消息驱动的微服务: Spring Cloud Stream
  9. [z]【Bash命令行处理】[详解]
  10. Rhythmk 一步一步学 JAVA(9) JAVA 基础笔记[枚举,...]