2015-03-19 55 views
0

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

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

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

回答

1

如果您想使用YARN,则必须使用maven编译spark。有各种参数取决于你想要的支持(hadoop版本,配置单元兼容性等)。下面是参数的详细信息的链接:http://spark.apache.org/docs/1.2.1/building-spark.html

这里是我以前在Apache Hadoop的2.6.0安装与蜂巢支持火花命令:

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服务器。

+0

感谢您的回答,我想质疑您的观点之一,即“对于运行单个节点群集,您无需更改spark-env.sh”。如果是这种情况,怎么会知道我的haddoop /纱线位在哪里?或者在运行时间之前需要知道。 – 2015-03-19 20:54:09

+0

您可以简单地设置HADOOP_CONF_DIR或YARN_CONF_DIR。 Spark在设置方式方面提供了很大的灵活性,因此它不是强制性的,您可以将它设置为spark-env.sh。我通过profile.d中的shell脚本来设置它。更新了答案以澄清这一点。 – 2015-03-20 08:00:50

+0

@Jit_B你是如何正确配置查看Spark工作日志的?目前,当我运行SparkPi示例时,我点击链接http://localhost.localdomain:8088/cluster/app/application_ididididid中的“日志”按钮,它给了我一个错误,说“Container_idididid的重定向失败。尝试失败构造日志服务器的重定向url日志服务器url可能没有配置java.lang.Exception:未知的容器Container没有启动或者已经完成或者根本不属于这个节点。 – 2015-03-25 01:44:10