Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Opencv 我可以在不使用临时文件的情况下群集Accumulo数据吗?_Opencv_Mahout_Apache Spark_K Means_Accumulo - Fatal编程技术网

Opencv 我可以在不使用临时文件的情况下群集Accumulo数据吗?

Opencv 我可以在不使用临时文件的情况下群集Accumulo数据吗?,opencv,mahout,apache-spark,k-means,accumulo,Opencv,Mahout,Apache Spark,K Means,Accumulo,我想对Accumulo中的一些数据执行kmeans聚类。我的第一个想法是在ApacheMahout中使用kmeans集群,但是如果不使用临时文件,我很难将两者连接起来。据我所知,为了使用Mahout,我需要将Accumulo数据写入存储在HDFS中的一系列向量文件,然后使用Mahout对它们进行聚类,然后将结果写回Accumulo。Mahout入口点似乎都有指向目录的路径。虽然我还没有试过,但这看起来就像是一场性能噩梦。有更好的办法吗?或者,是否有其他kmeans集群库可以更轻松地连接到Accu

我想对Accumulo中的一些数据执行kmeans聚类。我的第一个想法是在ApacheMahout中使用kmeans集群,但是如果不使用临时文件,我很难将两者连接起来。据我所知,为了使用Mahout,我需要将Accumulo数据写入存储在HDFS中的一系列向量文件,然后使用Mahout对它们进行聚类,然后将结果写回Accumulo。Mahout入口点似乎都有指向目录的路径。虽然我还没有试过,但这看起来就像是一场性能噩梦。有更好的办法吗?或者,是否有其他kmeans集群库可以更轻松地连接到Accumulo?我现在正在研究opencv,但欢迎其他建议。

正如@George所建议的,我研究了ApacheSpark。这确实提供了一种在不使用临时文件的情况下执行kmeans群集的方法,因此:

导入org.apache.accumulo.core.client.mapreduce.AccumuloInputFormat; 导入org.apache.accumulo.core.data.Key; 导入org.apache.accumulo.core.data.Value; 导入org.apache.accumulo.core.security.Authorizations; 导入org.apache.hadoop.conf.Configuration; 导入org.apache.spark.api.java.javapairdd; 导入org.apache.spark.api.java.JavaRDD; 导入org.apache.spark.api.java.JavaSparkContext; 导入org.apache.spark.api.java.function.function; 导入org.apache.spark.mllib.clustering.KMeans; 导入org.apache.spark.mllib.clustering.KMeansModel; 导入org.apache.spark.mllib.linalg.Vector; 导入scala.Tuple2; 公共类ClusterAccumuloData { 公共静态无效字符串[]args { JavaSparkContext sc=新的JavaSparkContext群集, JobName, /spark/installation/directory, /path/to/jar/file/containing/this/class; Configuration conf=new Configuration;//据我所知,这就是我们所需要的一切。 Authorizations auths=您需要的新授权; AccumuloInputFormat.SetInputFoconf, accumulo_用户, 用户\u password.getBytes, accumulo_表名称, 作者; AccumuloInputFormat.setZooKeeperInstanceconf, accumulo_实例_名称, zookeeper_服务器_1、zookeeper_服务器_2; //调用其他AccumuloInputFormat函数,如setRanges或Additionor //将其配置为检索要群集的数据。 javapairdd accumuloRDD=sc.newapiHadooprdConf, AccumuloInputFormat.class, 关键级, 价值阶级; javard kmeansDataRDD= AccumolOrdd.mapnew函数 { 公共向量callTuple2 accumuloData { //将accumuloData转换为 //然后返回该向量。 } }; KMeansModel kmm=KMeans.trainjavard.torddkmeansdatard42,14,37; } }
你研究过使用Spark和Accumulo吗?我正在研究,@user1146334。如果我能在AccumuloInputFormat和RDD之间架起一座桥梁,我就可以走了。谢谢你的指针@user1146334,但我想我今天已经解决了。我应该能够通过调用RDD.map来使用JavaSparkContext.newapiHadooprDdf。如果这行得通,我会发布一个答案。目前我唯一的问题是处理数据集的一个意外特性。我很想看看你的解决方案,因为我自己也在考虑做类似的事情