Mahout算法调用展示平台2.1
软件版本:
windows7: Tomcat7、JDK7、Spring4.0.2、Struts2.3、Hibernate4.3、myeclipse10.0、easyui;Linux(centos6.5):Hadoop2.4、Mahout1.0、JDK7;
使用Web工程调用Mahout的相关算法,提供监控,查看任务的执行状态。
自建Web项目,项目首页如下:
1. 准备
[root@node33 data]# jps
6033 NodeManager
5543 NameNode
5629 DataNode
5942 ResourceManager
41611 Jps
5800 SecondaryNameNode
6412 JobHistoryServer
1.1 Hadoop包
<property><name>mapreduce.jobhistory.address</name><value>node33:10020</value><description>MapReduce JobHistory Server IPC host:port</description>
</property>
yarn-default.xml:
<name>yarn.application.classpath</name><value>$HADOOP_CONF_DIR,$HADOOP_COMMON_HOME/share/hadoop/common/*,$HADOOP_COMMON_HOME/share/hadoop/common/lib/*,$HADOOP_HDFS_HOME/share/hadoop/hdfs/*,$HADOOP_HDFS_HOME/share/hadoop/hdfs/lib/*,$HADOOP_YARN_HOME/share/hadoop/yarn/*,$HADOOP_YARN_HOME/share/hadoop/yarn/lib/*</value>
<name>yarn.resourcemanager.hostname</name><value>node33</value>
注意classpath的路径是集群的相应路径;
1.2 Mahout包
mvn -Dhadoop2.version=2.4.1 -DskipTests clean install
)导入的包有:
2.配置
2.1 Hadoop相关配置
2.2 数据库相关配置
2.3 Tomcat部署
<Contextpath ="/mh" docBase ="D:\workspase\hadoop_hbase\MahoutAlgorithmPlatform2.1\WebRoot" privileged ="true" reloadable ="false" >
</Context>
项目部署名使用mn。
3. 功能
3.1 集群配置模块
public int checkConnection(String fsStr,String rm) throws IOException{Configuration conf = new Configuration();conf.set("fs.defaultFS", fsStr);conf.set("yarn.resourcemanager.address", rm);conf.set("mapreduce.framework.name", "yarn"); FileSystem fs = FileSystem.get(conf);boolean fsOnline=fs.exists(new Path("/"));if(!fsOnline){return 1;}JobClient jc = new JobClient(conf);ClusterStatus cs = jc.getClusterStatus();if(!"RUNNING".equals(cs.getJobTrackerStatus().toString())){return 0;}// 集群验证成功HadoopUtils.setConf(conf);HadoopUtils.setFs(fs);// 通过判断Hadoop.getConf()是否为null来确定是否已经配置过集群return 3;}
主要通过两个方面:1、检查HDFS文件;2、检查集群状态是否是running;
3.2集群算法监控模块
public static void initialCurrentJobs(int nextJobNum) throws IOException{/*if(list!=null&&list.size()==10){list.clear();}*/list.clear(); // 清空上次遗留JobStatus[] jbs=getJc().getAllJobs();JobID jID = findLastJob(jbs).getJobID();if(jID==null){// the first time start the cluster , will be fixed next time // TODO fix the buglog.info("The cluster is started before and not running any job !!!");}log.info("The last job id is :{}", jID.toString());for(int i=1;i<=nextJobNum;i++){CurrentJobInfo cj = new CurrentJobInfo();cj.setJobId(new JobID(jID.getJtIdentifier(),jID.getId()+i));list.add(cj);}}
这里需要注意的是,如果集群是第一次启动,且没有运行MR任务的话,那么获取的任务ID为空,无法初始化(这个在下个版本修复);
public static List<CurrentJobInfo> getCurrentJobs() throws IOException{for(int i=0;i<list.size();i++){CurrentJobInfo iJob = list.get(i);RunningJob runningJob =findGivenJob(iJob.getJobId().toString());if(runningJob==null){break;}if(i==list.size()-1){ // 放在设置的前面finished=runningJob.isComplete();}iJob.setJobName(runningJob.getJobName());iJob.setJobIdStr(runningJob.getJobStatus().getJobID().toString());iJob.setMapProgress(Utils.toPercent(runningJob.mapProgress(),2));iJob.setRedProgress(Utils.toPercent(runningJob.reduceProgress(), 2));iJob.setState(JobStatus.getJobRunState(runningJob.getJobState())); // 有时map和reduce都到1时,此值仍是Running,需处理}return list;}
获取到任务信息后,在任务监控界面就可以监控到任务的运行状态。
3.3 Hadoop模块
3.3.1 上传、下载
3.3.2 读取、读取聚类中心点
/*** 读取聚类中心向量* @param conf* @param centerPathDir* @return* @throws IOException*/public static String readCenter(Configuration conf,String centerPathDir) throws IOException{StringBuffer buff = new StringBuffer();Path input = new Path(centerPathDir, "part-*");if(!HadoopUtils.getFs().exists(input)){return input+" not exist ,please check the input";}for(ClusterWritable cl:new SequenceFileDirValueIterable<ClusterWritable>(input, PathType.GLOB, conf)){buff.append(cl.getValue().asFormatString(null)).append("\n");}return buff.toString();}
3.3.3文本转换为序列向量
3.4 Mahout模块
3.4.1 聚类算法
3.4.2 分类算法
3.4.3 推荐算法
3.5 帮助模块
分享,成长,快乐
转载请注明blog地址:http://blog.csdn.net/fansy1990
Mahout算法调用展示平台2.1相关推荐
- java调用Linux mahout,Mahout算法调用展示平台2.1
问题导读 1.如何使用Web工程调用Mahout的相关算法? 2.Mahout的相关算法有哪些? 3.推荐算法使用item的什么? 软件版本: windows7: Tomcat7.JDK7.Sprin ...
- 淘宝天猫京东拼多多苏宁抖音等平台关键词监控价格API接口(店铺商品价格监控API接口调用展示)
淘宝京东拼多多苏宁抖音等平台关键词监控价格API接口(店铺商品价格监控API接口调用展示)代码对接如下: 1.公共参数 名称 类型 必须 描述 key String 是 调用key(必须以GET方式拼 ...
- 电商平台关键词监控价格API接口,店铺监控API接口调用展示
为了进行此平台API的调用,首先我们需要做下面几件事情. 1. 获取一个KEY. 2. 参考API文档里的接入方式和示例. 3.查看测试工具是否有需要的接口,响应实例的返回字段是否符合参数要求. 4. ...
- 淘宝天猫京东拼多多抖音苏宁1688等平台关键词监控价格API接口(店铺商品价格监控API接口调用展示)
淘宝天猫京东拼多多抖音苏宁1688等平台关键词监控价格API接口(店铺商品价格监控API接口调用展示)代码对接如下: 1.公共参数 名称 类型 必须 描述 key String 是 调用key(必须以 ...
- 淘宝天猫京东拼多多抖音苏宁1688等平台商品详情调用(店铺商品价格监控API接口调用展示)
淘宝天猫京东拼多多抖音苏宁1688等平台商品详情调用(店铺商品价格监控API接口调用展示)代码对接如下 商品详情调用: item_get-获得淘宝商品详情 测试 请求参数 请求参数:num_iid=5 ...
- 淘宝店铺商品接口 item_search_shop数据获取、拼多多关键词、1688原数据接口、淘宝商品详情sku信息等各大电商平台接口采集调用展示
以下是标题API的返回值说明,由于篇幅有限只展示部分代码.更多API调用展示以及获取Key和secret请移步 { "items": { "pag ...
- 基于threejs的商品VR展示平台的设计与实现思路
目录 基于threejs的商品VR展示平台的设计与实现思路 前言 总体开发方案设计 总体开发设计思维导图 模型制作模块 前端展示模块 存储模块 后端管理模块 后台管理实现 商品模型制作 商品模型前期准 ...
- java 调用python_Java平台如何调用Python平台?
1. 问题描述 Java平台要调用Pyhon平台已有的算法,为了减少耦合度,采用Pyhon平台提供Restful 接口,Java平台负责来调用,采用Http+Json格式交互. 2. 解决方案 2.1 ...
- 1688API详情接口调用展示
更多API调用展示以及获取Key和secret请移步 登录 - 跨境电商平台接口提供商 数据采集公司 数据接口定制服务 企业级数据服务商 { "item": { ...
最新文章
- IIS发布网页的基本操作
- Android BlueBorne (CVE-2017-0781)漏洞分析和利用
- 机器学习实战_09_树回归_源代码错误修正
- Tomcat启动失败错误解决Could not publish server configuration for Tomcat v8.0 Server at localhost....
- KVM安装、镜像创建(一)
- 《java设计模式》之责任链模式
- java各种集合的线程安全
- Redis精进:List的使用和应用场景
- 开课吧课堂之如何创建自己的异常子类
- 数字化转型之道:谈谈企业如何落地数据治理
- STM32 PWM输出
- 投稿动态无法删除的情况下,如何批量删除B站动态?
- 出大事了,涛哥你们Java应用GC后不释放内存
- Jenkins未授权访问
- 基于深度学习的图像隐写分析综述 阅读
- 学渣的刷题之旅 leetcode刷题 88. 合并两个有序数组
- wireshark Fiddler抓包分析与解密https Fiddler修改https请求和响应
- 技术人员如何创业《四》—— 打造超强执行力团队
- 第六章 Arm 微架构「System」
- cprogram作业
热门文章
- Github 上传代码指南(令牌token版)
- : cannot connect to X server
- python3 爬虫实战 :用 Appium 抓取手机 app 的 数据
- 抖音一个老人和一个机器人歌曲_抖音一念成佛一念成魔是谁的歌 摩登兄弟宁哥翻唱过的歌...
- JupyterHub on K8S私有化部署
- C++复习day1:知识点概述(依据C++premier plus)
- Excel 黏贴逗号分隔的文本到
- 培养人脉的100个技
- 礼物-天猫Tmall.com
- 我的世界服务器自定义武器插件,[RPG]SV-Equipment —— VV装备栏,拓展你的自定义装备![1.9-1.13]...