2016-08-03 239 views
0

大家好,我是reqmnt從http://10.3.9.34:9900/messages是從http://10.3.9.34:9900/messages提取數據,並把這些數據在HDFS位置/user/cloudera/flume和HDFS創建使用的Tableau或色調UI分析報告創建Analytics(分析)創建從http Analytics(分析)。我用下面的代碼試圖在CDH5.5的火花外殼,但正是Scala控制檯無法從HTTP鏈接使用火花流

import org.apache.spark.SparkContext 
val dataRDD = sc.textFile("http://10.3.9.34:9900/messages") 
dataRDD.collect().foreach(println) 
dataRDD.count() 
dataRDD.saveAsTextFile("/user/cloudera/flume") 

我得到以下錯誤在斯卡拉控制檯獲取數據:

java.io. IOException異常:沒有文件系統的方案:在 org.apache.hadoop.fs.FileSystem.createFileSystem(FileSystem.java:2637)HTTP在 org.apache.hadoop.fs.FileSystem.getFileSystemClass(FileSystem.java:2623) at org.apache.hadoop.fs.FileSystem.access $ 200(FileSystem.java:93)at org.apache.hadoop.fs.FileS ystem $ Cache.getInternal(FileSystem.java:2680) at org.apache.hadoop.fs.FileSystem $ Cache.get(FileSystem.java:2662)at org.apache.hadoop.fs.FileSystem.get(FileSystem。 Java的:379)在 org.apache.hadoop.fs.Path.getFileSystem(Path.java:296)

回答

2

您不能使用HTTP端點作爲輸入,它需要一個文件系統,如HDFSS3local

您需要一個單獨的進程,從這個端點提取數據,可能使用類似Apache NiFi的數據將數據着陸到文件系統,然後將其用作Spark的輸入。

+1

謝謝,我能夠使用scala代碼從http套接字中提取數據,這裏是代碼導入org.apache.spark.SparkContext val data = scala.io.Source.fromURL(「http://10.3。 9.34:9900/merged「)。mkString val list = data.split(」\ n「)。filter(_!=」「) val rdds = sc.parallelize(list) rdds.saveAsTextFile(」/ user/Cloudera的/火花「) –