一、创建一个 JDBC 解释器
- 1、点击create创建一个新的 解释器
- 2、给自己的解释器一个专属名称
- 3、选择解释器类型,这里选择JDBC
- 4、设置解释器的绑定模式,这里选择 **isolated + per user 模式 **(用户之间不会相互产生影响)
- 5、设置权限,只允许指定用户使用该解释器

image.png
二、配置新创建的 JDBC 解释器
- 最后需要指定 JDBC依赖 JAR,具体的依赖可以参照官方文档,我这里使用的是HDP单独提供的 HIVE JDBC JAR
- 需要说明的是依赖包中通过本地URL进行指定,这个本地URL指的是zeppelin部署的机器
| 配置项名称 | 值 | 说明 |
|---|---|---|
| default.url | jdbc:hive2://server1:2181,server2:2181,server32:2181/;serviceDiscoveryMode=zooKeeper;zooKeeperNamespace=hiveserver2 | JDBC 的 URL |
| 这里hiveserver2使用zk做了高可用 | ||
| default.password | ******* | Hive账号密码 |
| default.driver | org.apache.hive.jdbc.HiveDriver | JDBC 驱动器名称 |
| default.completer.ttlInSeconds | 120 | Time to live sql completer in seconds (-1 to update everytime, 0 to disable update) |
| common.max_count | 1000 | Max number of SQL result to display. |
| zeppelin.jdbc.concurrent.use | true | true表示可以并行执行SQL |
| zeppelin.jdbc.concurrent.max_connection | 10 | 并行执行的最大数量 |
| zeppelin.jdbc.interpolation | true | Enable ZeppelinContext variable interpolation into paragraph text |
| zeppelin.jdbc.maxConnLifetime | -1 | 连接生存期的最大值(毫秒)。值为零或更小意味着连接具有无限的生存期 |
| zeppelin.jdbc.maxRows | 1000 | Maximum number of rows fetched from the query. |
| zeppelin.jdbc.hive.timeout.threshold | 600000 | hive 任务超时时间 |
| zeppelin.jdbc.auth.type | SIMPLE | 这里的配置是为了解释器可以使用zeppelin的登录用户 |
| default.proxy.user.property | hive.server2.proxy.user |
image.png
三、测试是否可以正常使用
- 配置完成之后Hive 解释器将使用zeppelin 登陆用户作为访问 Hive 的用户,这样可以完美结合 Ranger 对使用zeppelin 的用户的数据权限进行控制
image.png