开启ORC查询加速

JindoTable提供Native ORC Reader,支持查询加速。系统默认不开启加速,开启之后可以提升Spark或Presto读取ORC文件的性能。

前提条件

ORC文件已存放至JindoFS或OSS。

说明

暂不支持HDFS加速。

提升Spark性能

  1. 开启JindoTable ORC加速。

    说明

    Spark调用读取ORC时,需要使用DataFrame或者Spark-SQL API来启用加速。

    • 全局设置

      详细请参见全局设置Spark

    • Job级别设置

      使用spark-shell或者spark-sql时可以添加Spark的启动参数。

      --conf spark.sql.extensions=io.delta.sql.DeltaSparkSessionExtension,com.aliyun.emr.sql.JindoTableExtension

      作业详情请参见Spark Shell作业配置Spark SQL作业配置

  2. 检查开启情况。

    1. 登录Spark History Server UI页面。

    2. 在Spark的SQL页面,查看执行任务。

      当出现JindoDataSourceV2Scan时,表示开启成功。否则,请排查步骤1中的操作。check_Jindo

提升Presto性能

因为Presto已经内置JindoTable ORC加速的catalog: hive-acc,所以您可以直接使用catalog: hive-acc来启用查询加速。

示例如下。

presto --server https://emr-header-1.cluster-xxx:7778/ --catalog hive-acc --schema default
说明

emr-header-1.cluster-xxx是emr-header-1节点的hostname。

全局设置Spark

  1. 进入Spark页面。

    1. 登录阿里云E-MapReduce控制台

    2. 在顶部菜单栏处,根据实际情况选择地域和资源组

    3. 单击上方的集群管理页签。

    4. 集群管理页面,单击相应集群所在行的详情

    5. 在左侧导航栏,选择集群服务 > Spark

  2. 在Spark服务页面,单击配置页签。

  3. 搜索参数spark.sql.extensions,修改参数值为io.delta.sql.DeltaSparkSessionExtension,com.aliyun.emr.sql.JindoTableExtension

  4. 保存配置。

    1. 单击保存

    2. 确认修改对话框中,输入执行原因,单击确定

  5. 重启ThriftServer。

    1. 在右上角选择操作 > 重启ThriftServer

    2. 执行集群操作对话框中,输入执行原因,单击确定

    3. 确认对话框中,单击确定