0

我想在我在 VMWare 的 HDP 2.5 Sandbox 中运行的 Spark 程序中使用本地文本文件。

1)有没有什么拖拽的方式可以直接在VM的HDFS中获取呢?

2) 我可以使用 Zeppelin 导入它吗?如果是,那么如何获取在 Spark 中使用它的绝对路径(位置)?

3)还有其他方法吗?如果是,什么以及如何?

4

1 回答 1

0

要将数据导入 VM 内的 HDFS,您需要使用hdfs命令将文件从 VM 内的本地文件系统推送到 VM 内的 HDFS。该命令应类似于:

hadoop fs -put filename.log /my/hdfs/path

有关 HDFS 命令的更多信息,请参阅Hadoop 文件系统 Shell 命令

说到这里,当你使用 Apache Spark 时,你也可以参考本地文件系统而不是 HDFS。为此,您将使用file:///...代替hdfs://...。例如,要通过 Spark 访问 HDFS 中的文件,您通常可以运行如下命令:

val mobiletxt = sc.textFile("/data/filename.txt")

但您也可以访问 VM 的本地文件系统,例如:

val mobiletxt = sc.textFile("file:///home/user/data/filename.txt")

至于 Apache Zeppelin,这是一个与 Apache Spark(和其他系统)一起工作的笔记本界面;目前 Zeppelin 本身没有导入机制。相反,您将在笔记本中执行上述操作来访问 VM 的 HDFS 或本地文件系统。

于 2016-11-16T17:56:54.063 回答