Hive SQL总结(大数据学习18)

本文介绍了Hive的两种启动方式:直接启动和Hive Thrift服务,并详细讲解了Hive中内表和外表的创建、数据导入、查询以及分区管理等操作。内容包括查看数据库、使用数据库、创建内外表、导入数据、删除表、创建分区表以及增加和减少分区等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

没有关注的小伙伴可以在微信搜索框中搜索微信公众号: 

3分钟秒懂大数据,然后点击关注,回复 Hive SQL总结  即可免费领取Hive SQL总结(大数据学习18)全部文档!!!

图片

一. HIVE启动的两种方式 :1 直接启动  2 Hive thrift服务

1 Hive 直接启动: 找寻你所安装的hive文件下的hive驱动  我的驱动是在 apps/apache-hive-1.2.1-bin/hive 下  执行驱动就可以将hive启动起来

[hadoop@mini1 ~]$ cd apps/apache-hive-1.2.1-bin/

[hadoop@mini1 apache-hive-1.2.1-bin]$ bin/hive

Hive thrift服务: 将hive作为一个服务器,通过另一个节点用beeline去连接 具体操作如下:

[hadoop@mini1 ~]$ cd apps/apache-hive-1.2.1-bin/
[hadoop@mini1 apache-hive-1.2.1-bin]$ bin/hiveserver2    //先作为服务器启动

    重新开一个mini1窗口   

[hadoop@mini1 ~]$ cd apps/apache-hive-1.2.1-bin/
[hadoop@mini1 apache-hive-1.2.1-bin]$ bin/beeline   //先启动beeline节点,然后在连接你启动的hive服务器

// 当进去beeline节点后执行下面操作

beeline> !connect jdbc:hive2://localhost:10000
Connecting to jdbc:hive2://localhost:10000
Enter username for jdbc:hive2://localhost:10000: hadoop   //该账号为你登录的服务器用户名
Enter password for jdbc:hive2://localhost:10000: ******   //密码为服务器密码



  

  上述就是hive的两种启动方式!

  二、 Hive命令

    现在在第一种hive启动方式下进行如下操作:

### Hive SQL大数据处理中的高级用法和最佳实践 #### 一、Hive 的核心概念与基础 Hive 是基于 Hadoop 构建的数据仓库工具,支持通过类 SQL 查询语言(HiveQL)对大规模分布式数据集进行分析[^1]。它允许用户定义表结构并查询存储在 HDFS 上的文件。 #### 二、Hive 表的操作优化 为了提高性能,在实际应用中可以采用以下方法: - **分区(Partitioning)**: 将大表按某些列分割成更小的部分,从而减少扫描范围。例如: ```sql CREATE TABLE sales ( id INT, amount DOUBLE ) PARTITIONED BY (year STRING); ``` - **分桶(Bucketing)**: 进一步细化分区内的数据分布,提升 JOIN 和 GROUP BY 性能。 ```sql CREATE TABLE users_bucketed ( user_id BIGINT, name STRING ) CLUSTERED BY (user_id) INTO 8 BUCKETS; ``` 使用分桶时需设置 `hive.enforce.bucketing` 参数为 true[^3]。 #### 三、复杂查询优化技巧 对于复杂的 Hive 查询,可以通过调整参数或重写逻辑来改善效率: - **谓词下推(Predicate Pushdown)**: 确保过滤条件尽可能早地应用于输入流,降低不必要的 I/O 开销。 - **Map-Side Join vs Reduce-Side Join**: 当一个小表能够完全加载到内存中时,推荐使用 Map-side join;否则应考虑 reduce-side join。 - **动态分区插入**: 批量向多个分区写入数据可显著加快 ETL 流程速度。 ```sql INSERT OVERWRITE TABLE target_table PARTITION(year='2023') SELECT * FROM source_table WHERE year='2023'; ``` #### 四、元数据管理 除了基本 DDL 命令外,还可以灵活运用 ALTER 语句更新现有对象的信息。比如修改数据库的位置或者重新设定其属性等: ```sql -- 更改数据库物理地址 ALTER DATABASE mydb SET LOCATION 'hdfs://new/path/to/mydb'; -- 添加自定义标签给指定库 ALTER SCHEMA analytics_db SET DBPROPERTIES ('created_by'='John Doe', 'department'='Data Engineering'); ``` #### 五、调优配置项 合理配置一些全局变量有助于获得更好的执行效果: | 属性名 | 描述 | | --- | --- | | hive.exec.dynamic.partition.mode | 控制是否启用动态分区功能,默认nonstrict模式允许无静态值参与划分| | mapreduce.job.reduces | 设置 reducer 数目影响整体吞吐率以及资源消耗程度| --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

3分钟秒懂大数据

你的打赏就是对我最大的鼓励

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

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

打赏作者

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

抵扣说明:

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

余额充值