zoukankan      html  css  js  c++  java
  • Spark SQL ThriftServer

    Spark SQL ThriftServer

    启动命令

    默认情况下,Spark 日志目录 SPARK_LOG_DIR 指向 SPARK_HOME/logs,如因权限访问控制,可以通过显示设置环境变量 SPARK_LOG_DIR,将日志目录指向其它路径,如:

    export SPARK_LOG_DIR=/tmp/spark_client_logs
    

    启动

    /data0/spark/spark-2.2.1-bin/sbin/start-thriftserver.sh 
    --name spark_sql_thriftserver 
    --master yarn 
    --deploy-mode client 
    --driver-cores 3 
    --driver-memory 3g 
    --executor-cores 8 
    --executor-memory 20g 
    --num-executors 30 
    --hiveconf hive.server2.thrift.port=10000
    

    其中,deploy-mode 用于指定部署模式,ThriftServer仅支持 clienthive.server2.thrift.port 用于指定实例端口。

    终止命令

    /data0/spark/spark-2.2.1-bin/sbin/stop-thriftserver.sh
    

    Beeline

    beeline> !connect jdbc:hive2://{HOSTNAME}:{PORT}
    Connecting to jdbc:hive2://{HOSTNAME}:{PORT}
    Enter username for jdbc:hive2://{HOSTNAME}:{PORT}:{USERNAME}
    Enter password for jdbc:hive2://{HOSTNAME}:{PORT}:{PORT}
    

    其中,{HOSTNAME} 为ThriftServer实例域名或IP地址, {PORT} 为ThriftServer实例端口,{USERNAME} 为用户名,{PASSWORD} 为密码。

    公平调度

    默认情况下,Spark应用内部的多个 Job 使用 FIFO 模式进行调度,可能导致多租户场景下计算时延较高,可以启用 FAIR 调度模式(公平调度),使多个 JobTasks 之间使用 round bobin(轮询)的方式分配资源。

    使用公平调度模式需要经过以下2步:

    1. 开启公平调度器;
    --conf spark.scheduler.mode=FAIR
    
    1. 配置若干个资源池(Pool),以及每个资源池的调度模式(schedulingMode,FIFO或FAIR)、权重(weight)和最小资源量(minShare);

    资源池需要使用单独的文件进行配置:

    /usr/home/weibo_rd_dip/fairscheduler.xml
    
    <allocations>
      <pool name="default">
        <schedulingMode>FAIR</schedulingMode>
        <weight>1</weight>
        <minShare>10</minShare>
      </pool>
      <pool name="pro">
        <schedulingMode>FIFO</schedulingMode>
        <weight>10</weight>
        <minShare>10</minShare>
      </pool>
    </allocations>
    

    fairscheduler.xml 配置两个资源池:default和pro。其中,

    default

    调度模式:FAIR,公平调度;
    权重:1;
    最小资源量:10,CPU 10 Cores;

    pro

    调度模式:FIFO,先进先出,排队;
    权重:2,相较于default,可以使用2倍的资源;
    最小资源量:10,CPU 10 Cores;

     
    注意,公平调度器可以有多个资源池,且每个资源池使用不同的调度模式。

    使用Beeline时,应用默认提交至default,可以使用如下命令切换资源池:

    SET spark.sql.thriftserver.scheduler.pool=pro;
    

    启动命令示例:

    export SPARK_LOG_DIR=/tmp/spark_client_logs
    
    /data0/spark/spark-2.2.1-bin/sbin/start-thriftserver.sh 
    --name spark_sql_thriftserver 
    --master yarn 
    --deploy-mode client 
    --driver-cores 180 
    --driver-memory 3g 
    --executor-cores 8 
    --executor-memory 30g 
    --num-executors 30 
    --hiveconf hive.server2.thrift.port=10000 
    --conf spark.scheduler.mode=FAIR 
    --conf spark.scheduler.allocation.file=/usr/home/weibo_rd_dip/fairscheduler.xml
    
  • 相关阅读:
    bitcoin PoW原理及区块创建过程
    Hyperledger Fabric(v1.1.0)编译时遇到的问题
    Hyperledger Fabic中的Transaction流程
    mint linux 18.3 遇到“已安装的 post-installation 脚本 返回了错误号 127 ”问题的解决
    redis--解析字符串
    golang 统计uint64 数字二进制存储中1的数量
    c++ std 最小堆的使用 (用于实现top100之类的功能)
    Linux 信号signal处理函数
    Linux 信号signal处理机制
    LinuxMint 下 B站 番 blv 缓存 转 mp4
  • 原文地址:https://www.cnblogs.com/yurunmiao/p/12964959.html
Copyright © 2011-2022 走看看