MapReduce的初次尝试
====前提:
搭建好集群环境(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--
最新文章
- RadioGroup实现导航栏
- Sina 新浪Ip归属地Api 很好用的,使用get请求
- 手机版web相关meta配置
- yii-basic-app-2.0.5/basic/config/web.php
- get utc+8 当时时间
- win8系统输入法设置
- CSAPP2e:Shell lab 解答
- UVALive 6811 Irrigation Line(二分图最小点覆盖--匈牙利算法)
- 从Eclipse到Android Studio经历
- 《C++程序设计》上半部读书笔记
- windows迁移linux问题集锦[ZZ]
- 浏览器url传参中文时得到null的解决方法
- Windows API 之 InternetOpen、InternetOpenUrl、InternetReadFile
- Java回调机制解读
- Docker 网络背后的原理探索
- (转)Android 之生成图形验证码
- python设计模式第二十天【迭代器模式】
- 在Windows下解决git ERROR: Permission to XXX.git denied to user
- 25天javaweb基础
- python 流程控制(条件语句)
热门文章
- Django CBV与FBV
- 查询mysql数据库启动时间抛异常
- AD域中客户端时间与服务器同步
- 运维平台cmdb开发-day2
- 十三 Thread的一些常用方法
- MySql——编程
- [Cpp primer] Namespace using Declarations
- 第十章 消息驱动的微服务: Spring Cloud Stream
- [z]【Bash命令行处理】[详解]
- Rhythmk 一步一步学 JAVA(9) JAVA 基础笔记[枚举,...]