使用Solr-spark和Alluxio编制索引:无法访问Alluxio中的文件

时间:2018-07-12 16:36:59

标签: java apache-spark solr solrj alluxio

我正在使用Java将文档索引到solr。当索引计算机中的文件时,我的代码可以正常工作。 但是,当我尝试索引位于alluxio中的文件时,出现了一个异常“没有用于方案的文件系统:alluxio”。我在pom中添加了alluxio依赖项。

代码如下:

public class SparkTestMain {

	public static void main(String[] args) {

	    


            new SparkRead().loadDocuments(
                    "alluxio://XXX.XXX.XXX.XX:19998/**/"       );

	}

}

在SparkRead中,我从文件路径进行索引:JavaRDD文档= sc.textFile(pathToFile),pathToFile =“ alluxio://XXX.XXX.XXX.XX:19998 / ** /”

这是错误:

Exception in thread "main" java.io.IOException: No FileSystem for scheme: http
	at org.apache.hadoop.fs.FileSystem.getFileSystemClass(FileSystem.java:2579)
	at org.apache.hadoop.fs.FileSystem.createFileSystem(FileSystem.java:2586)
	at org.apache.hadoop.fs.FileSystem.access$200(FileSystem.java:89)
	at org.apache.hadoop.fs.FileSystem$Cache.getInternal(FileSystem.java:2625)
	at org.apache.hadoop.fs.FileSystem$Cache.get(FileSystem.java:2607)
	at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:368)
	at org.apache.hadoop.fs.Path.getFileSystem(Path.java:296)
	at org.apache.hadoop.mapred.FileInputFormat.singleThreadedListStatus(FileInputFormat.java:256)
	at org.apache.hadoop.mapred.FileInputFormat.listStatus(FileInputFormat.java:228)
	at org.apache.hadoop.mapred.FileInputFormat.getSplits(FileInputFormat.java:313)
	at org.apache.spark.rdd.HadoopRDD.getPartitions(HadoopRDD.scala:200)
	...

1 个答案:

答案 0 :(得分:0)

这里是Alluxio项目网站上的doc,解释了为什么您可能会看到“没有用于方案的文件系统:alluxio”。

  

A:当您的应用程序(例如MapReduce,   Spark)尝试以兼容HDFS的文件系统访问Alluxio,但是   应用程序无法识别alluxio://方案。请   确保您的HDFS配置文件core-site.xml(默认情况下   hadoop安装或spark / conf /(如果您为此文件自定义)   Spark)具有以下属性:

<configuration>
  <property>
    <name>fs.alluxio.impl</name>
    <value>alluxio.hadoop.FileSystem</value>
  </property>
</configuration>

在您发布的错误消息中,我确实看到“没有用于方案的文件系统:http”,而不是“没有用于方案的文件系统:alluxio”。 “ http”是错字吗?