Hive使用入门

先介绍一些基本的命令:

1、进入hive命令行,这种方式进入之后,操作结果展示时带有执行mapreduce的调试信息;

hive --service cli //等同于直接输入hive

2、进入hive命令行静默模式,不输出调试信息;

hive -S //静默模式

3、查看表信息,查看函数信息,查看表字段信息,每一条hiveql语句后面都要跟分号(;)结尾

show tables;
show functions;
desc xx_user;

4、查看hdfs文件信息,查看linux文件信息

dfs -ls /usr; --查看hdfs文件系统信息
!ls ;         --查看linux文件系统信息

5、hive在linux命令行下的交互模式,静默模式

hive -e "show tables"    //交互模式
hive -S -e "show tables" //静默的交互模式

6、hive执行sql文件

第一种方式,在linux命令行下

hive -f queryall.sql

第二种方式,在hive命令行下

source queryall.sql

hive数据存储:

hive数据存储基于HDFS,没有专门的数据存储格式。

hive可以直接加载本地文本文件(.txt),同时创建表可以指定间隔符。

表分为内部表、分区表、外部表、桶表。

a)默认创建的表是内部表:

create table student(id int,name string) location '/user/feiy/student';

b)分区表

create table student_all(id int,name string) partitioned by (gender string) row format delimited fields terminated by '\t';

c)外部表


hive目前不支持insert into table table_name values(x,x,x,x);的方式插入数据
只能是
1、导入外部数据
2、创建时查询别的表
3、插入时查询别的表



                
### Hive 快速入门教程 #### 1. Hive 是什么? Hive 是一种基于 Hadoop 的数据仓库工具,它允许用户通过类 SQL 询语言(称为 HiveQL 或 HQL)来分析存储在 HDFS 中的大规模结构化数据[^1]。Hive 将用户的询转换为 MapReduce、Tez 或 Spark 作业,在分布式环境中执行。 #### 2. Hive 底层如何运行? Hive 的底层依赖于 Hadoop 生态系统的多个组件: - 数据存储:Hive 使用 HDFS 来存储其管理的数据[^5]。 - 执行引擎:Hive询被编译成一系列的 MapReduce/Spark/Tez 任务并提交到 YARN 进行调度和执行。 #### 3. Hive 架构概述 Hive 的核心架构由以下几个部分组成: - **驱动器 (Driver)**:负责解析 SQL 并将其转化为可执行的任务序列[^4]。 - **元数据存储 (Metastore)**:用于保存表定义、分区信息和其他元数据的信息。 - **执行引擎**:实际执行生成的计划,通常会调用 MapReduce 或其他计算框架完成具体的工作。 #### 4. 快速入门环境准备 为了能够顺利使用 Hive,需要安装以下软件及其版本兼容性设置: ##### 4.1 软件需求 - **Hadoop**:作为基础平台提供分布式存储与计算能力。 - **JDK**:Java 开发包是运行 Hive 和相关服务的基础。 - **MySQL**(或其他关系型数据库):用来持久化 Hive 的元数据。 ##### 4.2 安装步骤概览 以下是简化版的安装指南: 1. 下载并解压 Hive 发行版至目标路径; 2. 编辑 `hive-site.xml` 文件指定 MySQL 地址以及端口等连接参数[^3]; 3. 启动 Hadoop 集群确保 NameNode 和 DataNodes 正常运作; 4. 初始化 Metastore 表结构并通过命令 `schematool -initSchema -dbType mysql` 创建必要的库表; 5. 测试 Hive CLI 是否可以正常访问默认数据库 default。 #### 5. 示例操作 下面是一个简单的例子展示如何向已存在的分区表插入新记录: ```sql INSERT OVERWRITE TABLE student PARTITION(month='202107') SELECT * FROM temp_student WHERE month='202107'; ``` 此脚本的作用是从临时表 `temp_student` 提取符合条件的所有字段值覆盖写入目标表 `student` 对应月份分区内。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

luffy5459

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值