大象教程
首页
Spark
Hadoop
HDFS
MapReduce
Hive
Hive 教程
Hive 教程
Hive 安装(基于Ubuntu系统)
Hive 架构
Hive 内置函数
Hive UDF 简介
Hive DDL 命令
Hive 视图
Hive 索引
Hive Metastore 的三种配置方式
Hive 数据模型
Hive 数据类型
Hive 操作符
Hive SerDe(序列化与反序列化)
Hive 数据分区
Hive 分桶
Hive 分区与分桶的比较
Hive Join 的原理与机制
Hive map Join
Hive bucket map join
#Hive 安装(基于 Ubuntu 系统) 为了学习 Hive 的相关操作,必须先安装 Hive。这样方便后续的实践。 ##基于 Ubuntu 系统安装 Hive 为了在 Ubuntu 成功安装 Apache Hive,请按照下面的步骤一步一步操作。 ###下载 Hive 在本教程我们将使用的 hive 版本是:`hive-0.13.1-cdh5.3.2`。你可以使用 hive 最新的版本。可以通过下面链接下载 hive: http://archive.cloudera.com/cdh5/cdh/5/hive-0.13.1-cdh5.3.2.tar.gz 成功下载之后,得到下面的压缩包: `apache-hive-0.13.1-cdh5.3.2 hive-0.13.1-cdh5.3.2.tar.gz` 解压它: `tar zxvf hive-0.13.1-cdh5.3.2.tar.gz` ###设置 Hive 环境变量 在 home 目录下编辑 .bashrc 文件,并在该文件的末尾增加以下语句: ``` export HADOOP_USER_CLASSPATH_FIRST=true export PATH=$PATH:$HIVE_HOME/bin export HADOOP_HOME=/home/dataflair/hadoop-2.6.0-cdh5.5.1 export HIVE_HOME=/home/dataflair/hive-0.13.1-cdh5.3.2 ``` *注意:这里需要输入你自己的 hive 版本和名称,以及正确的 Hive 文件地址。 “/home/dataflair/hive-0.13.1-cdh5.3.2” 这个是我自己的 hive 文件路径,“hive-0.13.1-cdh5.3.2” 是文件名。你需要根据自己的具体情况做修改。确认无误之后保存 .bashrc 文件。* 使环境变量生效: `$ source ~/.bashrc` ###执行 Hive 在 linux shell 输入 hive 可以进入到 hive 的命令模式: ```bash $ hive ``` 如下所示: ![hive安装](/media/editor/file_1573055142000_20191106234544172621.png "hive安装") ###退出 Hive 如果想要退出命令行模式,可以用下面命令: ```bash hive> exit; ``` 现在你可以在 hive 上执行命令了。 在使用 hive 之前,你需要修改一下 hive 的元数据存储层。https://data-flair.training/blogs/configure-hive-metastore-to-mysql/ ##Hive 命令 下面是 Hive 的一些基本命令。 ###show databases 命令 该命令会返回 hive 里面的数据库列表。如果你是新安装的 Hive,并且还没有创建任何数据库,那么此时会返回一个默认的数据库,数据库名称为 “default” 。 **语法:** ```mysql show databases; ``` **示例:** ```mysql show databases; ``` ###create database 命令 该命令用来为 Hive 创建数据库。 **语法:** ```mysql create database 数据库名; ``` **示例:** ```mysql create database test; ``` ###use 命令 use 命令用于把当前环境切换到对应数据库。 **语法:** ```mysql use 数据库名; ``` **示例:** ```mysql use test; ``` ###显示当前数据库 为了知道当前环境是在哪个数据库下,可以使用下面命令: ```hive set hive.cli.print.current.db=true; ``` `hive.cli.print.current.db` 这个值默认为 `fals`e,设置为 `true` 之后,会显示当前所在的数据库名。如下所示: ![hive命令](/media/editor/file_1573055546000_20191106235227093068.png "hive命令") ###drop 命令 drop 命令用于删除数据库或者表。 **语法:** ```mysql drop database 库名; drop table 表名; ``` **示例:** ```mysql drop database test; drop table test; ``` ###create table 命令 这个命令用于创建新表。 **语法:** ```mysql CREATE TABLE TABLE_NAME (Parameters) COMMENT ‘Employee details’ ROW FORMAT DELIMITED FIELDS TERMINATED BY ‘\t’ LINES TERMINATED BY ‘\n’ STORED AS TEXTFILE; ``` **示例:** ```mysql create table employee ( Name String comment ‘Employee Name’, Id int, MobileNumber String, Salary Float ) row format delimited fields terminated by ‘,’ lines terminated by ‘\n’ stored as textfile; ``` ###查看当前库的所有表 这个命令可以查看当前库下面的所有表。 **语法:** ```mysql show tables; ``` ###alter table 命令 该命令通常用于修改表的属性。比如修改表名,修改列名等。 **语法:** ```mysql ALTER TABLE TableName RENAME TO new_name ALTER TABLE TableName ADD COLUMNS (col_spec[, col_spec ...]) ALTER TABLE TableName DROP [COLUMN] column_name ALTER TABLE TableName CHANGE column_name new_name new_type ALTER TABLE TableName REPLACE COLUMNS (col_spec[, col_spec ...]) ``` **示例:** ```mysql ALTER TABLE employee RENAME TO demo1; ``` 把 employee 表的名称改成 demo1。 ###加载数据 可以使用 `load data` 命令把文件里面的数据加载到 hive 表。 **语法:** ```mysql LOAD DATA LOCAL INPATH 'Path of the File' OVERWRITE INTO TABLE 'Name of the Table'; ``` **示例:** ```mysql LOAD DATA LOCAL INPATH '/home/dataflair/Desktop/details.txt' OVERWRITE INTO TABLE employee; ```
加我微信交流吧