zoukankan      html  css  js  c++  java
  • Spark SQL 之 Performance Tuning & Distributed SQL Engine

    Spark SQL 之 Performance Tuning & Distributed SQL Engine


    转载请注明出处:http://www.cnblogs.com/BYRans/

    缓存数据至内存(Caching Data In Memory)

    Spark SQL可以通过调用sqlContext.cacheTable("tableName") 或者dataFrame.cache(),将表用一种柱状格式( an in­memory columnar format)缓存至内存中。然后Spark SQL在执行查询任务时,只需扫描必需的列,从而以减少扫描数据量、提高性能。通过缓存数据,Spark SQL还可以自动调节压缩,从而达到最小化内存使用率和降低GC压力的目的。调用sqlContext.uncacheTable("tableName")可将缓存的数据移出内存。

    可通过两种配置方式开启缓存数据功能:

    • 使用SQLContext的setConf方法
    • 执行SQL命令 SET key=value

    Cache-In-Memory

    调优参数(Other Configuration Options)

    可以通过配置下表中的参数调节Spark SQL的性能。在后续的Spark版本中将逐渐增强自动调优功能,下表中的参数在后续的版本中或许将不再需要配置。

    optionsTunningPfms

    分布式SQL引擎

    使用Spark SQL的JDBC/ODBC或者CLI,可以将Spark SQL作为一个分布式查询引擎。终端用户或应用不需要编写额外的代码,可以直接使用Spark SQL执行SQL查询。

    运行Thrift JDBC/ODBC服务

    这里运行的Thrift JDBC/ODBC服务与Hive 1.2.1中的HiveServer2一致。可以在Spark目录下执行如下命令来启动JDBC/ODBC服务:

    ./sbin/start-thriftserver.sh
    

    这个命令接收所有 bin/spark-submit 命令行参数,添加一个 --hiveconf 参数来指定Hive的属性。详细的参数说明请执行命令 ./sbin/start-thriftserver.sh --help
    服务默认监听端口为localhost:10000。有两种方式修改默认监听端口:

    • 修改环境变量:
    export HIVE_SERVER2_THRIFT_PORT=<listening-port>
    export HIVE_SERVER2_THRIFT_BIND_HOST=<listening-host>
    ./sbin/start-thriftserver.sh 
      --master <master-uri> 
      ...
    
    • 修改系统属性
    ./sbin/start-thriftserver.sh 
      --hiveconf hive.server2.thrift.port=<listening-port> 
      --hiveconf hive.server2.thrift.bind.host=<listening-host> 
      --master <master-uri>
      ...
    

    使用 beeline 来测试Thrift JDBC/ODBC服务:

    ./bin/beeline
    

    连接到Thrift JDBC/ODBC服务

    beeline> !connect jdbc:hive2://localhost:10000
    

    在非安全模式下,只需要输入机器上的一个用户名即可,无需密码。在安全模式下,beeline会要求输入用户名和密码。安全模式下的详细要求,请阅读beeline documentation的说明。

    配置Hive需要替换 conf/ 目录下的 hive-site.xml

    Thrift JDBC服务也支持通过HTTP传输发送thrift RPC messages。开启HTTP模式需要将下面的配参数配置到系统属性或 conf/: 下的 hive-site.xml

    hive.server2.transport.mode - Set this to value: http
    hive.server2.thrift.http.port - HTTP port number fo listen on; default is 10001
    hive.server2.http.endpoint - HTTP endpoint; default is cliservice
    

    测试http模式,可以使用beeline链接JDBC/ODBC服务:

    beeline> !connect jdbc:hive2://<host>:<port>/<database>?hive.server2.transport.mode=http;hive.server2.thrift.http.path=<http_endpoint>
    

    运行Spark SQL CLI

    Spark SQL CLI可以很方便的在本地运行Hive元数据服务以及从命令行执行查询任务。需要注意的是,Spark SQL CLI不能与Thrift JDBC服务交互。
    在Spark目录下执行如下命令启动Spark SQL CLI:

    ./bin/spark-sql
    

    配置Hive需要替换 conf/ 下的 hive-site.xml 。执行 ./bin/spark-sql --help 可查看详细的参数说明 。

  • 相关阅读:
    SpringMVC:拦截器拦截时机和原理
    SpringBoot:MessageConverter自动配置原理
    SpringMVC:返回值处理器原理和MessageConverter原理
    SpringMVC:自定义Converter
    XML-RPC协议学习
    ContentControl 与 ViewModel (一)
    C# 获取相对路径(绝对路径转相对路径)
    WPF 最简单的TextBox水印
    WPF/Silverlight开发的15个最佳实践(转发)
    WPF 打印崩溃问题( 异常:Illegal characters in path/路径中有非法字符)
  • 原文地址:https://www.cnblogs.com/BYRans/p/5046154.html
Copyright © 2011-2022 走看看