一直都没用java写过hadoop程序(除了wordcount),后来发现不用java有些问题处理不了。现在The Apache Software Foundation的开发速度也不是太快不太清楚是不是人手不够,其他语言的api不是太多,而且还有很多bug。这两周遇到的2个bug,都是hive的bug真的是郁闷啊,insert overwrite 和 set hive.optimize.skewjoin=tru遇到的,很是无奈啊。

一直都用streaming和perl和shell,这样的程序都比较好写。遇到一些聚类的时候发现这个好像不是太好用啊。其实像kmeans在分布式环境下的聚类过程很好想像,就是需要一批向量的数据,和一批随机中心点的数据,map读数据看看和哪个中心点近将key设置成最近的中心点的序号,reduce设置和k相同的个数,reduce里将每个送过来的向量计算求出新的中心点,修正老的中心点。输出向量这样就形成了一次聚类的过程然后再来一次mapreduce,循环下去知道中心点不动了聚类就结束了。可是用streaming+perl实现起来还是比较困难的,但是应该也是可以实现的,这里面主要是修正中心点需要reduce去修改或是形成新的中心点。其实reduce可以在自己的运行目录里创建临时文件然后放到HDFS里,下个循环再用 。-file 这个可以用一下

MAHOUT

既然已经有了分布式环境下的轮胎我们就不必发明轮胎了,mahout这个被很多人吹捧的东东,我们可以试一下。现在只讨论0.4版本的。

其实我是先在单机环境下实验的,还可以直接可以将例子运行。在集群上也是可以运行的。

编译示例程序

Apache software foundation’s website

http://mahout.apache.org mahout的官方地址

http://hadoop.apache.org hadoop的官方地址

http://hive.apache.org hive的官方地址

http://svn.apache.org 代码地址 包含了所有的开源项目

http://archeve.apache.org 归档地址:所有软件的历史版本都可以在这里找到

mahout几个有用的参考连接

命令运行kmeans:

https://cwiki.apache.org/confluence/display/MAHOUT/k-means-commandline

历史版本源代码地址:

https://github.com/apache/mahout/blob/mahout-0.3/examples/src/main/java/org/apache/mahout/clustering/syntheticcontrol/kmeans/Job.java

https://github.com/apache/mahout/branches

从文本创建向量:

https://cwiki.apache.org/MAHOUT/creating-vectors-from-text.html

快速开始;

http://cwiki.apache.org/MAHOUT/quickstart.html

比较重要示例运行:

https://cwiki.apache.org/confluence/display/MAHOUT/Clustering+of+synthetic+control+data

http://webcache.googleusercontent.com/search?q=cache:9kvXlIJ3lc0J:https://cwiki.apache.org/MAHOUT/clustering-of-synthetic-control-data.html+Clustering%2Bof%2Bsynthetic%2Bcontrol%2Bdata&cd=1&hl=zh-CN&ct=clnk&source=www.google.com.hk (google快照)

eclipse编译打包运行示例程序

1. 首先是eclipse我用的是官方下载的HELIOS版本的

2. 创建一个java project

3. 找到mahout0.4源代码中的 kmeans聚类实例。路径是(\src\examples\src\main\java\org\apache\mahout\clustering\syntheticcontrol\kmeans

)。创建一个类为kmeansjob,然后将示例代码贴过来。修改代码中的类名称为kmeansjob。

4. 添加引用包。

hadoop-0.20.2\hadoop-0.20.2-core.jar

hadoop-0.20.2\lib\log4j-1.2.15.jar

mahout-distribution-0.4\mahout-core-0.4-job.jar

mahout-distribution-0.4\mahout-core-0.4.jar

mahout-distribution-0.4\mahout-utils-0.4.jar

mahout-distribution-0.4\lib\commons-cli-1.2.jar

mahout-distribution-0.4\lib\slf4j-api-1.6.0.jar

mahout-distribution-0.4\lib\commons-cli-2.0-mahout.jar

加入编译0.3版本的需要添加一下包:

hadoop-0.19.2\hadoop-0.19.2-core.jar

hadoop-0.19.2\lib\log4j-1.2.15.jar

mahout-0.3\mahout-core-0.3.jar

mahout-0.3\lib\commons-cli-1.2.jar

mahout-0.3\lib\commons-cli-2.0-mahout.jar

mahout-0.3\mahout-utils-0.3.jar

mahout-0.3\lib\slf4j-api-1.5.8.jar

mahout-0.3\mahout-examples-0.3.jar

5. 将项目export runnable jar file

6. 然后就是运行了hadoop jar k22.jar

7. 输入是示例程序提供输入的数据。

