在 Sandbox 中使用 Drill
该模块涉及的知识点是关于 Apache Drill 的教程。在 Sandbox 中使用 Drill 并且启动 Sandbox,你可以打开另一个终端窗口(Linux)或是 CMD(Windows),然后使用 SSH 协议登录到虚拟机,前提需要安装好 SSH。使用以下用户名和密码登录:mapr/mapr。操作命令如下所示:
$ ssh mapr@localhost -p 2222
Password:
Last login: Mon Sep 15 13:46:08 2014 from 10.250.0.28
Welcome to your Mapr Demo virtual machine.
这里使用安全的 Shell 去替代虚拟机的接口是有好处的。你可以直接使用拷贝/粘贴,避免使用鼠标去控制。
Drill 包含连接到关系型数据库和执行 SQL 的命令。在 Sandbox 中,Drill Shell 是运行在嵌入式模式当中的。登录到 Sandbox 之后,使用 SQLLine 命令。出现 Drill 的 Shell 之后,你可以运行 Drill 查询。
[mapr@maprdemo ~]$ sqlline
apache drill 1.4.0
"Does your data know the Drill?"
0: jdbc:drill:>
在该教程中,你查询一个数据集,包含在文件系统中的 Hive,HBase,文本文件,例如 CSV,JSON 和 Parquet 文件。通过存储插件,你可以访问这些不同的数据源。
存储插件概述
你可以使用存储插件去连接数据源,例如一个文件或 Hive 元数据。你可以在 Drill Web 控制台中打开存储插件的定义内容。打开浏览器,然后输入:http://<IP address>:8047/storage
。
然后控制面板会出现以下存储插件。
你可以配置以下存储插件:
- cp
- dfs
- hive
- maprdb
- hbase
- mongo
点击更新按钮使配置生效。
如果你使用的是 Sandbox 中的 Drill,你可能需要注意对于同一个存储插件的配置是有所不同的。在 Sandbox 中配置 dfs,hive,maprdb 以及 hbase 存储插件的定义是运行在虚拟环境中的。
dfs
在dfs
存储插件的 Sandbox 中设置用于连接到 MapR 文件系统(MapR-FS)。当然,它也包含也去设置工作空间,每个属性所代表的含义如下所示:
- root:进入 root 文件系统的位置
- clicks:进入到嵌套 JSON 日志数据
- logs:进去到非嵌套 JSON 日志数据到目录和子目录
- views:在工作空间创建视图
对于 dfs
配置的定义格式,如下所示:
{
"type": "file",
"enabled": true,
"connection": "maprfs:///",
"workspaces": {
"root": {
"location": "/mapr/demo.mapr.com/data",
"writable": false,
"defaultInputFormat": null
},
"clicks": {
"location": "/mapr/demo.mapr.com/data/nested",
"writable": true,
"defaultInputFormat": "parquet"
},
"formats": {
"csv": {
"type": "text",
"extensions": [
"csv"
],
"delimiter": ","
},
"json": {
"type": "json"
},
"maprdb": {
"type": "maprdb"
}
maprdb
在 Sandbox 中配置 maprdb 用于 MapR-DB。你可以使用这种格式去查询 MapR-DB/HBase 表。
hive
在 Sandbox 中你需要配置 Hive 数据的仓库地址。Drill 连接 Hive 的元数据使用的是 元数据的 thrift URI 地址。配置元数据的 Hive 表将自动给用户提供查询功能。
{
"type": "hive",
"enabled": true,
"configProps": {
"hive.metastore.uris": "thrift://localhost:9083",
"hive.metastore.sasl.enabled": "false"
}
}