Java 如何在本地模式下运行mahout kmeans算法
是否可以在本地运行mahout k mean java程序,以便从本地读取数据并将其保存回本地文件系统而不是hdfs。 互联网上的所有examles都在使用hdfsJava 如何在本地模式下运行mahout kmeans算法,java,hadoop,hdfs,mahout,Java,Hadoop,Hdfs,Mahout,是否可以在本地运行mahout k mean java程序,以便从本地读取数据并将其保存回本地文件系统而不是hdfs。 互联网上的所有examles都在使用hdfs 是的,这是可能的-签出序列FileWriter。请参见以下代码示例,该示例将集群数据点写入文件。这里有一篇文章详细描述了这一点: public static void writePointsToFile(List<Vector> points, S
是的,这是可能的-签出序列FileWriter。请参见以下代码示例,该示例将集群数据点写入文件。这里有一篇文章详细描述了这一点:
public static void writePointsToFile(List<Vector> points,
String fileName,
FileSystem fs,
Configuration conf) throws IOException {
Path path = new Path(fileName);
SequenceFile.Writer writer = new SequenceFile.Writer(fs, conf,
path, LongWritable.class, VectorWritable.class);
long recNum = 0;
VectorWritable vec = new VectorWritable();
for (Vector point : points) {
vec.set(point);
writer.append(new LongWritable(recNum++), vec);
}
writer.close();
}
publicstaticvoidwritepointstofile(列表点,
字符串文件名,
文件系统fs,
配置配置(conf)引发IOException{
路径路径=新路径(文件名);
SequenceFile.Writer Writer=新的SequenceFile.Writer(fs,conf,
路径,LongWritable.class,VectorWritable.class);
long recNum=0;
VectorWritable vec=新的VectorWritable();
对于(矢量点:点){
向量设定值(点);
append(新的LongWritable(recNum++),vec);
}
writer.close();
}
您正在使用路径类。。这不是要写在hdfs上吗?Path基于org.apache.hadoop.fs.Path。而且,无论是否写入本地文件系统,都是基于org.apache.hadoop.fs.filesystem的文件系统。如果使用本地配置进行初始化,文件将写入本地文件系统。具体的类RawLocalFileSystem将启用本地文件系统,或者使用默认配置,如:filesystem fs=new filesystem.get(new configuration())将使其使用本地文件系统。