spark sql 优化心得

 2023-09-10 阅读 18 评论 0

摘要:本篇文章主要记录最近在使用spark sql 时遇到的问题已经使用心得。 1 spark 2.0.1 中,启动thriftserver 或者是spark-sql时,如果希望spark-sql run on hdfs,那样需要增加参数 "--conf spark.sql.warehouse.dir=hdfs://HOSTNAME:9000/user/hive/

本篇文章主要记录最近在使用spark sql 时遇到的问题已经使用心得。

 

1 spark 2.0.1 中,启动thriftserver 或者是spark-sql时,如果希望spark-sql run on hdfs,那样需要增加参数 "--conf spark.sql.warehouse.dir=hdfs://HOSTNAME:9000/user/hive/warehouse"

例如启动thriftserver:

bin/start-thriftserver.sh --master spark://HOSTNAME:7077 --conf spark.sql.warehouse.dir=hdfs://HOSTNAME:9000/user/hive/warehouse --driver-memory 2g --executor-memory 35g

说明

    spark.sql.warehouse.dir 这个参数如果不指定,spark sql 会自动在SPARK_HOME 建立一个 spark-warehouse 目录,里面保存对应的数据

    driver-memory 参数为执行的app 所能使用的内存大小

    executor-memory 参数设置当前任务将占用spark 集群中每个worker的内存

    CORE 不指定的话,默认使用每个worker 所有的CPU 数目

 

2 如果spark sql 是run on hdfs,则用户在beeline中向其他的表写入数据时,会发生hfds权限异常错误

  解决方式是对hdfs 的权限设置进行关闭,在hadoop 2.7.3 版本中,关闭hdfs权限检查的参数为

  hdfs-site.xml

     <property><name>dfs.permissions.enabled</name><value>false</value></property>

 

3 spark sql 使用parquet 压缩方式,直接在beeline 执行类似sql 命令

CREATE TABLE parquetTable (name string)USING org.apache.spark.sql.parquetOPTIONS (path "examples/src/main/resources/users.parquet");

   或者

   CREATE TABLE parquetTable (name string)USING org.apache.spark.sql.parquet;

 

另外

如果使用sbin/stop-all.sh 命令,集群中还有一些Worker或者是Master 进程无法退出,一般是环境混乱了导致,kill -15 PID 即可

还有一种情况,如果用户在sbin/start-all.sh 后,发现spark 集群中莫名其妙多了几个Worker 或者 Master 进程,同理也是环境混乱了导致,用户只要 kill -15 PID 即可

彻底解决这种情况,用户应该首先对spark 集群进行停机

sbin/stop-all.sh

然后对没法停止的spark 进程进行kill -15 命令杀掉

最后用户需要手工删除集群中 /tmp/spark* 所有文件,保证环境干净。

如何进行sql优化,转载于:https://www.cnblogs.com/chenfool/p/6095381.html

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/4/33210.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息