【问题标题】:how to run mahout kmeans algorithm in local mode如何在本地模式下运行 mahout kmeans 算法
【发布时间】:2014-08-17 02:32:10
【问题描述】:

是否可以在本地运行 mahout k mean java 程序,以便从本地读取数据并将其保存回本地文件系统而不是 hdfs。 互联网上的所有考试都在使用 hdfs。

https://github.com/tdunning/MiA/blob/master/src/main/java/mia/clustering/ch07/SimpleKMeansClustering.java

【问题讨论】:

    标签: java hadoop hdfs mahout


    【解决方案1】:

    是的,有可能 - 签出 SequenceFileWriter。请参阅以下代码示例,该示例将聚集的数据点写入文件。这是一个blog 的帖子,非常详细地描述了这一点:

    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();
    }
    

    【讨论】:

    • 你在使用路径类..这不是要写在hdfs上吗?
    • 路径基于 org.apache.hadoop.fs.Path。而且,无论是否写入本地文件系统,都基于 org.apache.hadoop.fs.FileSystem 的 FileSystem。如果使用本地配置进行初始化,文件将被写入本地文件系统。具体类 RawLocalFileSystem 将启用本地文件系统,或默认配置如下: Filesystem fs = new FileSystem.get(new Configuration()) 将使其使用本地文件系统。
    猜你喜欢
    • 2013-08-05
    • 2013-04-13
    • 2016-12-13
    • 1970-01-01
    • 1970-01-01
    • 2011-10-24
    • 1970-01-01
    • 2013-06-03
    • 2018-02-02
    相关资源
    最近更新 更多