请问,为什么spark-sql里show tables有表,spark-submit提交job里没有表?

来源:7-8 -Hive和MySQL综合使用

YsMuMu

2018-06-21

因为课程里都是用 spark-sql --master local[2] 本地模式来操作的,我这边尝试用 spark://hadoop-web:7077 连接后发现有些问题


spark-sql --master spark://hadoop-web:7077

show tables

http://img.mukewang.com/szimg/5b2b1d870001b79517020974.jpg

有表数据,但是我在scala上:

val spark = SparkSession.builder().appName("HiveMysqlApp").master("spark://hadoop-web:7077").getOrCreate()
spark.sql("show tables").show()

本地执行后,一直没有结果:

http://img.mukewang.com/szimg/5b2b1bb20001401325061214.jpg

http://img.mukewang.com/szimg/5b2b1cd40001477224800660.jpg

18/06/21 11:27:26 WARN TaskSchedulerImpl: Initial job has not accepted any resources; check your cluster UI to ensure that workers are registered and have sufficient resources

看样子是在申请资源,看了他的状态是RUNNING,并不是WAITING。

然后我用 mvn clean package -DskipTest  把jar包放在虚拟机里面用:

[hadoop@hadoop-web bin]$ ./spark-submit --class com.spark.HiveMysqlApp --master spark://hadoop-web:7077 /home/hadoop/jar/sql-1.0.jar

http://img.mukewang.com/szimg/5b2b1d140001056421540912.jpg

又没有表了,请问这个是怎么回事?



写回答

1回答

Michael_PK

2018-06-21

1)你那个是没有资源能用了 2)你要在spark submit提交的时候你看下hivesite是否带上去了,如果没带上去肯定就没有表能给你访问到,因为spark取读取已有的数据是通过访问hivesite去访问的

0
3
Michael_PK
对,代码一定要用hive context,因为spark SQL或者shell默认就是hive context
2018-06-21
共3条回复

以慕课网日志分析为例 进入大数据Spark SQL的世界

快速转型大数据:Hadoop,Hive,SparkSQL步步为赢

1644 学习 · 1129 问题

查看课程