实时查询引擎 - Apache Drill 介绍与应用

Apache Drill是一个开源的分布式查询引擎,提供对大数据的实时查询能力,支持多种数据源如HDFS、HIVE、HBASE等,以及各种文件格式。 Drill采用无主节点设计,具备SQL接口,并能通过Drill Shell、WEB控制台、ODBC/JDBC等方式进行交互。安装Drill需要JDK 7、ZooKeeper和Hadoop集群。在使用中,Drill可以便捷地查询JSON、CSV、Parquet文件,也能直接查询HIVE表数据,但对某些数据类型如Decimal的处理仍存在一些问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. Drill是什么

  Apache drill是什么,脱去华丽的外衣,Apache Drill是一个能够对大数据进行实时的分布式查询引擎,目前它已经成为Apache的顶级项目。Drill是开源版本的Google Dremel。它以兼容ANSI SQL语法作为接口,支持对本地文件,HDFS,HIVE, HBASE,MongeDB作为存储的数据查询,文件格式支持Parquet,CSV, TSV,以及JSON这种无模式无关(schema-free)的数据。所有这些数据都可以像使用传统数据库的针对表查询一样进行快速实时的查询。

2. Drill结构

  Apache Drill是一个无主节点的分布式查询工具,每一个部署节点(Drillbit)都包含有以下核心模块:
Drill结构

  • RPC Endpoint: 基于RPC协议的客户端通信接口
  • SQL Parser: SQL解析工具,输出Logical plan, 它使用了开源工具:Calcite
  • Storage Engine interface: 面对多种数据源的统一读写抽象接口,它提供几种功能: 1.提供Metadata。 2.数据读写接口。3.数据定位和优化规则帮助提高查询效率。

  Drill提供以下几种类型的使用接口:

  • Drill Shell
  • Drill WEB控制台
  • ODBC/JDBC
  • C++ API
3. Drill安装

  Drill支持单机或分布式模块的Linux, Mac OS X, Windows系统的部署。本文的测试环境为基于CDH 5.5的Hadoop集群环境的安装和测试。ApacheDrill 版本: 1.8. Drill 的安装依赖于以下几个组件:

  • (必须)JDK 7
  • (必须)ZooKeeper quorum
  • (建议)Hadoop Cluster
  • (建议)使用DNS

  即然是基于已安装好的CDH 5.5环境,那么以上要求自然是完全满足的。(CDH5.5安装参考: 理清CDH Hadoop集群安装流程,剩下的就是安装Drill了:
 1. 解压Apache Drill(软件包的下载可以在Apache drill官网下到)

tar -xzvf apache-drill-1.8.0.tar.gz

 2. 更改配置文件
   更改目录 apache-drill-1.8.0/conf/drill-override.conf配置文件,如:

drill.exec: {
 cluster-id: "drillbits1", //集群唯一ID,可以默认
 zk.connect: "master:2181,slave2:2181,slave3:2181" //参考hdfs-site.xml的ha.zookeeper.quorum配置项值
}

 3. 配置Drill
  Drill默认使用4G Heap memory, 8G Direct Memory的配置,(自Drill 1.5后,Drill使用Driect Memory来分配查询内存,提高查询效率)。可以在apache-drill-1.8.0/conf/drill-env.sh文件中更改内存配置,如:

DRILL_MAX_DIRECT_MEMORY="8G"
DRILL_MAX_HEAP="4G"

 4. 启动Drill
  将配置完成后的 apache-drill-1.8.0 目录拷贝到每一个集群节点上,执行bin目录下的以下脚本启动Apache Drill:

./drillbits.sh start

 5. 连接到Drill
  Drill可以使用以下几方式进行命令行连接操作:

##使用drill-override.conf配置文件进行默认连接
./bin/drill-conf     #以下的查询测试都采用此方式进行连接
##使用命令行自己指定参数进行连接
./bin/sqlline -u jdbc:drill:schema=
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值