HiveQL Jupyter Kernel
HiveQL Kernel
Requirements
If you are going to connect using kerberos:
sudo apt-get install python3-dev libsasl2-dev libsasl2-2 libsasl2-modules-gssapi-mit
Installation
To install the kernel:
pip install --upgrade hiveqlKernel
jupyter hiveql install --user
Connection configuration
Two methods are available to connect to a Hive server:
- Directly inside the notebook
- Using a configuration file
Configure directly in the notebook cells
Inside a Notebook cell, copy&paste this, change the configuration to match your needs, and run it.
$$ url=hive://<kerberos-username>@<hive-host>:<hive-port>/<db-name>
$$ connectargs={"auth": "KERBEROS", "kerberosservice_name": "hive", "configuration": {"tez.queue.name": "myqueue"}}
$$ pool_size=5
$$ max_overflow=10
These args are passed to sqlalchemy, who registered pyHive as the 'hive' SQL back-end. See github.com/dropbox/PyHive.
Configure using a configuration file
The HiveQL kernel is looking for the configuration file at ~/.hiveqlkernel.conf by default. You can specify another path using HIVEKERNELCONFFILE.
The contents must be like this (in json format):
{ "url": "hive://<kerberos-username>@<hive-host>:<hive-port>/<db-name>", "connectargs" : { "auth": "KERBEROS", "kerberosservicename":"hive", "configuration": {"tez.queue.name": "myqueue"}}, "poolsize": 5, "maxoverflow": 10, "defaultlimit": 20, "display_mode": "be" }
Usage
Inside a HiveQL kernel you can type HiveQL directly in the cells and it displays a HTML table with the results.
You also have other options, like changing the default display limit (=20) like this :
$$ default_limit=50
Some hive functions are extended. They allow to filter with some patterns.
SHOW TABLES <pattern>
SHOW DATABASES <pattern>
Run tests
python -m pytest
Have fun!