在 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

然后控制面板会出现以下存储插件。

get2kno_plugin.png

你可以配置以下存储插件:

  • 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. }