优化阅读格式
This commit is contained in:
@ -25,15 +25,15 @@
|
||||
|
||||
### 1.1 Help
|
||||
|
||||
使用`hive -H`或者 `hive --help`命令可以查看所有命令的帮助,显示如下:
|
||||
使用 `hive -H` 或者 `hive --help` 命令可以查看所有命令的帮助,显示如下:
|
||||
|
||||
```
|
||||
usage: hive
|
||||
-d,--define <key=value> Variable subsitution to apply to hive
|
||||
commands. e.g. -d A=B or --define A=B --定义用户自定义变量
|
||||
--database <databasename> Specify the database to use -- 指定使用的数据库
|
||||
-e <quoted-query-string> SQL from command line -- 执行指定的SQL
|
||||
-f <filename> SQL from files --执行SQL脚本
|
||||
-e <quoted-query-string> SQL from command line -- 执行指定的 SQL
|
||||
-f <filename> SQL from files --执行 SQL 脚本
|
||||
-H,--help Print help information -- 打印帮助信息
|
||||
--hiveconf <property=value> Use value for given property --自定义配置
|
||||
--hivevar <key=value> Variable subsitution to apply to hive --自定义变量
|
||||
@ -45,11 +45,11 @@ usage: hive
|
||||
|
||||
### 1.2 交互式命令行
|
||||
|
||||
直接使用`Hive`命令,不加任何参数,即可进入交互式命令行。
|
||||
直接使用 `Hive` 命令,不加任何参数,即可进入交互式命令行。
|
||||
|
||||
### 1.3 执行SQL命令
|
||||
|
||||
在不进入交互式命令行的情况下,可以使用`hive -e `执行SQL命令。
|
||||
在不进入交互式命令行的情况下,可以使用 `hive -e ` 执行 SQL 命令。
|
||||
|
||||
```sql
|
||||
hive -e 'select * from emp';
|
||||
@ -61,7 +61,7 @@ hive -e 'select * from emp';
|
||||
|
||||
### 1.4 执行SQL脚本
|
||||
|
||||
用于执行的sql脚本可以在本地文件系统,也可以在HDFS上。
|
||||
用于执行的 sql 脚本可以在本地文件系统,也可以在 HDFS 上。
|
||||
|
||||
```shell
|
||||
# 本地文件系统
|
||||
@ -71,7 +71,7 @@ hive -f /usr/file/simple.sql;
|
||||
hive -f hdfs://hadoop001:8020/tmp/simple.sql;
|
||||
```
|
||||
|
||||
其中`simple.sql`内容如下:
|
||||
其中 `simple.sql` 内容如下:
|
||||
|
||||
```sql
|
||||
select * from emp;
|
||||
@ -79,7 +79,7 @@ select * from emp;
|
||||
|
||||
### 1.5 配置Hive变量
|
||||
|
||||
可以使用`--hiveconf`设置Hive运行时的变量。
|
||||
可以使用 `--hiveconf` 设置 Hive 运行时的变量。
|
||||
|
||||
```sql
|
||||
hive -e 'select * from emp' \
|
||||
@ -87,27 +87,27 @@ hive -e 'select * from emp' \
|
||||
--hiveconf mapred.reduce.tasks=4;
|
||||
```
|
||||
|
||||
> hive.exec.scratchdir:指定HDFS上目录位置,用于存储不同map/reduce阶段的执行计划和这些阶段的中间输出结果。
|
||||
> hive.exec.scratchdir:指定 HDFS 上目录位置,用于存储不同 map/reduce 阶段的执行计划和这些阶段的中间输出结果。
|
||||
|
||||
### 1.6 配置文件启动
|
||||
|
||||
使用`-i`可以在进入交互模式之前运行初始化脚本,相当于指定配置文件启动。
|
||||
使用 `-i` 可以在进入交互模式之前运行初始化脚本,相当于指定配置文件启动。
|
||||
|
||||
```shell
|
||||
hive -i /usr/file/hive-init.conf;
|
||||
```
|
||||
|
||||
其中`hive-init.conf`的内容如下:
|
||||
其中 `hive-init.conf` 的内容如下:
|
||||
|
||||
```sql
|
||||
set hive.exec.mode.local.auto = true;
|
||||
```
|
||||
|
||||
> hive.exec.mode.local.auto 默认值为false,这里设置为true ,代表开启本地模式。
|
||||
> hive.exec.mode.local.auto 默认值为 false,这里设置为 true ,代表开启本地模式。
|
||||
|
||||
### 1.7 用户自定义变量
|
||||
|
||||
`--define <key=value> `和`--hivevar <key=value> `在功能上是等价的,都是用来实现自定义变量,这里给出一个示例:
|
||||
`--define <key=value> ` 和 `--hivevar <key=value> ` 在功能上是等价的,都是用来实现自定义变量,这里给出一个示例:
|
||||
|
||||
定义变量:
|
||||
|
||||
@ -135,15 +135,15 @@ hive > select ${hivevar:j} from emp;
|
||||
|
||||
### 2.1 HiveServer2
|
||||
|
||||
Hive内置了HiveServer和HiveServer2服务,两者都允许客户端使用多种编程语言进行连接,但是HiveServer不能处理多个客户端的并发请求,所以产生了HiveServer2。
|
||||
Hive 内置了 HiveServer 和 HiveServer2 服务,两者都允许客户端使用多种编程语言进行连接,但是 HiveServer 不能处理多个客户端的并发请求,所以产生了 HiveServer2。
|
||||
|
||||
HiveServer2(HS2)允许远程客户端可以使用各种编程语言向Hive提交请求并检索结果,支持多客户端并发访问和身份验证。HS2是由多个服务组成的单个进程,其包括基于Thrift的Hive服务(TCP或HTTP)和用于Web UI的Jetty Web服务器。
|
||||
HiveServer2(HS2)允许远程客户端可以使用各种编程语言向 Hive 提交请求并检索结果,支持多客户端并发访问和身份验证。HS2 是由多个服务组成的单个进程,其包括基于 Thrift 的 Hive 服务(TCP 或 HTTP)和用于 Web UI 的 Jetty Web 服务器。
|
||||
|
||||
HiveServer2拥有自己的CLI(Beeline),Beeline是一个基于SQLLine的JDBC客户端。由于HiveServer2是Hive开发维护的重点(Hive0.15后就不再支持hiveserver),所以Hive CLI已经不推荐使用了,官方更加推荐使用Beeline。
|
||||
HiveServer2 拥有自己的 CLI(Beeline),Beeline 是一个基于 SQLLine 的 JDBC 客户端。由于 HiveServer2 是 Hive 开发维护的重点 (Hive0.15 后就不再支持 hiveserver),所以 Hive CLI 已经不推荐使用了,官方更加推荐使用 Beeline。
|
||||
|
||||
### 2.1 Beeline
|
||||
|
||||
Beeline拥有更多可使用参数,可以使用`beeline --help` 查看,完整参数如下:
|
||||
Beeline 拥有更多可使用参数,可以使用 `beeline --help` 查看,完整参数如下:
|
||||
|
||||
```properties
|
||||
Usage: java org.apache.hive.cli.beeline.BeeLine
|
||||
@ -192,22 +192,22 @@ Usage: java org.apache.hive.cli.beeline.BeeLine
|
||||
|
||||
### 2.3 常用参数
|
||||
|
||||
在Hive CLI中支持的参数,Beeline都支持,常用的参数如下。更多参数说明可以参见官方文档 [Beeline Command Options](https://cwiki.apache.org/confluence/display/Hive/HiveServer2+Clients#HiveServer2Clients-Beeline%E2%80%93NewCommandLineShell)
|
||||
在 Hive CLI 中支持的参数,Beeline 都支持,常用的参数如下。更多参数说明可以参见官方文档 [Beeline Command Options](https://cwiki.apache.org/confluence/display/Hive/HiveServer2+Clients#HiveServer2Clients-Beeline%E2%80%93NewCommandLineShell)
|
||||
|
||||
| 参数 | 说明 |
|
||||
| -------------------------------------- | ------------------------------------------------------------ |
|
||||
| **-u \<database URL>** | 数据库地址 |
|
||||
| **-n \<username>** | 用户名 |
|
||||
| **-p \<password>** | 密码 |
|
||||
| **-d \<driver class>** | 驱动(可选) |
|
||||
| **-e \<query>** | 执行SQL命令 |
|
||||
| **-f \<file>** | 执行SQL脚本 |
|
||||
| **-d \<driver class>** | 驱动 (可选) |
|
||||
| **-e \<query>** | 执行 SQL 命令 |
|
||||
| **-f \<file>** | 执行 SQL 脚本 |
|
||||
| **-i (or)--init \<file or files>** | 在进入交互模式之前运行初始化脚本 |
|
||||
| **--property-file \<file>** | 指定配置文件 |
|
||||
| **--hiveconf** *property**=**value* | 指定配置属性 |
|
||||
| **--hivevar** *name**=**value* | 用户自定义属性,在会话级别有效 |
|
||||
|
||||
示例: 使用用户名和密码连接Hive
|
||||
示例: 使用用户名和密码连接 Hive
|
||||
|
||||
```shell
|
||||
$ beeline -u jdbc:hive2://localhost:10000 -n username -p password
|
||||
@ -217,18 +217,18 @@ $ beeline -u jdbc:hive2://localhost:10000 -n username -p password
|
||||
|
||||
## 三、Hive配置
|
||||
|
||||
可以通过三种方式对Hive的相关属性进行配置,分别介绍如下:
|
||||
可以通过三种方式对 Hive 的相关属性进行配置,分别介绍如下:
|
||||
|
||||
### 3.1 配置文件
|
||||
|
||||
方式一为使用配置文件,使用配置文件指定的配置是永久有效的。Hive有以下三个可选的配置文件:
|
||||
方式一为使用配置文件,使用配置文件指定的配置是永久有效的。Hive 有以下三个可选的配置文件:
|
||||
|
||||
+ hive-site.xml :Hive的主要配置文件;
|
||||
+ hive-site.xml :Hive 的主要配置文件;
|
||||
|
||||
+ hivemetastore-site.xml: 关于元数据的配置;
|
||||
+ hiveserver2-site.xml:关于HiveServer2的配置。
|
||||
+ hiveserver2-site.xml:关于 HiveServer2 的配置。
|
||||
|
||||
示例如下,在hive-site.xml配置`hive.exec.scratchdir`:
|
||||
示例如下,在 hive-site.xml 配置 `hive.exec.scratchdir`:
|
||||
|
||||
```xml
|
||||
<property>
|
||||
@ -240,7 +240,7 @@ $ beeline -u jdbc:hive2://localhost:10000 -n username -p password
|
||||
|
||||
### 3.2 hiveconf
|
||||
|
||||
方式二为在启动命令行(Hive CLI / Beeline)的时候使用`--hiveconf`指定配置,这种方式指定的配置作用于整个Session。
|
||||
方式二为在启动命令行 (Hive CLI / Beeline) 的时候使用 `--hiveconf` 指定配置,这种方式指定的配置作用于整个 Session。
|
||||
|
||||
```
|
||||
hive --hiveconf hive.exec.scratchdir=/tmp/mydir
|
||||
@ -248,7 +248,7 @@ hive --hiveconf hive.exec.scratchdir=/tmp/mydir
|
||||
|
||||
### 3.3 set
|
||||
|
||||
方式三为在交互式环境下(Hive CLI / Beeline),使用set命令指定。这种设置的作用范围也是Session级别的,配置对于执行该命令后的所有命令生效。set兼具设置参数和查看参数的功能。如下:
|
||||
方式三为在交互式环境下 (Hive CLI / Beeline),使用 set 命令指定。这种设置的作用范围也是 Session 级别的,配置对于执行该命令后的所有命令生效。set 兼具设置参数和查看参数的功能。如下:
|
||||
|
||||
```shell
|
||||
0: jdbc:hive2://hadoop001:10000> set hive.exec.scratchdir=/tmp/mydir;
|
||||
@ -263,12 +263,12 @@ No rows affected (0.025 seconds)
|
||||
|
||||
### 3.4 配置优先级
|
||||
|
||||
配置的优先顺序如下(由低到高):
|
||||
配置的优先顺序如下 (由低到高):
|
||||
`hive-site.xml` - >` hivemetastore-site.xml `- > `hiveserver2-site.xml` - >` -- hiveconf`- > `set`
|
||||
|
||||
### 3.5 配置参数
|
||||
|
||||
Hive可选的配置参数非常多,在用到时查阅官方文档即可[AdminManual Configuration](https://cwiki.apache.org/confluence/display/Hive/AdminManual+Configuration)
|
||||
Hive 可选的配置参数非常多,在用到时查阅官方文档即可[AdminManual Configuration](https://cwiki.apache.org/confluence/display/Hive/AdminManual+Configuration)
|
||||
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user