
hadoop
文章平均质量分 74
USTCZYY
这个作者很懒,什么都没留下…
展开
-
hadoop里DataJoin连接多数据源问题
概念:Hadoop有一个叫DataJoin的包为Data Join提供相应的框架。它的Jar包存在于contrib/datajoin/hadoop-*-datajoin。为区别于其他的data join技术,我们称其为reduce-side join。(因为我们在reducer上作大多数的工作)reduce-side join引入了一些术语及概念: 1.Dat翻译 2013-12-14 11:40:28 · 1323 阅读 · 0 评论 -
mahout源码canopy算法分析之三CanopyReducer
经过了前面两篇文章的分析,相信大家对CanopyReducer的分析就不会碰到太大的疑问,因为CanopyReducer的操作简直就和CanopyMapper的操作一模一样,也是把所有的样本数据分为若干组,即又按照map的操作执行了一次,那么就会有同学问了?那不是都不需要用reduce么?大家这里想一下,map的输出和输入有什么区别。假如map的输入有100个样本被分为了5组,并且clusterF转载 2013-11-09 11:49:07 · 864 阅读 · 0 评论 -
hadoop文本转换为序列文件
在以前使用hadoop的时候因为mahout里面很多都要求输入文件时序列文件,所以涉及到把文本文件转换为序列文件或者序列文件转为文本文件(因为当时要分析mahout的源码,所以就要看到它的输入文件是什么,文本比较好看其内容)。一般这个有两种做法,其一:按照《hadoop权威指南》上面的方面直接读出序列文件然后写入一个文本;其二,编写一个job任务,直接设置输出文件的格式,这样也可以把序列文件读成文转载 2013-11-09 11:48:23 · 830 阅读 · 0 评论 -
mahout源码KMeansDriver分析之二中心点文件分析(无语篇)
首先说下,为什么题目后面会有个“无语篇”,因为我觉得今晚这几个钟头太坑爹了。为什么,且听我慢慢道来:按照昨天的计划,我应该把代码仿造成单机可运行的代码。但是首先我要有输入数据不是?所以我最开始做的就是仿造clusterIn的数据,即中心向量的文件。昨天也说过中心向量文件应该就是把一组(key,value)对(要求value的格式为ClusterWritable,key格式任意)写入一个序列文件转载 2013-11-09 11:46:59 · 1065 阅读 · 0 评论 -
mahout源码KMeansDriver分析之五CIMapper初探
接着上篇,继续分析代码。下面就到了MR的循环了,这里MR应该算是比较好理解的,重点是退出循环的条件设置,即如何判断前后两次中心点误差小于给定阈值。首先,while循环: while (iteration <= numIterations) { conf.set(PRIOR_PATH_KEY, priorPath.toString()); Strin转载 2013-11-09 11:45:10 · 806 阅读 · 0 评论 -
mahout源码KMeansDriver分析之KmeansDriver
好吧,我上篇博客的仿造CIReducer的代码的确是有误的,错在哪?map输出的中心点是两个不错,但是其key是不一样的,所以要送到不同的reduce函数中(注意这里是函数,而非reducer,如果是同一个key则要送到同一个reduce中),所以不是一个for循环就搞定的,应该要key的个数个for循环才行。那就是说reducer中的reduce函数一次只能接受一个中心点了(针对一直使用的数据来转载 2013-11-09 11:43:41 · 1298 阅读 · 0 评论 -
mahout实现的模糊K-Means聚类算法原理和源码分析
首先介绍一下,FuzzyKMeans算法的主要思想。模糊 C 均值聚类(FCM),即众所周知的模糊 ISODATA,是用隶属度确定每个数据点属于某个聚类的程度的一种聚类算法。1973 年,Bezdek 提出了该算法,作为早期硬 C 均值聚类(HCM)方法的一种改进。FCM 把 n 个向量 xi(i=1,2,...,n)分为 c 个模糊组,并求每组的聚类中心,使得非相似性指标的价值函数达到最小。原创 2013-11-09 11:28:27 · 3644 阅读 · 0 评论 -
mahout源码KMeansDriver分析之一整体分析
今天开始分析KMeansDriver的源码,由于之前已经分析过KMeans算法的原理(其实是已经使用hadoop实现过了),所以在这里就不讲原理了,而且大家对这个算法的原理基本都清楚(搞数据挖掘的最清楚的应该就算这个算法了吧)。今天要分析的内容其实可以暂时完全不使用hadoop集群,即可以暂时不用开vmware了。额,废话讲了这么多,开始分析吧。首先把下面的代码复制到java工程(这个工程是在转载 2013-11-09 11:47:41 · 1522 阅读 · 0 评论 -
mahout源码KMeansDriver分析之三自动写入中心点文件
之前的关于中心点文件的分析基本是对的,但是在第一篇整体分析的时候没有说如何产生中心点向量文件所以在第二篇写了如何得到,其实在mahout里面有一个自动生成中心点文件的方法,之前漏掉了。现在补上,首先编写下面的debug代码:package mahout.fansy.test.kmeans;import java.io.IOException;import org.apache.hado转载 2013-11-09 11:46:24 · 940 阅读 · 0 评论 -
mahout源码KMeansDriver分析之四
昨天说到为什么Configuration没有设置conf.set("mapred.job.tracker","hadoop:9000")仍然可以访问hdfs文件系统(我又换回虚拟机了,因为我加了2G内存。。。所以改为了hadoop:9000),实验证明,是可以的。比如编写下面的测试程序:package mahout.fansy.test.kmeans.middle;import java转载 2013-11-09 11:45:47 · 742 阅读 · 0 评论 -
mahout源码canopy算法分析之二CanopyMapper
首先更正一点,前篇博客里面说到一个Canopy的测试的例子里面有这样的一句代码:buildClusters(Configuration conf, Path input, Path output, DistanceMeasure measure, double t1, double t2, double t3, double t4, int clusterFilte转载 2013-11-09 11:50:15 · 950 阅读 · 0 评论 -
mahout算法canopy源码分析之一:获得输入数据
对于canopy的输入数据需要的形式为序列文件,同时保证key:Text、value:VectorWritable。昨晚准备打算使用单纯的java程序搞定输入数据的准备,无奈老是会出点问题,昨晚的问题“找不到文件”暂时还没找到原因。其实如果只是要获得输入数据那么,可以使用mahout官网提供的方法在得到了序列的*.txt文件后直接把mahout-distribution-0.7.zip解压转载 2013-11-09 11:50:51 · 1275 阅读 · 0 评论 -
mahout自带例子的常用语法
mahout使用:步骤一:tar -xvf mahout-0.3.tar.gz需要指定hadoop的路径和配置文件的路径export HADOOP_HOME=/home/hadoopuser/hadoop-0.19.2 export HADOOP_CONF_DIR=/home/hadoopuser/hadoop-0.19.2/conf步骤二:通过这个命令可以原创 2013-11-13 16:53:35 · 3772 阅读 · 0 评论 -
Hadoop ObjectWritable类的实现浅析
针对Java基本类型、字符串、枚举、Writable、空值、Writable的其他子类,ObjectWritable提供了一个封装,适用于字段需要使用多种类型。ObjectWritable可应用于Hadoop远程过程调用(将在第4章介绍)中参数的序列化和反序列化;ObjectWritable的另一个典型应用是在需要序列化不同类型的对象到某一个字段,如在一个SequenceFile的值中保存不同类型原创 2013-11-28 21:34:15 · 2117 阅读 · 0 评论 -
mahout自带的例子 -------------------------分类
介绍这二十个新闻组数据集合是收集大约20,000新闻组文档,均匀的分布在20个不同的集合。这20个新闻组集合采集最近流行的数据集合到文本程序中作为实验,根据机器学习技术。例如文本分类,文本聚集。我们将使用Mahout的Bayes Classifier创造一个模型,它将一个新文档分类到这20个新闻组集合首要条件。Mahout已经下载。Maven是可用的。已经设置了如下环境变量翻译 2013-11-14 11:43:05 · 2913 阅读 · 0 评论 -
mahout之协调推荐----------------(二)
协同过滤 —— Collaborative Filtering协同过滤简单来说就是根据目标用户的行为特征,为他发现一个兴趣相投、拥有共同经验的群体,然后根据群体的喜好来为目标用户过滤可能感兴趣的内容。协同过滤推荐 —— Collaborative Filtering Recommend协同过滤推荐是基于一组喜好相同的用户进行推荐。它是基于这样的一种假设:为一用户找到他真正感兴趣的内翻译 2013-11-14 21:51:03 · 968 阅读 · 0 评论 -
Mahout推荐算法基础
Mahout主要推荐算法 Mahout推荐算法分为以下几大类GenericUserBasedRecommender算法:1.基于用户的相似度2.相近的用户定义与数量特点:1.易于理解2.用户数较少时计算速度快 GenericItemBasedRecommender算法:1.基于item的相似度特点:1.item较少时就算速度更快2.翻译 2013-11-14 21:46:36 · 1276 阅读 · 0 评论 -
mahout之相似性度量
User CF 和 Item CF 都依赖于相似度的计算,因为只有通过衡量用户之间或物品之间的相似度,才能找到用户的“邻居”,才能完成推荐。上文简单的介绍了相似度的计算,但不完全,下面就对常用的相似度计算方法进行详细的介绍:1. 基于皮尔森相关性的相似度 —— Pearson correlation-based similarity皮尔森相关系数反应了两个变量之间的线性相关程度,它的取翻译 2013-11-14 21:37:10 · 1057 阅读 · 0 评论 -
mahout里数据结构解析 ----------------(一)
推荐数据的处理是大规模的,在集群环境下一次要处理的数据可能是数GB,所以Mahout针对推荐数据进行了优化。Preference在Mahout中,用户的喜好被抽象为一个Preference,包含了userId,itemId和偏好值(user对item的偏好)。Preference是一个接口,它有一个通用的实现是GenericPreference。Pr原创 2013-11-14 21:28:15 · 1173 阅读 · 0 评论 -
hadoop mahout 运行自带的例子
The 20 Newsgroups数据集合收集了大约20,000 个新闻群组的文档,它们被划分成为大约20个新闻组。在机器学习领域,这个数据集合被广泛的应用与分类和聚类测试数据集。下面是介绍如何利用这个数据集合来进行分类。 (本文是对https://cwiki.apache.org/confluence/display/MAHOUT/Twenty+Newsgroups的翻译)准备工作:翻译 2013-11-14 11:44:32 · 1715 阅读 · 0 评论 -
处理海量数据常用算法
分而治之/hash映射 + hash统计 + 堆/快速/归并排序;双层桶划分Bloom filter/Bitmap;Trie树/数据库/倒排索引;外排序;分布式处理之Hadoop/Mapreduce原创 2013-11-28 09:56:41 · 874 阅读 · 0 评论 -
ubuntu12.04下面安装eclipse
方法一:(缺点是安装时附加openjdk等大量程序并无法去除,优点是安装简单)$ sudo apt-get install eclipse方法二:(优点是安装内容清爽,缺点是配置麻烦)1、安装JDK,参考 Ubuntu 12.04 下安装 JDK 72、下载 Eclipse从 http://www.eclipse.org/downloads/inde原创 2013-11-13 15:53:53 · 1346 阅读 · 0 评论 -
ubuntu12.04下安装mahout
经过一两天的熟悉,基本对Mahout的安装掌握了,下面给出详细安装步骤,带图1 软件要求:1. jdk-6u27-linux-i586.bin 2. apache-maven-2.2.1-bin.tar.gz3. hadoop-0.20.204.0.tar.gz(不要用最新版,会报错)4. mahout-distribution-0.5原创 2013-11-13 14:46:10 · 1342 阅读 · 0 评论 -
mahout源码KMeansDriver分析之五CIMapper
接上文重点分析map操作: Vector probabilities = classifier.classify(value.get());// 第一行 Vector selections = policy.select(probabilities); // 第二行 for (Iterator it = selections.iterateNonZero();转载 2013-11-09 11:44:24 · 829 阅读 · 0 评论 -
hadoop1.2.1+zookeeper-3.4.5+hbase-0.94.1集群安装
一,环境:1,主机规划:集群中包括3个节点:hadoop01为Master,其余为Salve,节点之间局域网连接,可以相互ping通。机器名称IP地址hadoop01192.168.1.31hadoop02192.168.1.32hadoop03192.1转载 2013-11-22 23:05:23 · 1294 阅读 · 0 评论 -
canopy算法
(1)、将数据集向量化得到一个list后放入内存,选择两个距离阈值:T1和T2,其中T1 > T2,对应上图,实线圈为T1,虚线圈为T2,T1和T2的值可以用交叉校验来确定; (2)、从list中任取一点P,用低计算成本方法快速计算点P与所有Canopy之间的距离(如果当前不存在Canopy,则把点P作为一个Canopy),如果点P与某个Canopy距离在T1以内,则将点P加入到翻译 2013-11-08 15:53:43 · 2472 阅读 · 1 评论 -
简单的推荐算法
兴例来说就是用户买了一件物品,除了这个物品外还买了哪些物品 ,可以对类似的用户做推荐。如下有一组数据结构: X1 Y1 X2 Y2 X3 Y3 X1 Y4 X5 Y5 X表示用户,Y表示用户所买原创 2013-10-22 10:47:37 · 989 阅读 · 0 评论 -
mahout learning 代码示例
package mia.recommender.ch02;//=分析导入包可以看出mahout的包分为主要类以及它们的实现类=import org.apache.mahout.cf.taste.impl.model.file.*;import org.apache.mahout.cf.taste.impl.neighborhood.*;import org.apache.mahout.cf原创 2013-10-22 10:26:27 · 1077 阅读 · 0 评论 -
mahout算法集
在Mahout实现的机器学习算法见下表算法类算法名中文名分类算法Logistic Regression逻辑回归Bayesian贝叶斯SVM支持向量机Perceptron感知器算法Neural Ne翻译 2013-10-22 10:07:44 · 751 阅读 · 0 评论 -
HadoopDB安装使用
由於它是在 Hadoop-0.19.x 開發的,因此我還是用 Hadoop-0.19.2 來架設,至於架設部分可以參考這篇:[Linux] 安裝 Hadoop 0.20.1 Multi-Node Cluster @ Ubuntu 9.10,其中 0.19.2 與 0.20.1 安裝上只有些微的差別,在上述文章中的 hadoop-0.20.1/conf/core-site.xml 與 hadoo翻译 2013-10-25 19:24:38 · 990 阅读 · 0 评论 -
assertThat使用方法
一般匹配符1、assertThat( testedNumber, allOf( greaterThan(8), lessThan(16) ) );注释: allOf匹配符表明如果接下来的所有条件必须都成立测试才通过,相当于“与”(&&)2、assertThat( testedNumber, anyOf( greaterThan(16), lessThan(8) ) );注释:any转载 2013-09-27 14:51:11 · 989 阅读 · 0 评论 -
HBase提供了Java Api的访问接口
引言HBase提供了Java Api的访问接口,掌握这个就跟Java应用使用RDBMS时需要JDBC一样重要,本文将继续前两篇文章中blog表的示例,介绍常用的Api。练习前的准备工作创建一个Maven工程,加入以下依赖:org.apache.hbasehbase0.90.2如果你的Maven库里还没有hbase,还需要配置下repository转载 2013-09-27 14:42:26 · 2311 阅读 · 0 评论 -
zookeeper
背景 前段时间看了S4流计算引擎,里面使用到了zookeeper进行集群管理,所以也就花了点时间研究了下zookeeper,不求看懂所有源码,但求了解其实现机制和原理,清楚其基本使用。这也是为后续hadoop,gridgain的分布式计算的产品。学习首先就是收集一些前人的一些学习资料和总结内容,方便自己快速入门。 这里罗列了几篇不错的文章: http://www.转载 2013-09-18 10:41:03 · 932 阅读 · 0 评论 -
mahout
What is Mahout, why need it? Mahout 是机器学习和数据挖掘的一个分布式框架,区别于其他的开源数据挖掘软件,它是基于hadoop之上的; 所以hadoop的优势就是Mahout的优势。官网http://mahout.apache.org/ 上说的Scalable就是指hadoop的可扩展性。Mahout用map-reduce实现了部分数据挖掘算法,解决了并行翻译 2013-09-16 21:02:30 · 965 阅读 · 0 评论 -
hadoop命令
基本文件命令hadoop fs -cmdcmd的命令通常与unix的命令相同,如 hadoop fs -ls查看列表hadoop fs -ls /查看目录结构hadoop fs -lsr /创建目录(root 是当前用户的目录)hadoop fs mkdir /user/root加入文件hadoop fs put example.txt翻译 2013-09-12 16:31:49 · 911 阅读 · 0 评论 -
StringTokenizer类的使用
StringTokenizer是一个用来分隔String的应用类,相当于VB的split函数。1.构造函数public StringTokenizer(String str)public StringTokenizer(String str, String delim)public StringTokenizer(String str, String delim, boolean翻译 2013-09-11 11:24:55 · 714 阅读 · 0 评论 -
Mahout下个性化推荐引擎Taste介绍
Taste是 Apache Mahout 提供的一个个性化推荐引擎的高效实现,该引擎基于java实现,可扩展性强,同时在mahout中对一些推荐算法进行了MapReduce编程模式转化,从而可以利用hadoop的分布式架构,提高推荐算法的性能。在Mahout0.5版本中的Taste, 实现了多种推荐算法,其中有最基本的基于用户的和基于内容的推荐算法,也有比较高效的SlopeOne算法,以及处于翻译 2013-10-22 10:14:47 · 1268 阅读 · 0 评论 -
Mahout源码目录说明
mahout项目是由多个子项目组成的,各子项目分别位于源码的不同目录下,下面对mahout的组成进行介绍:1、mahout-core:核心程序模块,位于/core目录下;2、mahout-math:在核心程序中使用的一些数据通用计算模块,位于/math目录下;3、mahout-utils:在核心程序中使用的一些通用的工具性模块,位于/utils目录下;上述三个部分是程序的主题,存储原创 2013-10-22 10:19:37 · 1079 阅读 · 0 评论 -
Apache Mahout的Taste基于Hadoop实现协同过滤推荐引擎的代码分析
Taste 是 Apache Mahout 提供的一个协同过滤算法的高效实现,它是一个基于Java实现的可扩展的高效的推荐引擎。该推荐引擎是用这样简单的数据格式表达用户对物品的偏好。以此为输入数据,计算后就可以得到为每个user推荐的items列表。他提供了方便的单机版的编程接口,也提供了基于hadoop的分布式的实现。单机版的编程接口主要适用于写demo和做算法的评估,若处理转载 2013-10-22 10:34:34 · 1102 阅读 · 0 评论 -
Linux安装R语言
首先服务器系统版本为centos5.6,R版本为2.13.2。下面是安装步骤:首先上传文件:rz -e1、解压文件:tar –zvxf R-2.13.2.tar.gz2、进入R源文件目录:cd R-2.13.23、执行./configure --prefix /home/work/R(--prefix是关键,R是自建文件夹)下面这些保留下来,暂时不用提示错误信息为“conf原创 2013-11-07 11:35:30 · 10576 阅读 · 0 评论