小编Pou*_*ria的帖子

在独立模式下对分布式文件使用Spark Shell(CLI)

我在具有3台计算机的群集上以独立模式(不涉及YARN / HDFS-仅使用Spark)使用Spark 1.3.1。我有一个专用于主节点的节点(没有在其上运行的工作程序)和2个单独的工作程序节点。集群正常运行,我只是想通过spark-shell(CLI-我在主计算机上启动)运行一些简单的示例来测试我的安装:我只是将文件放在主节点上的localfs上(工人做了没有此文件的副本),我只是运行:

$SPARKHOME/bin/spark-shell

...

scala> val f = sc.textFile("file:///PATH/TO/LOCAL/FILE/ON/MASTER/FS/file.txt")

scala> f.count() 
Run Code Online (Sandbox Code Playgroud)

并正确返回单词计数结果。

我的问题是:

1)这与spark文档(使用外部数据集)所说的相矛盾:

“如果在本地文件系统上使用路径,则还必须在工作节点上的同一路径上访问该文件。要么将文件复制到所有工作者,要么使用网络安装的共享文件系统。”

我没有使用NFS,也没有将文件复制到worker,所以它如何工作?(是因为spark-shell并没有真正在集群上启动作业,而是在本地进行计算(这很奇怪,因为我没有在节点上运行任何工作程序,所以我在shell上启动了)

2)如果我想通过Spark的旧服务器对某些大数据文件(不适合一台机器)运行SQL脚本(以独立模式运行)(例如,在Hive中使用beeline或hiveserver2的方式),我是否需要将NFS上的文件,以便每个工作人员都可以看到整个文件,或者我可以从文件中创建块,然后将每个较小的块(可容纳在一台机器上)放在每个工作人员上,然后使用多个路径(将其全部传递给提交的查询?

apache-spark apache-spark-sql

5
推荐指数
1
解决办法
1402
查看次数

标签 统计

apache-spark ×1

apache-spark-sql ×1