【问题标题】:How to run Spark Sql on a 10 Node cluster如何在 10 节点集群上运行 Spark Sql
【发布时间】:2016-03-08 14:26:16
【问题描述】:

我是第一次使用 spark。我在具有 10 个节点的集群上的 Hadoop 2.7 上设置了 spark。在我的主节点上,以下是正在运行的进程:

hduser@hadoop-master-mp:~$ jps
20102 ResourceManager
19736 DataNode
20264 NodeManager
24762 Master
19551 NameNode
24911 Worker
25423 Jps

现在,我想编写 Spark Sql 来对 1 GB 的文件进行某种计算,该文件已经存在于 HDFS 中。

如果我在我的主节点上进入 spark shell: spark-shell

并编写以下查询,它会在我的主节点上运行,还是将所有 10 个节点用作工作节点?

scala> sqlContext.sql("CREATE TABLE sample_07 (code string,description string,total_emp int,salary int) ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' STORED AS TextFile")

如果没有,我必须怎么做才能让我的 Spark Sql 使用完整的集群?

【问题讨论】:

标签: apache-spark apache-spark-sql


【解决方案1】:

您需要集群管理器来管理主节点和工作节点。您可以选择 spark 独立或 yarn 或 mesos 集群管理器。我建议使用 spark 独立集群管理器而不是 yarn 来启动这些东西。

要启动它, 在所有节点上下载spark分发(为hadoop预编译)并在spark-env.sh中设置Hadoop类路径和其他重要配置。

1) 使用 /sbin/start-master.sh 启动 master

它将创建带有端口(默认 8080)的 Web 界面。打开 spark master 网页,收集页面中提到的 spark master uri。

2) 转到所有节点,包括你启动 master 的机器,然后运行 ​​slave。

./sbin/start-slave.sh .

再次检查主网页。它应该列出页面上的所有工作人员。如果它没有列出,那么你需要从日志中找出错误。

3) 请检查机器拥有的内核和内存,以及每个工人的主网页上显示的相同。如果它们不匹配,您可以使用命令来分配它们。

使用 spark 1.5.2 或更高版本 请关注详情here

这只是一个起点,如果您遇到任何错误,请告诉我,我可以帮助您。

【讨论】:

  • @Thanks Srini,我已经在所有节点上安装了 Spark 并启动了集群,现在在网页上我可以看到我的 Master 和所有 Worker 都处于活动状态。我有一组 Spark Sql 查询需要在 HDFS 上存在的文件上并行执行,并且组合输出需要写入文件中。你能告诉我该怎么做吗?
  • 嗨,mayank。如果它解决了您的问题,请接受答案,这样它就不会出现在未回答的问题中。所以,要完成 SQL 语句,有两种方法 1)打开 spark-sql 并创建外部表并运行所有查询。在启动 spark-sql 时,请确保您提供了 --master 。并根据需要 --executor-memory 和核心。这将做 2) 创建 spark scala/Java 程序。读取程序中的文件并创建数据框并执行所需的查询。这需要您进行更多调查,您可以查看 spark sql web page for insteucst
猜你喜欢
  • 2017-01-08
  • 2023-01-23
  • 2021-05-18
  • 2013-02-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-13
  • 2020-10-31
相关资源
最近更新 更多