spark-sql执行hivesql

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/a_hui_tai_lang/article/details/81990045

spark提交命令有spark-shell、spark-submit、spark-sql,spark-sql的提交命令很少见吧,不过已经被我发掘出来了。
我们执行hive命令一般都是

hive -e 'select * from xx'
或者 
hive -f /home/hadoop/xx.hql -d dt=2018-01-01

但是hive底层使用mr执行速度实在不忍直视,安装hive on spark又太麻烦了,怎么办呢?其实,spark也有基于hive执行sql脚本的提交任务方式,就是spark-sql

spark-sql --master yarn-client -e 'select * from xx'
spark-sql --master yarn-client  dt=2018-01-01 -f '/home/hadoop/xx.hql'

不过spark对机器内存性能要求很高,容易执行失败,如果spark-sql执行失败,出现内存溢出的情况,还是使用hive比较稳定。
这里spark-sql能查询到hive表是怎么配置的呢?只需要把hive-sit.xml复制到spark安装目录的conf目录下即可。
spark-sql缺点:执行语句insert overwrite table xx…在结果目录会有大量小文件,容易内存溢出执行失败

猜你喜欢

转载自blog.csdn.net/a_hui_tai_lang/article/details/81990045