Storage Plugin Registration

You connect Drill to a file system, Hive, HBase, or other data source through a storage plugin. On the Storage tab of the Drill Web Console, you can view and reconfigure a storage plugin. If HTTPS support is not enabled (the default), go to http://<IP address>:8047/storage to view and configure a storage plugin. IP address is the host name or IP address of one of the installed Drillbits in a distributed system or localhost in an embedded system. If HTTPS support is enabled, go to https://<IP address>:8047/storage.

The Drill installation registers the cp, dfs, hbase, hive, and mongo default storage plugin configurations.

  • cp
    Points to JAR files in the Drill classpath, such as employee.json that you can query.
  • dfs
    Points to the local file system, but you can configure this storage plugin to point to any distributed file system, such as a Hadoop or S3 file system.
  • hbase
    Provides a connection to HBase.
  • hive
    Integrates Drill with the Hive metadata abstraction of files, HBase, and libraries to read data and operate on SerDes and UDFs.
  • mongo
    Provides a connection to MongoDB data.

In the Drill sandbox, the dfs storage plugin configuration connects you to a Hadoop environment pre-configured with Drill. If you install Drill, dfs connects you to the root of your file system.

Registering a Storage Plugin Configuration

To register a new storage plugin configuration, enter a storage name, click CREATE, provide a configuration in JSON format, and click UPDATE.

Storage Plugin Configuration Persistence

Drill saves storage plugin configurations in a temporary directory (embedded mode) or in ZooKeeper (distributed mode). For example, on Mac OS X, Drill uses /tmp/drill/sys.storage_plugins to store storage plugin configurations. The temporary directory clears when you reboot. When you run drill in embedded mode, add the sys.store.provider.local.path option to the drill-override.conf file and the path for storing the plugin configurations. For example:

 drill.exec: {
    cluster-id: "drillbits1",
    zk.connect: "localhost:2181",
    sys.store.provider.local.path="/mypath"
 }