我有一个包含4个节点的hadoop集群。我从存储在hdfs中的文件创建了一些配置单元表。然后我将mysql配置为hive Metastore并将hive-site.xml文件复制到spark的conf文件夹中。
为了启动hadoop集群,我启动了dfs和yarn.sh.然后我创建了hive表,现在我使用hivecontext从spark sql执行一些针对hive表的查询,如:
var hiveContext = new org.apache.spark.sql.hive.HiveContext(sc)
query = hiveContext.sql("select * from customers");
query.show
我的疑问是,在这种情况下,哪个集群管理器火花正在使用?是纱线吗?因为我用./start-yarn.sh
命令启动了纱线?或者我需要配置一些东西作为纱线,如果我没有使用另一个集群管理器作为deafult?
在您看来哪个群集更适合这种情况?还是它无动于衷?
答案 0 :(得分:2)
它会在spark-submit期间根据您的--master
使用您的本地,客户端或群集。
./bin/spark-submit \
--class myclass \
--master yarn \
--deploy-mode cluster \
--executor-memory 20G \
--num-executors 50 \
myapp.jar \
或者您可以在下面的代码中指定
val conf = new SparkConf()
.setMaster("yarn-cluster")
.setAppName("myapp")
val sc = new SparkContext(conf)
如果是spark-shell,
spark-shell --master yarn
默认情况下,我认为它使用本地模式。