如何在具有单节点(CentOS)Yarn集群的单机(CentOS)上安装spark

Posted

技术标签:

【中文标题】如何在具有单节点(CentOS)Yarn集群的单机(CentOS)上安装spark【英文标题】:How to install spark on a single machine(CentOS) which has single node(CentOS) Yarn cluster 【发布时间】:2015-03-19 01:36:17 【问题描述】:

作为一个 hadoop/Spark 初学者,我已经按照website 中的教程进行操作,并在我的单机(CentOS 6)上成功部署了一个 hadoop 框架。现在我想在同一台机器上安装 Spark 1.2,并让它与我机器上的单节点 Yarn 集群一起工作,这意味着在我的单机上存储在 hdfs 上的文件上执行 Spark SQL 并将结果输出到 hdfs。对于所需的其余步骤,我没有在线找到适合此场景的好的教程。

到目前为止我所做的是:(1) 从 Scala 官方网站下载 scala 2.9.3 并安装。 “scala -version”命令有效! (2) 从 Apache Spark 网站下载 Spark 1.2.1(为 Hadoop 2.4 或更高版本预构建)并已解压缩。

接下来要做什么?如何更改 Spark 目录中的哪个配置文件?有人可以提供一步一步的教程吗?特别是如何配置 spark-env.sh。越详细越好。谢谢! (如果您对我如何配置 hadoop 和 yarn 有疑问,我完全按照我之前提到的那个网站中列出的步骤进行操作)

【问题讨论】:

【参考方案1】:

如果你想使用 YARN,那么你必须使用 maven 编译 spark。根据您想要的支持(hadoop 版本、hive 兼容性等),有各种参数。这是参数详细信息的链接:http://spark.apache.org/docs/1.2.1/building-spark.html

这是我用来在 Apache Hadoop 2.6.0 上安装支持 hive 的 spark 的命令:

mvn -Pyarn -Phadoop-2.4 -Dhadoop.version=2.4 -Phive -Phive-0.12.0 -Phive-thriftserver -DskipTests clean package

对于运行单节点集群,您不需要更改 spark-env.sh。只需在您的环境中设置 HADOOP_CONF_DIR 或 YARN_CONF_DIR 就足够了。对于非纱线模式,您甚至不需要它。 spark-env.sh 允许在一个地方设置各种环境变量,因此您可以将 hadoop 配置、内存调整设置等放在一个地方。该模板有很好的文档记录。

只需使用 sbin 目录中的脚本启动集群组件(通常 start-all.sh 就足够了)。还有一点 - 如果您希望您的 sparkSQL 使用 Hive Metastore,那么您必须将 hive-site.xml 放在 conf 目录中,并将 hive.metastore.uris 的值设置为指向您的 Metastore 服务器。

【讨论】:

感谢您的回答,我想质疑您的一个观点,即“对于运行单节点集群,您不需要更改 spark-env.sh”。如果是这种情况,spark 怎么知道我的 haddoop/yarn 位在哪里?还是在运行时间之前需要知道。 您可以简单地设置 HADOOP_CONF_DIR 或 YARN_CONF_DIR。 Spark 在您如何设置它方面提供了很大的灵活性,因此您不必在 spark-env.sh 中设置它。我通过 profile.d 中的 shell 脚本设置它。更新了答案以澄清这一点。 @Jit_B 你是如何正确配置它以查看 spark 作业的日志的?目前,当我运行 SparkPi 示例时,我点击链接 localhost.localdomain:8088/cluster/app/application_ididididid 中的“日志”按钮,它给了我一个错误,提示“容器_idididid 重定向失败。尝试构建到日志服务器的重定向 url 失败。日志服务器url 可能未配置。java.lang.Exception: 未知容器。容器尚未启动或已完成或根本不属于此节点。" 可能有两个原因 - (1) 您的 SparkPi 没有使用 YARN 运行。检查 localhost.localdomain:8088/cluster/app 中的应用程序列表。 (2) 由于保留政策,您的 YARN 应用程序日志被删除。检查 yarn.nodemanager.log.retain-seconds 和 yarn.log-aggregation.retain-seconds。在我默认配置的 apache hadoop 安装日志中,几天后会被删除。 如果您确信 Spark 正在使用 YARN 运行作业,请检查 YARN 的日志目录配置

以上是关于如何在具有单节点(CentOS)Yarn集群的单机(CentOS)上安装spark的主要内容,如果未能解决你的问题,请参考以下文章

ETCD:单机单节点

redis集群安装2

2etcd单机部署和集群部署

Nifi05 Nifi单节点集群部署以及迁移

Nifi05 Nifi单节点集群部署以及迁移

Hadoop伪集群(单节点集群)安装(Centos7)