mahout程序和java web_mahout及java编写mapreduce相关推荐

  1. 【Hadoop】伪分布式安装---MapReduce程序运行到YARN上,编写MapReduce程序---HDFS yarn

    在我的虚拟机(Linux)上安装的Hadoop是2.7.3版本的,安装过程可以参考这个网站,也可以下载. http://hadoop.apache.org/docs/r2.7.6/hadoop-pro ...

  2. 《Java编码指南:编写安全可靠程序的75条建议》—— 指南20:使用安全管理器创建一个安全的沙盒...

    本节书摘来异步社区<Java编码指南:编写安全可靠程序的75条建议>一书中的第1章,第1.20节,作者:[美]Fred Long(弗雷德•朗), Dhruv Mohindra(德鲁•莫欣达 ...

  3. 《Java编码指南:编写安全可靠程序的75条建议(英文版)》—— 2.7 修复错误...

    本节书摘来异步社区<Java编码指南:编写安全可靠程序的75条建议(英文版)>一书中的第2章,第2.7节,作者:[美]Fred Long(弗雷德•朗),Dhruv Mohindra(德鲁• ...

  4. Java黑皮书课后题第1章:1.1(显示三条消息)编写程序,显示Welcome to Java、Welcome to Computer Science和Programming is fun

    Java黑皮书第一章编程练习题:1.1(显示三条消息) 题目 题目描述 题目槽点 代码片段 零基础解释 ①print与println ②法2中的\n ③法2中的"+":连接两行 C ...

  5. 《Java编码指南:编写安全可靠程序的75条建议》—— 指南19:对细粒度的安全定义自定义安全权限...

    本节书摘来异步社区<Java编码指南:编写安全可靠程序的75条建议>一书中的第1章,第1.19节,作者:[美]Fred Long(弗雷德•朗), Dhruv Mohindra(德鲁•莫欣达 ...

  6. java语言编程三角形图形_编程题:编写程序输入三角形的3条边长,计算并输出... 求助一道JAVA编程题:编写一个类似记事本的图形用......

    导航:网站首页 > 编程题:编写程序输入三角形的3条边长,计算并输出... 求助一道JAVA编程题:编写一个类似记事本的图形用... 编程题:编写程序输入三角形的3条边长,计算并输出... 求助 ...

  7. Java教程:使用记事本编写运行Java程序

    Java教程经过上节的操作已经配置完了 Java 的开发环境,但并不清楚所配置的开发环境是否真的可以运行 Java 应用程序.为了解除这个疑虑,也为了使读者对开发 Java 应用程序的步骤有一个初步的 ...

  8. 《Java编码指南:编写安全可靠程序的75条建议》—— 指南16:避免授予过多特权...

    本节书摘来异步社区<Java编码指南:编写安全可靠程序的75条建议>一书中的第1章,第1.16节,作者:[美]Fred Long(弗雷德•朗), Dhruv Mohindra(德鲁•莫欣达 ...

  9. java应用程序如何编译运作_开发Java应用程序的基本步骤是: 1 编写源文件, 2.编译源文件, 3.运行程序。_学小易找答案...

    [判断题]Java源文件中只能有一个类. [简答题]任务32:开关电源PCB 设计.docx [多选题]企业的收入具体表现为一定期间: [简答题]任务33:CPLD逻辑电路自制元件与封装.docx [ ...

最新文章

  1. Build boost 1.66.0 with c++11
  2. matlab 2014 破解使用
  3. MVC新手教程三:Entity Framework 4.0 来实现MVC的增删改查功能,10分钟搞定
  4. php include无效,php 两次include后,第一个include里的变量无效了
  5. python画正方形的代码_Python编程练习:使用 turtle 库完成正方形的绘制
  6. 剑指offer:对称的二叉树(镜像,递归,非递归DFS栈+BFS队列)
  7. 软件测试测试用例编写 不超过7步骤_教你快速编写一个合格的测试用例!
  8. 设计模式C++学习笔记之二(Proxy代理模式)
  9. 数据库篇之[bsp_orders]数据表-BrnShop1.9升级至2.1升级说明(非官方版本)
  10. Redis-key的设计技巧
  11. 五大特点_皮肤肤质五大分类及其特点
  12. 计算机应用基础张宇答案,计算机应用基础电子教案教学课件作者张宇第5章自测题课件.doc...
  13. 关于IE6 双倍间距的真正原因
  14. 通达信版弘历软件指标_弘历主图指标详解 通达信指标
  15. Emscripten 单词_学会词根词缀,开启高效、快速地记忆英语单词模式
  16. ipad android开迅视频播放器,迅课视频播放器
  17. Dell戴尔笔记本电脑游匣G15 5510原装出厂OEM系统恢复原厂自带Windows10系统
  18. 大佬帮忙看看加密ts流的.key文件内容,用的是什么加密算法
  19. 5-ipv6基础知识之-域名解析dns
  20. 不会PS怎么抠图?这4个在线抠图工具,助你一键抠图

热门文章

  1. Minecraft 1.16.5模组开发(三十八) 3D盔甲(新)
  2. java编写视频播放器_基于Java的视频播放器可以足够快吗?
  3. 倒梁法matlab,柱下条形基础等基础工程.ppt
  4. 碰到个阿里p8,终于知道了别人为什么这么强,算是见识到了基础的天花板
  5. entsel约束条件lisp_autolisp函数
  6. Ansoft Maxwell 永磁体表面磁场和空间磁场仿真
  7. 天津计算机比赛,国际传媒学院学生在“‘中科曙光’杯第六届中国大学生计算机设计大赛天津市级赛”中屡创佳绩...
  8. 【Irrlicht Engine笔记】test5-UserInterface
  9. 探索地理空间的无限可能:GIS地图的应用与发展
  10. unity_pojie