在 Sandbox 中使用 Drill
该模块涉及的知识点是关于 Apache Drill 的教程。在 Sandbox 中使用 Drill 并且启动 Sandbox,你可以打开另一个终端窗口(Linux)或是 CMD(Windows),然后使用 SSH 协议登录到虚拟机,前提需要安装好 SSH。使用以下用户名和密码登录:mapr/mapr。操作命令如下所示:
1. $ ssh mapr@localhost -p 2222
2. Password:
3. Last login: Mon Sep 15 13:46:08 2014 from 10.250.0.28
4. Welcome to your Mapr Demo virtual machine.
这里使用安全的 Shell 去替代虚拟机的接口是有好处的。你可以直接使用拷贝/粘贴,避免使用鼠标去控制。
Drill 包含连接到关系型数据库和执行 SQL 的命令。在 Sandbox 中,Drill Shell 是运行在嵌入式模式当中的。登录到 Sandbox 之后,使用 SQLLine 命令。出现 Drill 的 Shell 之后,你可以运行 Drill 查询。
1. [mapr@maprdemo ~]$ sqlline
2. apache drill 1.4.0
3. "Does your data know the Drill?"
4. 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 配置的定义格式,如下所示:
1. {
2. "type": "file",
3. "enabled": true,
4. "connection": "maprfs:///",
5. "workspaces": {
6. "root": {
7. "location": "/mapr/demo.mapr.com/data",
8. "writable": false,
9. "defaultInputFormat": null
10. },
11. "clicks": {
12. "location": "/mapr/demo.mapr.com/data/nested",
13. "writable": true,
14. "defaultInputFormat": "parquet"
15. },
16. "formats": {
17. "csv": {
18. "type": "text",
19. "extensions": [
20. "csv"
21. ],
22. "delimiter": ","
23. },
24. "json": {
25. "type": "json"
26. },
27. "maprdb": {
28. "type": "maprdb"
29. }
maprdb
在 Sandbox 中配置 maprdb 用于 MapR-DB。你可以使用这种格式去查询 MapR-DB/HBase 表。
hive
在 Sandbox 中你需要配置 Hive 数据的仓库地址。Drill 连接 Hive 的元数据使用的是 元数据的 thrift URI 地址。配置元数据的 Hive 表将自动给用户提供查询功能。
1. {
2. "type": "hive",
3. "enabled": true,
4. "configProps": {
5. "hive.metastore.uris": "thrift://localhost:9083",
6. "hive.metastore.sasl.enabled": "false"
7. }
8. }
