http://git-wip-us.apache.org/repos/asf/drill-site/blob/1ad4d1a8/docs/using-jpam-as-the-pam-authenticator/index.html
----------------------------------------------------------------------
diff --git a/docs/using-jpam-as-the-pam-authenticator/index.html
b/docs/using-jpam-as-the-pam-authenticator/index.html
new file mode 100644
index 0000000..0780618
--- /dev/null
+++ b/docs/using-jpam-as-the-pam-authenticator/index.html
@@ -0,0 +1,1222 @@
+<!DOCTYPE html>
+<html>
+
+<head>
+
+<meta charset="UTF-8">
+<meta name=viewport content="width=device-width, initial-scale=1">
+
+
+<title>Using jpam as the PAM Authenticator - Apache Drill</title>
+
+<link
href="//maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css"
rel="stylesheet" type="text/css"/>
+<link href='//fonts.googleapis.com/css?family=PT+Sans' rel='stylesheet'
type='text/css'/>
+<link href="/css/site.css" rel="stylesheet" type="text/css"/>
+
+<link rel="shortcut icon" href="/favicon.ico" type="image/x-icon"/>
+<link rel="icon" href="/favicon.ico" type="image/x-icon"/>
+
+<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"
language="javascript" type="text/javascript"></script>
+<script
src="//cdnjs.cloudflare.com/ajax/libs/jquery-easing/1.3/jquery.easing.min.js"
language="javascript" type="text/javascript"></script>
+<script language="javascript" type="text/javascript"
src="/js/modernizr.custom.js"></script>
+<script language="javascript" type="text/javascript"
src="/js/script.js"></script>
+<script language="javascript" type="text/javascript"
src="/js/drill.js"></script>
+
+</head>
+
+
+<body onResize="resized();">
+ <div class="page-wrap">
+ <div class="bui"></div>
+
+<div id="menu" class="mw">
+<ul>
+ <li class='toc-categories'>
+ <a class="expand-toc-icon" href="javascript:void(0);"><i class="fa
fa-bars"></i></a>
+ </li>
+ <li class="logo"><a href="/"></a></li>
+ <li class='expand-menu'>
+ <a href="javascript:void(0);"><span class='menu-text'>Menu</span><span
class='expand-icon'><i class="fa fa-bars"></i></span></a>
+ </li>
+ <li class='clear-float'></li>
+ <li class="documentation-menu">
+ <a href="/docs/">Documentation</a>
+ <ul>
+
+ <li><a href="/docs/getting-started/">Getting Started</a></li>
+
+ <li><a href="/docs/architecture/">Architecture</a></li>
+
+ <li><a href="/docs/tutorials/">Tutorials</a></li>
+
+ <li><a href="/docs/install-drill/">Install Drill</a></li>
+
+ <li><a href="/docs/configure-drill/">Configure Drill</a></li>
+
+ <li><a href="/docs/connect-a-data-source/">Connect a Data
Source</a></li>
+
+ <li><a href="/docs/odbc-jdbc-interfaces/">ODBC/JDBC Interfaces</a></li>
+
+ <li><a href="/docs/query-data/">Query Data</a></li>
+
+ <li><a href="/docs/performance-tuning/">Performance Tuning</a></li>
+
+ <li><a href="/docs/log-and-debug/">Log and Debug</a></li>
+
+ <li><a href="/docs/sql-reference/">SQL Reference</a></li>
+
+ <li><a href="/docs/data-sources-and-file-formats/">Data Sources and
File Formats</a></li>
+
+ <li><a href="/docs/develop-custom-functions/">Develop Custom
Functions</a></li>
+
+ <li><a href="/docs/troubleshooting/">Troubleshooting</a></li>
+
+ <li><a href="/docs/developer-information/">Developer
Information</a></li>
+
+ <li><a href="/docs/release-notes/">Release Notes</a></li>
+
+ <li><a href="/docs/sample-datasets/">Sample Datasets</a></li>
+
+ <li><a href="/docs/project-bylaws/">Project Bylaws</a></li>
+
+ </ul>
+ </li>
+ <li class='nav'>
+ <a href="/community-resources/">Community</a>
+ <ul>
+ <li><a href="/team/">Team</a></li>
+ <li><a href="/mailinglists/">Mailing Lists</a></li>
+ <li><a href="/community-resources/">Community Resources</a></li>
+ </ul>
+ </li>
+ <li class='nav'><a href="/faq/">FAQ</a></li>
+ <li class='nav'><a href="/blog/">Blog</a></li>
+ <li id="twitter-menu-item"><a href="https://twitter.com/apachedrill"
title="apachedrill on twitter" target="_blank"><img
src="/images/twitter_32_26_white.png" alt="twitter logo" align="center"></a>
</li>
+ <li class='search-bar'>
+ <form id="drill-search-form">
+ <input type="text" placeholder="Search Apache Drill"
id="drill-search-term" />
+ <button type="submit">
+ <i class="fa fa-search"></i>
+ </button>
+ </form>
+ </li>
+ <li class="d">
+ <a href="/download/">
+ <i class="fa fa-cloud-download"></i> Download
+ </a>
+ </li>
+</ul>
+</div>
+
+ <link href="/css/content.css" rel="stylesheet" type="text/css">
+
+
+
+
+
+
+
+<aside class="sidebar">
+ <div class="docsidebar">
+ <div class="docsidebarwrapper">
+ <ul style="display: block;">
+
+
+ <li class="toctree-l1"><a href="javascript: void(0);">Getting
Started</a></li>
+ <ul style="display: none">
+
+
+ <li class="toctree-l2"><a class="reference internal"
href="/docs/drill-introduction/">Drill Introduction</a></li>
+
+
+
+ <li class="toctree-l2"><a class="reference internal"
href="/docs/why-drill/">Why Drill</a></li>
+
+
+ </ul>
+
+
+
+ <li class="toctree-l1"><a href="javascript:
void(0);">Architecture</a></li>
+ <ul style="display: none">
+
+
+ <li class="toctree-l2"><a class="reference internal"
href="/docs/architecture-introduction/">Architecture Introduction</a></li>
+
+
+
+ <li class="toctree-l2"><a class="reference internal"
href="/docs/drill-query-execution/">Drill Query Execution</a></li>
+
+
+
+ <li class="toctree-l2"><a class="reference internal"
href="/docs/core-modules/">Core Modules</a></li>
+
+
+
+ <li class="toctree-l2"><a class="reference internal"
href="/docs/performance/">Performance</a></li>
+
+
+ </ul>
+
+
+
+ <li class="toctree-l1"><a href="javascript:
void(0);">Tutorials</a></li>
+ <ul style="display: none">
+
+
+ <li class="toctree-l2"><a class="reference internal"
href="/docs/tutorials-introduction/">Tutorials Introduction</a></li>
+
+
+
+ <li class="toctree-l2"><a class="reference internal"
href="/docs/drill-in-10-minutes/">Drill in 10 Minutes</a></li>
+
+
+
+ <li class="toctree-l2"><a class="reference internal"
href="/docs/analyzing-the-yelp-academic-dataset/">Analyzing the Yelp Academic
Dataset</a></li>
+
+
+
+ <li class="toctree-l2"><a href="javascript: void(0);">Learn
Drill with the MapR Sandbox</a></li>
+ <ul style="display: none">
+
+ <li class="toctree-l3"><a class="reference internal"
href="/docs/about-the-mapr-sandbox/">About the MapR Sandbox</a></li>
+
+ <li class="toctree-l3"><a class="reference internal"
href="/docs/installing-the-apache-drill-sandbox/">Installing the Apache Drill
Sandbox</a></li>
+
+ <li class="toctree-l3"><a class="reference internal"
href="/docs/getting-to-know-the-drill-sandbox/">Getting to Know the Drill
Sandbox</a></li>
+
+ <li class="toctree-l3"><a class="reference internal"
href="/docs/lesson-1-learn-about-the-data-set/">Lesson 1: Learn about the Data
Set</a></li>
+
+ <li class="toctree-l3"><a class="reference internal"
href="/docs/lesson-2-run-queries-with-ansi-sql/">Lesson 2: Run Queries with
ANSI SQL</a></li>
+
+ <li class="toctree-l3"><a class="reference internal"
href="/docs/lesson-3-run-queries-on-complex-data-types/">Lesson 3: Run Queries
on Complex Data Types</a></li>
+
+ <li class="toctree-l3"><a class="reference internal"
href="/docs/summary/">Summary</a></li>
+
+ </ul>
+
+
+
+ <li class="toctree-l2"><a class="reference internal"
href="/docs/analyzing-highly-dynamic-datasets/">Analyzing Highly Dynamic
Datasets</a></li>
+
+
+
+ <li class="toctree-l2"><a class="reference internal"
href="/docs/analyzing-social-media/">Analyzing Social Media</a></li>
+
+
+
+ <li class="toctree-l2"><a class="reference internal"
href="/docs/analyzing-data-using-window-functions/">Analyzing Data Using Window
Functions</a></li>
+
+
+ </ul>
+
+
+
+ <li class="toctree-l1"><a href="javascript: void(0);">Install
Drill</a></li>
+ <ul style="display: none">
+
+
+ <li class="toctree-l2"><a class="reference internal"
href="/docs/install-drill-introduction/">Install Drill Introduction</a></li>
+
+
+
+ <li class="toctree-l2"><a class="reference internal"
href="/docs/migrating-parquet-data/">Migrating Parquet Data</a></li>
+
+
+
+ <li class="toctree-l2"><a href="javascript: void(0);">Installing
Drill in Embedded Mode</a></li>
+ <ul style="display: none">
+
+ <li class="toctree-l3"><a class="reference internal"
href="/docs/embedded-mode-prerequisites/">Embedded Mode Prerequisites</a></li>
+
+ <li class="toctree-l3"><a class="reference internal"
href="/docs/installing-drill-on-linux-and-mac-os-x/">Installing Drill on Linux
and Mac OS X</a></li>
+
+ <li class="toctree-l3"><a class="reference internal"
href="/docs/starting-drill-on-linux-and-mac-os-x/">Starting Drill on Linux and
Mac OS X</a></li>
+
+ <li class="toctree-l3"><a class="reference internal"
href="/docs/installing-drill-on-windows/">Installing Drill on Windows</a></li>
+
+ <li class="toctree-l3"><a class="reference internal"
href="/docs/starting-drill-on-windows/">Starting Drill on Windows</a></li>
+
+ </ul>
+
+
+
+ <li class="toctree-l2"><a href="javascript: void(0);">Installing
Drill in Distributed Mode</a></li>
+ <ul style="display: none">
+
+ <li class="toctree-l3"><a class="reference internal"
href="/docs/distributed-mode-prerequisites/">Distributed Mode
Prerequisites</a></li>
+
+ <li class="toctree-l3"><a class="reference internal"
href="/docs/installing-drill-on-the-cluster/">Installing Drill on the
Cluster</a></li>
+
+ <li class="toctree-l3"><a class="reference internal"
href="/docs/starting-drill-in-distributed-mode/">Starting Drill in Distributed
Mode</a></li>
+
+ </ul>
+
+
+
+ <li class="toctree-l2"><a class="reference internal"
href="/docs/starting-the-web-console/">Starting the Web Console</a></li>
+
+
+
+ <li class="toctree-l2"><a class="reference internal"
href="/docs/identifying-multiple-drill-versions-in-a-cluster/">Identifying
Multiple Drill Versions in a Cluster</a></li>
+
+
+ </ul>
+
+
+
+ <li class="toctree-l1 current_section "><a href="javascript:
void(0);">Configure Drill</a></li>
+ <ul class="current_section">
+
+
+ <li class="toctree-l2"><a class="reference internal"
href="/docs/configure-drill-introduction/">Configure Drill Introduction</a></li>
+
+
+
+ <li class="toctree-l2"><a class="reference internal"
href="/docs/configuring-drill-memory/">Configuring Drill Memory</a></li>
+
+
+
+ <li class="toctree-l2"><a href="javascript: void(0);">Securing
Drill</a></li>
+ <ul style="">
+
+ <li class="toctree-l3"><a class="reference internal"
href="/docs/securing-drill-introduction/">Securing Drill Introduction</a></li>
+
+ <li class="toctree-l3"><a class="reference internal"
href="/docs/secure-communication-paths/">Secure Communication Paths</a></li>
+
+ <li class="toctree-l3"><a class="reference internal"
href="/docs/roles-and-privileges/">Roles and Privileges</a></li>
+
+ <li class="toctree-l3"><a class="reference internal"
href="/docs/configuring-user-impersonation/">Configuring User
Impersonation</a></li>
+
+ <li class="toctree-l3"><a class="reference internal"
href="/docs/configuring-inbound-impersonation/">Configuring Inbound
Impersonation</a></li>
+
+ <li class="toctree-l3"><a class="reference internal"
href="/docs/configuring-user-impersonation-with-hive-authorization/">Configuring
User Impersonation with Hive Authorization</a></li>
+
+ <li class="toctree-l3"><a class="reference internal"
href="/docs/configuring-user-security/">Configuring User Security</a></li>
+
+ <li class="toctree-l3"><a class="reference internal"
href="/docs/configuring-plain-security/">Configuring Plain Security</a></li>
+
+ <li class="toctree-l3"><a class="reference internal"
href="/docs/using-libpam4j-as-the-pam-authenticator/">Using libpam4j as the PAM
Authenticator</a></li>
+
+ <li class="toctree-l3 current"><a class="reference internal"
href="/docs/using-jpam-as-the-pam-authenticator/">Using jpam as the PAM
Authenticator</a></li>
+
+ <li class="toctree-l3"><a class="reference internal"
href="/docs/configuring-kerberos-security/">Configuring Kerberos
Security</a></li>
+
+ <li class="toctree-l3"><a class="reference internal"
href="/docs/configuring-web-console-and-rest-api-security/">Configuring Web
Console and REST API Security</a></li>
+
+ </ul>
+
+
+
+ <li class="toctree-l2"><a href="javascript:
void(0);">Configuring a Multitenant Cluster</a></li>
+ <ul style="display: none">
+
+ <li class="toctree-l3"><a class="reference internal"
href="/docs/configuring-a-multitenant-cluster-introduction/">Configuring a
Multitenant Cluster Introduction</a></li>
+
+ <li class="toctree-l3"><a class="reference internal"
href="/docs/configuring-multitenant-resources/">Configuring Multitenant
Resources</a></li>
+
+ <li class="toctree-l3"><a class="reference internal"
href="/docs/configuring-resources-for-a-shared-drillbit/">Configuring Resources
for a Shared Drillbit</a></li>
+
+ </ul>
+
+
+
+ <li class="toctree-l2"><a href="javascript:
void(0);">Configuration Options</a></li>
+ <ul style="display: none">
+
+ <li class="toctree-l3"><a class="reference internal"
href="/docs/configuration-options-introduction/">Configuration Options
Introduction</a></li>
+
+ <li class="toctree-l3"><a class="reference internal"
href="/docs/start-up-options/">Start-Up Options</a></li>
+
+ <li class="toctree-l3"><a class="reference internal"
href="/docs/planning-and-execution-options/">Planning and Execution
Options</a></li>
+
+ <li class="toctree-l3"><a class="reference internal"
href="/docs/persistent-configuration-storage/">Persistent Configuration
Storage</a></li>
+
+ </ul>
+
+
+
+ <li class="toctree-l2"><a class="reference internal"
href="/docs/ports-used-by-drill/">Ports Used by Drill</a></li>
+
+
+
+ <li class="toctree-l2"><a class="reference internal"
href="/docs/configuring-the-drill-shell/">Configuring the Drill Shell</a></li>
+
+
+ </ul>
+
+
+
+ <li class="toctree-l1"><a href="javascript: void(0);">Connect a Data
Source</a></li>
+ <ul style="display: none">
+
+
+ <li class="toctree-l2"><a class="reference internal"
href="/docs/connect-a-data-source-introduction/">Connect a Data Source
Introduction</a></li>
+
+
+
+ <li class="toctree-l2"><a class="reference internal"
href="/docs/storage-plugin-registration/">Storage Plugin Registration</a></li>
+
+
+
+ <li class="toctree-l2"><a href="javascript: void(0);">Storage
Plugin Configuration</a></li>
+ <ul style="display: none">
+
+ <li class="toctree-l3"><a class="reference internal"
href="/docs/plugin-configuration-basics/">Plugin Configuration Basics</a></li>
+
+ <li class="toctree-l3"><a class="reference internal"
href="/docs/workspaces/">Workspaces</a></li>
+
+ <li class="toctree-l3"><a class="reference internal"
href="/docs/drill-default-input-format/">Drill Default Input Format</a></li>
+
+ </ul>
+
+
+
+ <li class="toctree-l2"><a class="reference internal"
href="/docs/file-system-storage-plugin/">File System Storage Plugin</a></li>
+
+
+
+ <li class="toctree-l2"><a class="reference internal"
href="/docs/hbase-storage-plugin/">HBase Storage Plugin</a></li>
+
+
+
+ <li class="toctree-l2"><a class="reference internal"
href="/docs/hive-storage-plugin/">Hive Storage Plugin</a></li>
+
+
+
+ <li class="toctree-l2"><a class="reference internal"
href="/docs/rdbms-storage-plugin/">RDBMS Storage Plugin</a></li>
+
+
+
+ <li class="toctree-l2"><a class="reference internal"
href="/docs/mongodb-storage-plugin/">MongoDB Storage Plugin</a></li>
+
+
+
+ <li class="toctree-l2"><a class="reference internal"
href="/docs/mapr-db-format/">MapR-DB Format</a></li>
+
+
+
+ <li class="toctree-l2"><a class="reference internal"
href="/docs/s3-storage-plugin/">S3 Storage Plugin</a></li>
+
+
+
+ <li class="toctree-l2"><a class="reference internal"
href="/docs/httpd-storage-plugin/">HTTPD Storage Plugin</a></li>
+
+
+ </ul>
+
+
+
+ <li class="toctree-l1"><a href="javascript: void(0);">ODBC/JDBC
Interfaces</a></li>
+ <ul style="display: none">
+
+
+ <li class="toctree-l2"><a class="reference internal"
href="/docs/interfaces-introduction/">Interfaces Introduction</a></li>
+
+
+
+ <li class="toctree-l2"><a class="reference internal"
href="/docs/using-the-jdbc-driver/">Using the JDBC Driver</a></li>
+
+
+
+ <li class="toctree-l2"><a class="reference internal"
href="/docs/using-jdbc-with-squirrel-on-windows/">Using JDBC with SQuirreL on
Windows</a></li>
+
+
+
+ <li class="toctree-l2"><a href="javascript: void(0);">Installing
the ODBC Driver</a></li>
+ <ul style="display: none">
+
+ <li class="toctree-l3"><a class="reference internal"
href="/docs/installing-the-driver-on-linux/">Installing the Driver on
Linux</a></li>
+
+ <li class="toctree-l3"><a class="reference internal"
href="/docs/installing-the-driver-on-mac-os-x/">Installing the Driver on Mac OS
X</a></li>
+
+ <li class="toctree-l3"><a class="reference internal"
href="/docs/installing-the-driver-on-windows/">Installing the Driver on
Windows</a></li>
+
+ </ul>
+
+
+
+ <li class="toctree-l2"><a href="javascript:
void(0);">Configuring ODBC</a></li>
+ <ul style="display: none">
+
+ <li class="toctree-l3"><a class="reference internal"
href="/docs/odbc-configuration-reference/">ODBC Configuration Reference</a></li>
+
+ <li class="toctree-l3"><a class="reference internal"
href="/docs/logging-and-tracing/">Logging and Tracing</a></li>
+
+ <li class="toctree-l3"><a class="reference internal"
href="/docs/configuring-odbc-on-linux/">Configuring ODBC on Linux</a></li>
+
+ <li class="toctree-l3"><a class="reference internal"
href="/docs/configuring-odbc-on-mac-os-x/">Configuring ODBC on Mac OS X</a></li>
+
+ <li class="toctree-l3"><a class="reference internal"
href="/docs/configuring-odbc-on-windows/">Configuring ODBC on Windows</a></li>
+
+ <li class="toctree-l3"><a class="reference internal"
href="/docs/testing-the-odbc-connection/">Testing the ODBC Connection</a></li>
+
+ </ul>
+
+
+
+ <li class="toctree-l2"><a href="javascript: void(0);">Using
Drill Explorer</a></li>
+ <ul style="display: none">
+
+ <li class="toctree-l3"><a class="reference internal"
href="/docs/drill-explorer-introduction/">Drill Explorer Introduction</a></li>
+
+ <li class="toctree-l3"><a class="reference internal"
href="/docs/connecting-drill-explorer-to-data/">Connecting Drill Explorer to
Data</a></li>
+
+ <li class="toctree-l3"><a class="reference internal"
href="/docs/browsing-data-and-defining-views/">Browsing Data and Defining
Views</a></li>
+
+ </ul>
+
+
+
+ <li class="toctree-l2"><a href="javascript: void(0);">Using
Drill with BI Tools</a></li>
+ <ul style="display: none">
+
+ <li class="toctree-l3"><a class="reference internal"
href="/docs/using-drill-with-bi-tools-introduction/">Using Drill with BI Tools
Introduction</a></li>
+
+ <li class="toctree-l3"><a class="reference internal"
href="/docs/tableau-examples/">Tableau Examples</a></li>
+
+ <li class="toctree-l3"><a class="reference internal"
href="/docs/using-microstrategy-analytics-with-apache-drill/">Using
MicroStrategy Analytics with Apache Drill</a></li>
+
+ <li class="toctree-l3"><a class="reference internal"
href="/docs/using-tibco-spotfire-desktop-with-drill/">Using Tibco Spotfire
Desktop with Drill</a></li>
+
+ <li class="toctree-l3"><a class="reference internal"
href="/docs/configuring-tibco-spotfire-server-with-drill/">Configuring Tibco
Spotfire Server with Drill</a></li>
+
+ <li class="toctree-l3"><a class="reference internal"
href="/docs/using-qlik-sense-with-drill/">Using Qlik Sense with Drill</a></li>
+
+ <li class="toctree-l3"><a class="reference internal"
href="/docs/using-apache-drill-with-tableau-10-2/">Using Apache Drill with
Tableau 10.2</a></li>
+
+ <li class="toctree-l3"><a class="reference internal"
href="/docs/using-apache-drill-with-tableau-9-desktop/">Using Apache Drill with
Tableau 9 Desktop</a></li>
+
+ <li class="toctree-l3"><a class="reference internal"
href="/docs/using-apache-drill-with-tableau-9-server/">Using Apache Drill with
Tableau 9 Server</a></li>
+
+ <li class="toctree-l3"><a class="reference internal"
href="/docs/using-information-builders-webfocus-with-apache-drill/">Using
Information Buildersâ WebFOCUS with Apache Drill</a></li>
+
+ <li class="toctree-l3"><a class="reference internal"
href="/docs/configuring-jreport-with-drill/">Configuring JReport with
Drill</a></li>
+
+ </ul>
+
+
+ </ul>
+
+
+
+ <li class="toctree-l1"><a href="javascript: void(0);">Query
Data</a></li>
+ <ul style="display: none">
+
+
+ <li class="toctree-l2"><a class="reference internal"
href="/docs/query-data-introduction/">Query Data Introduction</a></li>
+
+
+
+ <li class="toctree-l2"><a href="javascript: void(0);">Querying a
File System</a></li>
+ <ul style="display: none">
+
+ <li class="toctree-l3"><a class="reference internal"
href="/docs/querying-a-file-system-introduction/">Querying a File System
Introduction</a></li>
+
+ <li class="toctree-l3"><a class="reference internal"
href="/docs/querying-avro-files/">Querying Avro Files</a></li>
+
+ <li class="toctree-l3"><a class="reference internal"
href="/docs/querying-json-files/">Querying JSON Files</a></li>
+
+ <li class="toctree-l3"><a class="reference internal"
href="/docs/querying-parquet-files/">Querying Parquet Files</a></li>
+
+ <li class="toctree-l3"><a class="reference internal"
href="/docs/querying-plain-text-files/">Querying Plain Text Files</a></li>
+
+ <li class="toctree-l3"><a class="reference internal"
href="/docs/querying-directories/">Querying Directories</a></li>
+
+ <li class="toctree-l3"><a class="reference internal"
href="/docs/querying-sequence-files/">Querying Sequence Files</a></li>
+
+ </ul>
+
+
+
+ <li class="toctree-l2"><a class="reference internal"
href="/docs/querying-hbase/">Querying HBase</a></li>
+
+
+
+ <li class="toctree-l2"><a href="javascript: void(0);">Querying
Complex Data</a></li>
+ <ul style="display: none">
+
+ <li class="toctree-l3"><a class="reference internal"
href="/docs/querying-complex-data-introduction/">Querying Complex Data
Introduction</a></li>
+
+ <li class="toctree-l3"><a class="reference internal"
href="/docs/sample-data-donuts/">Sample Data: Donuts</a></li>
+
+ <li class="toctree-l3"><a class="reference internal"
href="/docs/selecting-flat-data/">Selecting Flat Data</a></li>
+
+ <li class="toctree-l3"><a class="reference internal"
href="/docs/using-sql-functions-clauses-and-joins/">Using SQL Functions,
Clauses, and Joins</a></li>
+
+ <li class="toctree-l3"><a class="reference internal"
href="/docs/selecting-nested-data-for-a-column/">Selecting Nested Data for a
Column</a></li>
+
+ <li class="toctree-l3"><a class="reference internal"
href="/docs/selecting-multiple-columns-within-nested-data/">Selecting Multiple
Columns Within Nested Data</a></li>
+
+ </ul>
+
+
+
+ <li class="toctree-l2"><a class="reference internal"
href="/docs/querying-hive/">Querying Hive</a></li>
+
+
+
+ <li class="toctree-l2"><a class="reference internal"
href="/docs/querying-the-information-schema/">Querying the INFORMATION
SCHEMA</a></li>
+
+
+
+ <li class="toctree-l2"><a class="reference internal"
href="/docs/querying-system-tables/">Querying System Tables</a></li>
+
+
+
+ <li class="toctree-l2"><a class="reference internal"
href="/docs/monitoring-and-canceling-queries-in-the-drill-web-console/">Monitoring
and Canceling Queries in the Drill Web Console</a></li>
+
+
+ </ul>
+
+
+
+ <li class="toctree-l1"><a href="javascript: void(0);">Performance
Tuning</a></li>
+ <ul style="display: none">
+
+
+ <li class="toctree-l2"><a class="reference internal"
href="/docs/performance-tuning-introduction/">Performance Tuning
Introduction</a></li>
+
+
+
+ <li class="toctree-l2"><a href="javascript: void(0);">Partition
Pruning</a></li>
+ <ul style="display: none">
+
+ <li class="toctree-l3"><a class="reference internal"
href="/docs/partition-pruning-introduction/">Partition Pruning
Introduction</a></li>
+
+ <li class="toctree-l3"><a class="reference internal"
href="/docs/how-to-partition-data/">How to Partition Data</a></li>
+
+ </ul>
+
+
+
+ <li class="toctree-l2"><a class="reference internal"
href="/docs/asynchronous-parquet-reader/">Asynchronous Parquet Reader</a></li>
+
+
+
+ <li class="toctree-l2"><a class="reference internal"
href="/docs/optimizing-parquet-metadata-reading/">Optimizing Parquet Metadata
Reading</a></li>
+
+
+
+ <li class="toctree-l2"><a class="reference internal"
href="/docs/parquet-filter-pushdown/">Parquet Filter Pushdown</a></li>
+
+
+
+ <li class="toctree-l2"><a class="reference internal"
href="/docs/hive-metadata-caching/">Hive Metadata Caching</a></li>
+
+
+
+ <li class="toctree-l2"><a class="reference internal"
href="/docs/choosing-a-storage-format/">Choosing a Storage Format</a></li>
+
+
+
+ <li class="toctree-l2"><a href="javascript: void(0);">Query
Plans and Tuning</a></li>
+ <ul style="display: none">
+
+ <li class="toctree-l3"><a class="reference internal"
href="/docs/query-plans-and-tuning-introduction/">Query Plans and Tuning
Introduction</a></li>
+
+ <li class="toctree-l3"><a class="reference internal"
href="/docs/join-planning-guidelines/">Join Planning Guidelines</a></li>
+
+ <li class="toctree-l3"><a class="reference internal"
href="/docs/guidelines-for-optimizing-aggregation/">Guidelines for Optimizing
Aggregation</a></li>
+
+ <li class="toctree-l3"><a class="reference internal"
href="/docs/modifying-query-planning-options/">Modifying Query Planning
Options</a></li>
+
+ <li class="toctree-l3"><a class="reference internal"
href="/docs/sort-based-and-hash-based-memory-constrained-operators/">Sort-Based
and Hash-Based Memory-Constrained Operators</a></li>
+
+ <li class="toctree-l3"><a class="reference internal"
href="/docs/enabling-query-queuing/">Enabling Query Queuing</a></li>
+
+ <li class="toctree-l3"><a class="reference internal"
href="/docs/throttling/">Throttling</a></li>
+
+ <li class="toctree-l3"><a class="reference internal"
href="/docs/controlling-parallelization-to-balance-performance-with-multi-tenancy/">Controlling
Parallelization to Balance Performance with Multi-Tenancy</a></li>
+
+ </ul>
+
+
+
+ <li class="toctree-l2"><a href="javascript:
void(0);">Identifying Performance Issues</a></li>
+ <ul style="display: none">
+
+ <li class="toctree-l3"><a class="reference internal"
href="/docs/query-plans/">Query Plans</a></li>
+
+ <li class="toctree-l3"><a class="reference internal"
href="/docs/query-profiles/">Query Profiles</a></li>
+
+ </ul>
+
+
+
+ <li class="toctree-l2"><a href="javascript:
void(0);">Performance Tuning Reference</a></li>
+ <ul style="display: none">
+
+ <li class="toctree-l3"><a class="reference internal"
href="/docs/query-profile-column-descriptions/">Query Profile Column
Descriptions</a></li>
+
+ <li class="toctree-l3"><a class="reference internal"
href="/docs/physical-operators/">Physical Operators</a></li>
+
+ </ul>
+
+
+
+ <li class="toctree-l2"><a class="reference internal"
href="/docs/monitoring-metrics/">Monitoring Metrics</a></li>
+
+
+ </ul>
+
+
+
+ <li class="toctree-l1"><a href="javascript: void(0);">Log and
Debug</a></li>
+ <ul style="display: none">
+
+
+ <li class="toctree-l2"><a class="reference internal"
href="/docs/log-and-debug-introduction/">Log and Debug Introduction</a></li>
+
+
+
+ <li class="toctree-l2"><a class="reference internal"
href="/docs/error-messages/">Error Messages</a></li>
+
+
+
+ <li class="toctree-l2"><a class="reference internal"
href="/docs/modify-logback-xml/">Modify logback.xml</a></li>
+
+
+
+ <li class="toctree-l2"><a class="reference internal"
href="/docs/review-the-java-stack-trace/">Review the Java Stack Trace</a></li>
+
+
+
+ <li class="toctree-l2"><a class="reference internal"
href="/docs/query-audit-logging/">Query Audit Logging</a></li>
+
+
+ </ul>
+
+
+
+ <li class="toctree-l1"><a href="javascript: void(0);">SQL
Reference</a></li>
+ <ul style="display: none">
+
+
+ <li class="toctree-l2"><a class="reference internal"
href="/docs/sql-reference-introduction/">SQL Reference Introduction</a></li>
+
+
+
+ <li class="toctree-l2"><a href="javascript: void(0);">Data
Types</a></li>
+ <ul style="display: none">
+
+ <li class="toctree-l3"><a class="reference internal"
href="/docs/supported-data-types/">Supported Data Types</a></li>
+
+ <li class="toctree-l3"><a class="reference internal"
href="/docs/date-time-and-timestamp/">Date, Time, and Timestamp</a></li>
+
+ <li class="toctree-l3"><a class="reference internal"
href="/docs/handling-different-data-types/">Handling Different Data
Types</a></li>
+
+ </ul>
+
+
+
+ <li class="toctree-l2"><a class="reference internal"
href="/docs/lexical-structure/">Lexical Structure</a></li>
+
+
+
+ <li class="toctree-l2"><a class="reference internal"
href="/docs/operators/">Operators</a></li>
+
+
+
+ <li class="toctree-l2"><a href="javascript: void(0);">SQL
Functions</a></li>
+ <ul style="display: none">
+
+ <li class="toctree-l3"><a class="reference internal"
href="/docs/about-sql-function-examples/">About SQL Function Examples</a></li>
+
+ <li class="toctree-l3"><a class="reference internal"
href="/docs/math-and-trig/">Math and Trig</a></li>
+
+ <li class="toctree-l3"><a class="reference internal"
href="/docs/data-type-conversion/">Data Type Conversion</a></li>
+
+ <li class="toctree-l3"><a class="reference internal"
href="/docs/date-time-functions-and-arithmetic/">Date/Time Functions and
Arithmetic</a></li>
+
+ <li class="toctree-l3"><a class="reference internal"
href="/docs/string-manipulation/">String Manipulation</a></li>
+
+ <li class="toctree-l3"><a class="reference internal"
href="/docs/aggregate-and-aggregate-statistical/">Aggregate and Aggregate
Statistical</a></li>
+
+ <li class="toctree-l3"><a class="reference internal"
href="/docs/functions-for-handling-nulls/">Functions for Handling Nulls</a></li>
+
+ </ul>
+
+
+
+ <li class="toctree-l2"><a href="javascript: void(0);">SQL Window
Functions</a></li>
+ <ul style="display: none">
+
+ <li class="toctree-l3"><a class="reference internal"
href="/docs/sql-window-functions-introduction/">SQL Window Functions
Introduction</a></li>
+
+ <li class="toctree-l3"><a class="reference internal"
href="/docs/aggregate-window-functions/">Aggregate Window Functions</a></li>
+
+ <li class="toctree-l3"><a class="reference internal"
href="/docs/ranking-window-functions/">Ranking Window Functions</a></li>
+
+ <li class="toctree-l3"><a class="reference internal"
href="/docs/value-window-functions/">Value Window Functions</a></li>
+
+ <li class="toctree-l3"><a class="reference internal"
href="/docs/sql-window-functions-examples/">SQL Window Functions
Examples</a></li>
+
+ </ul>
+
+
+
+ <li class="toctree-l2"><a href="javascript: void(0);">Nested
Data Functions</a></li>
+ <ul style="display: none">
+
+ <li class="toctree-l3"><a class="reference internal"
href="/docs/nested-data-limitations/">Nested Data Limitations</a></li>
+
+ <li class="toctree-l3"><a class="reference internal"
href="/docs/flatten/">FLATTEN</a></li>
+
+ <li class="toctree-l3"><a class="reference internal"
href="/docs/kvgen/">KVGEN</a></li>
+
+ <li class="toctree-l3"><a class="reference internal"
href="/docs/repeated-count/">REPEATED_COUNT</a></li>
+
+ <li class="toctree-l3"><a class="reference internal"
href="/docs/repeated-contains/">REPEATED_CONTAINS</a></li>
+
+ </ul>
+
+
+
+ <li class="toctree-l2"><a class="reference internal"
href="/docs/query-directory-functions/">Query Directory Functions</a></li>
+
+
+
+ <li class="toctree-l2"><a href="javascript: void(0);">SQL
Commands</a></li>
+ <ul style="display: none">
+
+ <li class="toctree-l3"><a class="reference internal"
href="/docs/supported-sql-commands/">Supported SQL Commands</a></li>
+
+ <li class="toctree-l3"><a class="reference internal"
href="/docs/set/">SET</a></li>
+
+ <li class="toctree-l3"><a class="reference internal"
href="/docs/reset/">RESET</a></li>
+
+ <li class="toctree-l3"><a class="reference internal"
href="/docs/alter-system/">ALTER SYSTEM</a></li>
+
+ <li class="toctree-l3"><a class="reference internal"
href="/docs/create-table-as-ctas/">CREATE TABLE AS (CTAS)</a></li>
+
+ <li class="toctree-l3"><a class="reference internal"
href="/docs/create-temporary-table-as-cttas/">CREATE TEMPORARY TABLE AS
(CTTAS)</a></li>
+
+ <li class="toctree-l3"><a class="reference internal"
href="/docs/create-function-using-jar/">CREATE FUNCTION USING JAR</a></li>
+
+ <li class="toctree-l3"><a class="reference internal"
href="/docs/partition-by-clause/">PARTITION BY Clause</a></li>
+
+ <li class="toctree-l3"><a class="reference internal"
href="/docs/create-view/">CREATE VIEW</a></li>
+
+ <li class="toctree-l3"><a class="reference internal"
href="/docs/describe/">DESCRIBE</a></li>
+
+ <li class="toctree-l3"><a class="reference internal"
href="/docs/drop-function-using-jar/">DROP FUNCTION USING JAR</a></li>
+
+ <li class="toctree-l3"><a class="reference internal"
href="/docs/drop-table/">DROP TABLE</a></li>
+
+ <li class="toctree-l3"><a class="reference internal"
href="/docs/drop-view/">DROP VIEW</a></li>
+
+ <li class="toctree-l3"><a class="reference internal"
href="/docs/explain/">EXPLAIN</a></li>
+
+ <li class="toctree-l3"><a class="reference internal"
href="/docs/select/">SELECT</a></li>
+
+ <li class="toctree-l3"><a class="reference internal"
href="/docs/select-list/">SELECT List</a></li>
+
+ <li class="toctree-l3"><a class="reference internal"
href="/docs/from-clause/">FROM Clause</a></li>
+
+ <li class="toctree-l3"><a class="reference internal"
href="/docs/group-by-clause/">GROUP BY Clause</a></li>
+
+ <li class="toctree-l3"><a class="reference internal"
href="/docs/having-clause/">HAVING Clause</a></li>
+
+ <li class="toctree-l3"><a class="reference internal"
href="/docs/limit-clause/">LIMIT Clause</a></li>
+
+ <li class="toctree-l3"><a class="reference internal"
href="/docs/offset-clause/">OFFSET Clause</a></li>
+
+ <li class="toctree-l3"><a class="reference internal"
href="/docs/order-by-clause/">ORDER BY Clause</a></li>
+
+ <li class="toctree-l3"><a class="reference internal"
href="/docs/union-set-operator/">UNION Set Operator</a></li>
+
+ <li class="toctree-l3"><a class="reference internal"
href="/docs/where-clause/">WHERE Clause</a></li>
+
+ <li class="toctree-l3"><a class="reference internal"
href="/docs/with-clause/">WITH Clause</a></li>
+
+ <li class="toctree-l3"><a class="reference internal"
href="/docs/show-databases-and-show-schemas/">SHOW DATABASES and SHOW
SCHEMAS</a></li>
+
+ <li class="toctree-l3"><a class="reference internal"
href="/docs/show-files/">SHOW FILES</a></li>
+
+ <li class="toctree-l3"><a class="reference internal"
href="/docs/show-tables/">SHOW TABLES</a></li>
+
+ <li class="toctree-l3"><a class="reference internal"
href="/docs/use/">USE</a></li>
+
+ </ul>
+
+
+
+ <li class="toctree-l2"><a href="javascript: void(0);">SQL
Conditional Expressions</a></li>
+ <ul style="display: none">
+
+ <li class="toctree-l3"><a class="reference internal"
href="/docs/case/">CASE</a></li>
+
+ </ul>
+
+
+
+ <li class="toctree-l2"><a class="reference internal"
href="/docs/reserved-keywords/">Reserved Keywords</a></li>
+
+
+
+ <li class="toctree-l2"><a class="reference internal"
href="/docs/sql-extensions/">SQL Extensions</a></li>
+
+
+ </ul>
+
+
+
+ <li class="toctree-l1"><a href="javascript: void(0);">Data Sources
and File Formats</a></li>
+ <ul style="display: none">
+
+
+ <li class="toctree-l2"><a class="reference internal"
href="/docs/data-sources-and-file-formats-introduction/">Data Sources and File
Formats Introduction</a></li>
+
+
+
+ <li class="toctree-l2"><a class="reference internal"
href="/docs/hive-to-drill-data-type-mapping/">Hive-to-Drill Data Type
Mapping</a></li>
+
+
+
+ <li class="toctree-l2"><a class="reference internal"
href="/docs/deploying-and-using-a-hive-udf/">Deploying and Using a Hive
UDF</a></li>
+
+
+
+ <li class="toctree-l2"><a class="reference internal"
href="/docs/parquet-format/">Parquet Format</a></li>
+
+
+
+ <li class="toctree-l2"><a class="reference internal"
href="/docs/json-data-model/">JSON Data Model</a></li>
+
+
+
+ <li class="toctree-l2"><a class="reference internal"
href="/docs/text-files-csv-tsv-psv/">Text Files: CSV, TSV, PSV</a></li>
+
+
+
+ <li class="toctree-l2"><a class="reference internal"
href="/docs/sequence-files/">Sequence Files</a></li>
+
+
+ </ul>
+
+
+
+ <li class="toctree-l1"><a href="javascript: void(0);">Develop Custom
Functions</a></li>
+ <ul style="display: none">
+
+
+ <li class="toctree-l2"><a class="reference internal"
href="/docs/develop-custom-functions-introduction/">Develop Custom Functions
Introduction</a></li>
+
+
+
+ <li class="toctree-l2"><a class="reference internal"
href="/docs/developing-a-simple-function/">Developing a Simple Function</a></li>
+
+
+
+ <li class="toctree-l2"><a class="reference internal"
href="/docs/tutorial-develop-a-simple-function/">Tutorial: Develop a Simple
Function</a></li>
+
+
+
+ <li class="toctree-l2"><a class="reference internal"
href="/docs/developing-an-aggregate-function/">Developing an Aggregate
Function</a></li>
+
+
+
+ <li class="toctree-l2"><a href="javascript: void(0);">Adding
Custom Functions to Drill</a></li>
+ <ul style="display: none">
+
+ <li class="toctree-l3"><a class="reference internal"
href="/docs/adding-custom-functions-to-drill-introduction/">Adding Custom
Functions to Drill Introduction</a></li>
+
+ <li class="toctree-l3"><a class="reference internal"
href="/docs/manually-adding-custom-functions-to-drill/">Manually Adding Custom
Functions to Drill</a></li>
+
+ <li class="toctree-l3"><a class="reference internal"
href="/docs/creating-custom-authenticators/">Creating Custom
Authenticators</a></li>
+
+ <li class="toctree-l3"><a class="reference internal"
href="/docs/dynamic-udfs/">Dynamic UDFs</a></li>
+
+ </ul>
+
+
+
+ <li class="toctree-l2"><a class="reference internal"
href="/docs/using-custom-functions-in-queries/">Using Custom Functions in
Queries</a></li>
+
+
+
+ <li class="toctree-l2"><a class="reference internal"
href="/docs/custom-function-interfaces/">Custom Function Interfaces</a></li>
+
+
+ </ul>
+
+
+
+ <li class="toctree-l1"><a class="reference internal"
href="/docs/troubleshooting/">Troubleshooting</a></li>
+
+
+
+ <li class="toctree-l1"><a href="javascript: void(0);">Developer
Information</a></li>
+ <ul style="display: none">
+
+
+ <li class="toctree-l2"><a class="reference internal"
href="/docs/rest-api/">REST API</a></li>
+
+
+
+ <li class="toctree-l2"><a href="javascript: void(0);">Develop
Drill</a></li>
+ <ul style="display: none">
+
+ <li class="toctree-l3"><a class="reference internal"
href="/docs/compiling-drill-from-source/">Compiling Drill from Source</a></li>
+
+ </ul>
+
+
+
+ <li class="toctree-l2"><a href="javascript: void(0);">Contribute
to Drill</a></li>
+ <ul style="display: none">
+
+ <li class="toctree-l3"><a class="reference internal"
href="/docs/apache-drill-contribution-guidelines/">Apache Drill Contribution
Guidelines</a></li>
+
+ <li class="toctree-l3"><a class="reference internal"
href="/docs/apache-drill-contribution-ideas/">Apache Drill Contribution
Ideas</a></li>
+
+ </ul>
+
+
+
+ <li class="toctree-l2"><a href="javascript: void(0);">Design
Docs</a></li>
+ <ul style="display: none">
+
+ <li class="toctree-l3"><a class="reference internal"
href="/docs/drill-plan-syntax/">Drill Plan Syntax</a></li>
+
+ <li class="toctree-l3"><a class="reference internal"
href="/docs/rpc-overview/">RPC Overview</a></li>
+
+ <li class="toctree-l3"><a class="reference internal"
href="/docs/query-stages/">Query Stages</a></li>
+
+ <li class="toctree-l3"><a class="reference internal"
href="/docs/useful-research/">Useful Research</a></li>
+
+ <li class="toctree-l3"><a class="reference internal"
href="/docs/value-vectors/">Value Vectors</a></li>
+
+ </ul>
+
+
+ </ul>
+
+
+
+ <li class="toctree-l1"><a href="javascript: void(0);">Release
Notes</a></li>
+ <ul style="display: none">
+
+
+ <li class="toctree-l2"><a class="reference internal"
href="/docs/apache-drill-1-12-0-release-notes/">Apache Drill 1.12.0 Release
Notes</a></li>
+
+
+
+ <li class="toctree-l2"><a class="reference internal"
href="/docs/apache-drill-1-11-0-release-notes/">Apache Drill 1.11.0 Release
Notes</a></li>
+
+
+
+ <li class="toctree-l2"><a class="reference internal"
href="/docs/apache-drill-1-10-0-release-notes/">Apache Drill 1.10.0 Release
Notes</a></li>
+
+
+
+ <li class="toctree-l2"><a class="reference internal"
href="/docs/apache-drill-1-9-0-release-notes/">Apache Drill 1.9.0 Release
Notes</a></li>
+
+
+
+ <li class="toctree-l2"><a class="reference internal"
href="/docs/apache-drill-1-8-0-release-notes/">Apache Drill 1.8.0 Release
Notes</a></li>
+
+
+
+ <li class="toctree-l2"><a class="reference internal"
href="/docs/apache-drill-1-7-0-release-notes/">Apache Drill 1.7.0 Release
Notes</a></li>
+
+
+
+ <li class="toctree-l2"><a class="reference internal"
href="/docs/apache-drill-1-6-0-release-notes/">Apache Drill 1.6.0 Release
Notes</a></li>
+
+
+
+ <li class="toctree-l2"><a class="reference internal"
href="/docs/apache-drill-1-5-0-release-notes/">Apache Drill 1.5.0 Release
Notes</a></li>
+
+
+
+ <li class="toctree-l2"><a class="reference internal"
href="/docs/apache-drill-1-4-0-release-notes/">Apache Drill 1.4.0 Release
Notes</a></li>
+
+
+
+ <li class="toctree-l2"><a class="reference internal"
href="/docs/apache-drill-1-3-0-release-notes/">Apache Drill 1.3.0 Release
Notes</a></li>
+
+
+
+ <li class="toctree-l2"><a class="reference internal"
href="/docs/apache-drill-1-2-0-release-notes/">Apache Drill 1.2.0 Release
Notes</a></li>
+
+
+
+ <li class="toctree-l2"><a class="reference internal"
href="/docs/apache-drill-1-1-0-release-notes/">Apache Drill 1.1.0 Release
Notes</a></li>
+
+
+
+ <li class="toctree-l2"><a class="reference internal"
href="/docs/apache-drill-1-0-0-release-notes/">Apache Drill 1.0.0 Release
Notes</a></li>
+
+
+
+ <li class="toctree-l2"><a class="reference internal"
href="/docs/apache-drill-0-9-0-release-notes/">Apache Drill 0.9.0 Release
Notes</a></li>
+
+
+
+ <li class="toctree-l2"><a class="reference internal"
href="/docs/apache-drill-0-8-0-release-notes/">Apache Drill 0.8.0 Release
Notes</a></li>
+
+
+
+ <li class="toctree-l2"><a class="reference internal"
href="/docs/apache-drill-0-7-0-release-notes/">Apache Drill 0.7.0 Release
Notes</a></li>
+
+
+
+ <li class="toctree-l2"><a class="reference internal"
href="/docs/apache-drill-0-6-0-release-notes/">Apache Drill 0.6.0 Release
Notes</a></li>
+
+
+
+ <li class="toctree-l2"><a class="reference internal"
href="/docs/apache-drill-0-5-0-release-notes/">Apache Drill 0.5.0 Release
Notes</a></li>
+
+
+
+ <li class="toctree-l2"><a class="reference internal"
href="/docs/apache-drill-0-4-0-release-notes/">Apache Drill 0.4.0 Release
Notes</a></li>
+
+
+
+ <li class="toctree-l2"><a class="reference internal"
href="/docs/apache-drill-m1-release-notes-apache-drill-alpha/">Apache Drill M1
Release Notes (Apache Drill Alpha)</a></li>
+
+
+
+ <li class="toctree-l2"><a class="reference internal"
href="/docs/apache-drill-m1-release-notes-apache-drill-alpha/">Apache Drill M1
Release Notes (Apache Drill Alpha)</a></li>
+
+
+ </ul>
+
+
+
+ <li class="toctree-l1"><a href="javascript: void(0);">Sample
Datasets</a></li>
+ <ul style="display: none">
+
+
+ <li class="toctree-l2"><a class="reference internal"
href="/docs/aol-search/">AOL Search</a></li>
+
+
+
+ <li class="toctree-l2"><a class="reference internal"
href="/docs/enron-emails/">Enron Emails</a></li>
+
+
+
+ <li class="toctree-l2"><a class="reference internal"
href="/docs/wikipedia-edit-history/">Wikipedia Edit History</a></li>
+
+
+ </ul>
+
+
+
+ <li class="toctree-l1"><a class="reference internal"
href="/docs/project-bylaws/">Project Bylaws</a></li>
+
+
+ </ul>
+
+ </div>
+ </div>
+</aside>
+
+
+<nav class="breadcrumbs">
+ <li><a href="/docs/">Docs</a></li>
+
+
+ <li><a href="/docs/configure-drill/">Configure Drill</a></li>
+
+ <li><a href="/docs/securing-drill/">Securing Drill</a></li>
+
+ <li>Using jpam as the PAM Authenticator</li>
+</nav>
+
+<div class="main-content-wrapper">
+ <div class="main-content">
+
+
+ <a class="edit-link"
href="https://github.com/apache/drill/blob/gh-pages/_docs/configure-drill/securing-drill/082-using-jpam-as-the-pam-authenticator.md"
target="_blank"><i class="fa fa-pencil-square-o"></i></a>
+
+
+ <div class="int_title left">
+ <h1>Using jpam as the PAM Authenticator</h1>
+
+ </div>
+
+ May 17, 2017
+
+ <link href="/css/docpage.css" rel="stylesheet" type="text/css">
+
+ <div class="int_text" align="left">
+
+ <p>To use jpam as the PAM authenticator with Drill, complete the
following steps:</p>
+
+<div class="admonition note">
+ <p class="first admonition-title">Note</p>
+ <p class="last">Do not point to an existing directory where other Hadoop
components are installed. Other file system libraries can conflict with the
Drill libraries and cause system errors. </p>
+</div>
+
+<ol>
+<li><p>Download the <code>tar.gz</code> file for the Linux platform:</p>
+
+<p><code>http://sourceforge.net/projects/jpam/files/jpam/jpam-1.1</code>/</p></li>
+<li><p>Untar the file, and copy the <code>libjpam.so</code> file into a
directory that does not contain other Hadoop components. For example,
<code>/opt/pam/</code></p></li>
+<li><p>Add the following line to
<code><DRILL_HOME>/conf/drill-env.sh</code>, including the directory
where the <code>libjpam.so</code> file is located: </p>
+<div class="highlight"><pre><code class="language-text"
data-lang="text">export
DRILLBIT_JAVA_OPTS="-Djava.library.path=<directory>"
+</code></pre></div>
+<p><strong>Example</strong></p>
+<div class="highlight"><pre><code class="language-text"
data-lang="text">export
DRILLBIT_JAVA_OPTS="-Djava.library.path=/opt/pam/"
+</code></pre></div></li>
+<li><p>Add the following configuration to the <code>drill.exec</code> block in
<code><DRILL_HOME>/conf/drill-override.conf</code>: </p>
+<div class="highlight"><pre><code class="language-text" data-lang="text">
drill.exec: {
+ cluster-id: "drillbits1",
+ zk.connect:
"qa102-81.qa.lab:5181,qa102-82.qa.lab:5181,qa102-83.qa.lab:5181",
+ impersonation: {
+ enabled: true,
+ max_chained_user_hops: 3
+ },
+ security: {
+ auth.mechanisms : ["PLAIN"],
+ },
+ security.user.auth: {
+ enabled: true,
+ packages +=
"org.apache.drill.exec.rpc.user.security",
+ impl: "pam",
+ pam_profiles: [ "sudo", "login" ]
+ }
+ }
+</code></pre></div></li>
+<li><p>(Optional) To add or remove different PAM profiles, add or delete the
profile names in the âpam_profilesâ array shown above. </p></li>
+<li><p>Restart the Drillbit process on each Drill node, as shown: </p>
+
+<p><code><DRILLINSTALL_HOME>/bin/drillbit.sh restart</code></p></li>
+</ol>
+
+
+
+ <div class="doc-nav">
+
+ <span class="previous-toc"><a
href="/docs/using-libpam4j-as-the-pam-authenticator/">â Using libpam4j as the
PAM Authenticator</a></span><span class="next-toc"><a
href="/docs/configuring-kerberos-security/">Configuring Kerberos Security
â</a></span>
+</div>
+
+
+ </div>
+ </div>
+</div>
+
+ </div>
+ <p class="push"></p>
+<div id="footer" class="mw">
+<div class="wrapper">
+Copyright © 2012-2014 The Apache Software Foundation, licensed under the
Apache License, Version 2.0.<br>
+Apache and the Apache feather logo are trademarks of The Apache Software
Foundation. Other names appearing on the site may be trademarks of their
respective owners.<br/><br/>
+</div>
+</div>
+
+ <script>
+(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+ga('create', 'UA-53379651-1', 'auto');
+ga('send', 'pageview');
+</script>
+<script type="text/javascript"
src="//s7.addthis.com/js/300/addthis_widget.js#pubid=ra-548b2caa33765e8d"
async="async"></script>
+</body>
+</html>