我是第一次使用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来对HDFS中已经存在的1 GB文件进行一定的计算。
如果我在我的主节点上进入火花壳: 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 使用完整的集群?
您需要集群管理器来管理主节点和工作服务器。你可以选择Spark独立或纱线或mesos集群管理器。我建议使用Spark独立的集群管理器而不是yarn来启动事情。
只是启动它,在所有节点上下载 Spark 发行版(针对 hadoop 预编译),并在 spark-env.sh 中设置 Hadoop 类路径和其他重要配置。
1) 使用/sbin/start-master.sh 启动主服务器
它将创建带有端口的 Web 界面(默认为 8080)。打开火花母版网页并收集页面中提到的火花母版 URI。
2)转到所有节点,包括机器U启动的主节点,并运行从机。
./sbin/start-slave.sh .
再次检查母版网页。它应该列出页面上的所有工作人员。如果未列出,则需要从日志中找出错误。
3)请检查机器具有的内核和内存,以及每个工人的主网页上显示的相同。如果它们不匹配,您可以使用命令来分配它们。
选择火花 1.5.2 或更高版本请遵循此处的详细信息
作为起点,如果您遇到任何错误,请告诉我,我可以为您提供帮助。