阿里云怎么创建网站,中国正规的加盟网站,电脑游戏网站建设,优酷网站模板下载Python Client
在github 上上可以使用 Python client 驱动程序。有关安装说明#xff0c;请参阅设置 HiveServer2#xff1a;Python Client 驱动程序。
Ruby Client
一个 Ruby client 驱动程序在https://github.com/forward3d/rbhive的 github 上可用。
与 SQuirrel SQL …Python Client
在github 上上可以使用 Python client 驱动程序。有关安装说明请参阅设置 HiveServer2Python Client 驱动程序。
Ruby Client
一个 Ruby client 驱动程序在https://github.com/forward3d/rbhive的 github 上可用。
与 SQuirrel SQL Client 集成
从SQuirrel SQL 网站下载安装和启动 SQuirrel SQL Client。选择’Drivers - New Driver …来注册与 HiveServer2 一起使用的 Hive 的 JDBC 驱动程序。输入驱动程序 name 和 example URL
Name: HiveExample URL: jdbc:hive2://localhost:10000/default
选择’Extra Class Path - Add’从本地 Hive 和 Hadoop 发行版中添加以下 jars。
HIVE_HOME/lib/hive-jdbc-*-standalone.jarHADOOP_HOME/share/hadoop/common/hadoop-common-*.jar
版本信息 Hive JDBC 独立 jars 用于 Hive 0.14.0 向前(HIVE-538);对于以前版本的 Hive请改用HIVE_HOME/build/dist/lib/.jar。 hadoop-common jars 适用于 Hadoop 2.0;对于以前版本的 Hadoop请改用HADOOP_HOME/hadoop--core.jar。
选择“列表驱动程序”。这将导致 SQuirrel 解析您的 jars for JDBC 驱动程序可能需要几秒钟。从’Class Name’输入框中选择 Hive 驱动程序以使用 HiveServer2
org.apache.hive.jdbc.HiveDriver单击“确定”以完成驱动程序注册。选择’别名 - 添加别名…以创建 HiveServer2 实例的连接别名。在“Name”输入框中为连接别名指定 name。从’Driver’drop-down 中选择 Hive 驱动程序。根据需要修改 example URL 以指向 HiveServer2 实例。输入“User Name”和“Password”然后单击“确定”以保存连接别名。要连接到 HiveServer2double-click Hive 别名并单击“连接”。
建立连接后您将在 log console 中看到错误并可能会收到驱动程序与 JDBC 3.0 兼容的警告。这些警报是由 JDBC 元数据 API 的 yet-to-be-implemented 部分引起的可以安全地忽略。要测试连接请在 console 中输入 SHOW TABLES然后单击 run 图标。 另请注意当查询为 running 时对“取消”按钮的支持尚不可用。
与 SQL Developer 集成
使用 JDBC 连接可以使用 Oracle SQLDeveloper 集成。 https://community.hortonworks.com/articles/1887/connect-oracle-sql-developer-to-hive.html
Integration 与其他工具的高级 Features
在 HTTP 模式下支持 Cookie 重放
Version 1.2.0 以及之后 此选项从Hive 1.2.0开始可用。 HIVE-9709引入了对 JDBC 驱动程序的支持以启用 cookie 重放。默认情况下会启用此功能以便将传入的 cookies 发送回服务器进行身份验证。 启用时的 JDBC 连接 URL 应如下所示
jdbc:hive2://host:port/db?transportModehttp;httpPathhttp_endpoint;cookieAuthtrue;cookieNamecookie_namecookieAuth 默认设置为true。cookieName如果任何传入的 cookies’键匹配 cookieName 的 value则 JDBC 驱动程序不会向服务器发送任何登录 credentials/Kerberos 票证。 client 只会将 cookie 单独发送回服务器进行身份验证。 cookieName 的默认 value 是 hive.server2.auth(这是 HiveServer2 cookie name)。要关闭 cookie 重放必须在 JDBC URL 中使用 cookieAuthfalse。**重要说明**作为HIVE-9709的一部分我们将 Hive 的 Apache http-client 和 http-core 组件升级为 4.4. 为了避免 HttpComponents 的升级 version 与系统中可能存在的其他任何版本之间发生任何冲突(例如 Apache Hadoop 2.6 提供的这样一种方式 Beeline-related jars 出现在 HADOOP lib jars 之前。这是通过在使用 hive-jdbc 之前设置 HADOOP_USERCLASSPATH_FIRSTtrue 来实现的。事实上在 bin/beeline.sh 我们这样做
在 HTTP 模式下使用 2-way SSL
Version 1.2.0 以及之后 此选项从Hive 1.2.0开始可用。 HIVE-10447使 JDBC 驱动程序在 HTTP 模式下支持 2-way SSL。请注意HiveServer2 目前不支持 2-way SSL。因此当有一个像 Knox 这样的中间服务器需要 client 来支持 2-way SSL 时这个 feature 很方便。 JDBC 连接 URL
jdbc:hive2://host:port/db;ssltrue;twoWaytrue; sslTrustStoretrust_store_path;trustStorePasswordtrust_store_password;sslKeyStorekey_store_path;keyStorePasswordkey_store_password ?transportModehttp;httpPathhttp_endpointtruststore_path 是 client 的信任库文件所在的路径。这是一个强制的 non-empty 字段。 1 是访问信任库的密码。 keystore_path 是 client 的密钥库文件所在的路径。这是一个强制的 non-empty 字段。 1 是访问密钥库的密码。
对于早于 0.14 的版本请参阅上面的version 注意。
通过 JDBC 驱动程序传递 HTTP 标头 Key/Value 对
Version 1.2.0 以及之后 此选项从Hive 1.2.0开始可用。 HIVE-10339为 clients 引入了一个选项以提供可以发送到底层服务器的自定义 HTTP headers(Hive 1.2.0 及更高版本)。 JDBC 连接 URL
jdbc:hive2://host:port/db;transportModehttp;httpPathhttp_endpoint;http.header.name1value1;http.header.name2value2指定上述 URL 后Beeline 将调用基础请求以将 HTTP 标头集添加到和将另一个 HTTP 标头集设置为和。当最终用户需要将 HTTP 标头中的标识向下发送到中间服务器(如 Knox通过 Beeline 进行身份验证)时这非常有用例如
http.header.USERNAMEvalue1;http.header.PASSWORDvalue2。对于早于 0.14 的版本请参阅上面的version 注意。
通过 JDBC 驱动程序传递自定义 HTTP Cookie Key/Value 对
在 Hive version 3.0.0 HIVE-18447中为 clients 引入了一个选项以提供可以发送到底层服务器的自定义 HTTP cookies。某些身份验证机制(如 Single Sign On)需要能够通过 JDBC 驱动程序将 cookie 传递给某些中间身份验证服务(如 Knox)。 JDBC 连接 URL
jdbc:hive2://host:port/db;transportModehttp;httpPathhttp_endpoint;http.cookie.name1value1;http.cookie.name2value2指定上述 URL 后Beeline 将调用基础请求以在请求标头中添加 HTTP cookie并将其设置为 和 。
Variable Substitution
Hive 用于批处理和交互式查询。变量替换允许执行诸如从 code 中分离 environment-specific configuration 变量的任务。 Hive 变量替换机制旨在避免在 Hive 之上加入脚本语言的某些 code。 诸如以下 shell 命令之类的示例可能(效率低下)用于在脚本中设置变量
$ ab
$ hive -e describe $a
这很令人沮丧因为 Hive 与脚本语言紧密结合。当进行数千次操作(例如多次hive -e调用)时几秒钟的 Hive 启动 time 是 non-trivial。 Hive 变量将您熟悉和喜爱的设定能力与一些有限但强大的替代能力相结合。 以下示例
$ bin/hive --hiveconf ab -e set a; set hiveconf:a; \
create table if not exists b (col int); describe ${hiveconf:a}
结果是
Hive history file/tmp/edward/hive_job_log_edward_201011240906_1463048967.txt
ab
hiveconf:ab
OK
Time taken: 5.913 seconds
OK
col int
Time taken: 0.754 seconds
有关 Hive 命令 line 选项的一般信息请参阅Hive CLI。 版本信息 在 version 0.7.0(JIRA HIVE-1096)中添加了hiveconf选项。 Version 0.8.0 添加了选项define和hivevar(JIRA HIVE-2020)它们是等价的在此不再赘述。它们在命名空间中创建自定义变量该命名空间与 hiveconfsystem 和 env 命名空间分开。 使用变量 变量有三个命名空间 - hiveconfsystem 和 env。 (自定义变量也可以在 Hive 0.8.0 中使用define或hivevar选项的单独命名空间中创建以后 releases.) hiveconf 变量设置为正常
set xmyvalue但是使用以下方法检索它
${hiveconf:x}从测试用例 ql/src/test/queries/clientpositive/setprocessornamespaces.q 中使用的带注释的示例
set zzz5;
-- sets zzz5
set zzz;set system:xxx5;
set system:xxx;
-- sets a system property xxx to 5set system:yyy${system:xxx};
set system:yyy;
-- sets yyy with value of xxxset go${hiveconf:zzz};
set go;
-- sets go base on value on zzzset hive.variable.substitutefalse;
set raw${hiveconf:zzz};
set raw;
-- disable substitution set a value to the literalset hive.variable.substitutetrue;EXPLAIN SELECT * FROM src where key${hiveconf:zzz};
SELECT * FROM src where key${hiveconf:zzz};
--use a variable in a queryset a1;
set ba;
set c${hiveconf:${hiveconf:b}};
set c;
--uses nested variables. set jar../lib/derby.jar;
add file ${hiveconf:jar};
list file;
delete file ${hiveconf:jar};
list file;查询构造期间的替换
当使用变量构造查询时Hive 将 value 替换为变量。
如果您运行两个不同的 Hive 会话则不会跨会话混合变量值。如果在同一 Hive session 中设置具有相同 name 的变量则查询将使用最后一个 set value。
禁用变量替换
默认情况下变量替换处于启用状态(hive.variable.substitute true)。如果这导致现有脚本出现问题请使用以下命令将其禁用
set hive.variable.substitutefalse;命令 Line 接口
设置
HCatalog 命令 line 接口(CLI)可以作为HIVE_HOME hive_home hcat_home /bin/hcat调用其中 hive_home 是已安装 Hive 的目录hcat_home 是已安装 HCatalog 的目录。 如果您正在使用 BigTop 的 rpms 或 debs则可以通过执行/usr/bin/hcat来调用 CLI。
HCatalog CLI
HCatalog CLI 支持以下命令 line 选项
选项用法描述-ghcat -g mygroup …告诉 HCatalog 需要创建的 table 必须有 group“mygroup”。-phcat -p rwxr-xr-x …告诉 HCatalog 需要创建的 table 必须具有权限“rwxr-xr-x”。-fhcat -f myscript.hcatalog …告诉 HCatalog myscript.hcatalog 是一个包含要执行的 DDL 命令的文件。-ehcat -e ‘create table mytable(a int);’ …告诉 HCatalog 将以下 string 视为 DDL 命令并执行它。-Dhcat -D key value …将 key-value 对作为 Java System Property 传递给 HCatalog。
请注意以下事项
-g和**-p**选项不是强制性的。只能提供一个**-e或-f**选项而不是两者。选项的顺序并不重要;您可以在任何 order 中指定选项。
如果未提供选项则会打印一条用法消息
Usage: hcat { -e query | -f filepath } [-g group] [-p perms] [-Dnamevalue]所有者权限
使用 HCatalog CLI 时如果没有对所有者的读取权限(例如-wxrwxr-x)则无法指定权限 string因为 string 以“-”开头。如果需要这样的权限设置您可以使用八进制 version在这种情况下将是 375.此外所有者具有读取权限(对于 example r-x-----或r–r–r–)的任何其他类型的权限 string 将正常工作。
Hive CLI
许多hcat命令可以作为hive命令发出包括所有 HCatalog DDL 命令。 Hive CLI 包含一些 HCatalog CLI 中不可用的命令。请注意这些差异
table group 的“hcat -g”和“hcat -p”以及权限设置仅在 HCatalog CLI 中可用。hcat使用-p flag 进行权限但hive使用它来指定 port 编号。hcat使用没有空格的-D flag 来定义 keyvalue 对但是hive使用带有空格的-d或–define(也是–hivevar)。 例如“hcat -DAB”与“hive -d AB”。没有任何标志的hcat打印帮助消息但hive使用-H flag 或–help。