今天给大家介绍一款低延迟(号称实时查询)的分布式查询引擎Apache Drill。
Drill是开源版本的Google Dremel,能够兼容ANSISQL语法作为接口,支持对本地文件,HDFS、HIVE、HBASE、MongeDB以及传统关系型数据库等作为存储的数据查询,文件格式支持Parquet,CSV,TSV,以及JSON等。所有这些数据在Drill中都可以像传统数据库一样进行快速的查询。
Apache Drill是一个无主节点的分布式查询工具,也就是说它并不存在单点故障的问题,其的核心是DrillBit的服务节点。Apache Drill的核心就是DrillBit服务,主要负责接收客户端请求,处理查询,并将结果返回给客户端。DrillBit可以运行在任何分布式的集群中,如果和Hadoop集群配合使用并运行在每个节点上时能够最大限度的实现数据本地化处理,从而提高处理效率。Apache的分布式部署和本地部署的差别不大,分布式部署相对于本地部署就是在不同的机器上启动了多个DrillBit服务。Apache Drill也是依赖于Zookeeper来进行协调的。
下面我们可以简单的体验一下
最简单的体验莫过于本地安装。在本地模式中只需要下载Drill的包即可使用。
1、下载对应的安装包http://www.apache.org/dyn/closer.lua?filename=drill/drill-1.11.0/apache-drill-1.11.0.tar.gz&action=download
2、解压: tar -xvf apache-drill-1.11.0.tar.gz
3、进入本地CmdLine : /bin/sqlline -u jdbc:drill:zk=local ,也可以/bin/drill-embedded;二者是一回事
如此简单步骤之后我们就可以进行Drill初体验,当然上述前提是你有一个Java的运行环境哟。
Drill的基本操作命令是不是看着很眼熟呢?如果觉得命令行模式不爽,Drill在还会在本地模式启动时候默认启动一个Web的控制台,访问地址是http://localhost:8047,在它上面可以执行操作、查看日志、配置等操作,相对还是比较贴心的哦。
对于分布式的安装,也像本地安装一样简单,需要做的就是配置修改 /conf/drill-override.conf的内容:
1、保持同一个Drill集群的cluster-id相同
2、配置一个安装好的Zookeeper集群
Apache Drill的起步就是如此的平稳简单,但是仅仅有一个本地平台有神马用处啊,我要查询的是数据,我的数据不在我自己机器上,在Hdfs、在Hive、在Mysql、在EveryWhere啊。别急,要想达到数据,我们还需要配置Storage。
Storage是Drill用来连接到各种数据源的一个配置模块,用来提供对数据位置、数据格式等的信息。Drill默认提供了一些常用的Storage的实现插件,我们需要做的就是根据我们自己的实际情况来配置使用。
1、打开web控制台,进入到Storage,选择对应的修改或新建添加
Hive:
{
"type": "hive",
"enabled": true,
"configProps": {
注:需要启动Hive的MetaStore服务
"hive.metastore.uris":"thrift://IP:端口",
"hive.metastore.sasl.enabled":"false"
}
}
HDFS的连接配置:
{
"type": "file",
"enabled": true,
注:如果是HA的配置,可将core-site.xml和hdfs-site.xml考本到Drill的conf目录下才可使用逻辑集群的名称
"connection": "hdfs://namenode的IP:端口/",
"config": null,
"workspaces": {
"root": {
注:具体访问的时候的文件路径是从location之后的部分
"location":"/test_data",
"writable": false,
"defaultInputFormat": null
},
"tmp": {
"location": "/tmp",
"writable": true,
"defaultInputFormat": null
}
},
"formats": {
"csv": {
"type": "text",
"extensions": [
"csv"
],
"extractHeader": true,
"delimiter": ","
}
}
}
配置完成后就可以
能够跨平台进行关联是不是也有点小方便呢~~
以上就是这次对Apache Drill的一个入门介绍,当然Apache Drill其实还是包含不少其他的内容的,比如权限管理、性能优化等等,这些以后再聊咯!
领取专属 10元无门槛券
私享最新 技术干货