我有一个带有4个节点的hadoop集群(1master,3slaves)。我从存储在hdfs中的文件创建了一些配置单元表。然后我将mysql配置为hive Metastore并将hive-site.xml文件复制到spark的conf文件夹中。
要安装spark,我只需在主节点中下载并解压缩spark。在复制了spark conf文件夹中的hive-site.xml之后,我用spark-shell command
启动了spark。它还需要安装在从属节点吗?
我问这个因为,我执行成功spark下面的SQL查询,但如果我尝试访问localhost:8080中的集群管理器默认页面,它会显示"无法连接"。所以似乎spark sql工作正常,但没有任何集群管理器工作,这是可能的??
var hiveContext = new org.apache.spark.sql.hive.HiveContext(sc)
query = hiveContext.sql("select * from customers");
query.show()
主:8080
答案 0 :(得分:1)
您需要单独启动群集;默认情况下,spark-shell在本地运行。
您还需要在工作节点上安装spark二进制文件。
有关启动自己的spark群集的文档,请参阅此处:https://spark.apache.org/docs/latest/spark-standalone.html
答案 1 :(得分:1)
首先,您必须通过在spark-env.sh文件中设置env变量HADOOP_CONF_DIR
来让spark知道Hadoop配置的位置
然后,当启动spark-shell
时,你必须告诉spark使用纱线作为主人:
spark-shell --master yarn-client
有关详细信息,您可以看到spark with yarn docs