我有一个有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
2 回答
首先,你必须通过在spark-env.sh文件中设置env变量
HADOOP_CONF_DIR
让spark知道你的Hadoop配置在哪里然后,当启动
spark-shell
时,你必须告诉spark使用纱线作为主人:spark-shell --master yarn-client
有关更多信息,您可以看到spark with yarn docs
您需要单独启动集群;默认情况下,spark-shell在本地运行 .
您还需要在工作节点上安装spark二进制文件 .
有关启动自己的spark群集的文档,请参见此处:https://spark.apache.org/docs/latest/spark-standalone.html