【云贝多源码】【解读flask源码】【tomcat构造源码】hive beeline 源码

来源:手游 unity 源码

1.7.3、Hive CLI 和 Beeline及参数设置
2.hive终端常用指令
3.Hive高阶之Beeline与JDBC

hive beeline 源码

7.3、Hive CLI 和 Beeline及参数设置

       本文详细介绍了Hive CLI和Beeline的使用方法及参数配置,以帮助用户更高效地执行Hive相关操作。

       ### Hive CLI操作与参数设置

       #### 1.1 Hive CLI基本命令

       使用`hive -H`或`hive --help`命令查看所有命令的帮助信息。通过`hive`命令直接进入交互式命令行模式。云贝多源码

       #### 1.2 执行SQL命令

       不进入交互模式时,使用`hive -e`执行SQL命令。

       #### 1.3 执行SQL脚本

       脚本可以在本地文件系统或HDFS上执行。

       #### 1.4 配置Hive变量

       使用`--hiveconf`设置Hive运行时的变量,如`hive.exec.scratchdir`用于指定HDFS目录。

       #### 1.5 配置文件启动

       通过`-i`参数运行初始化脚本,等同于指定配置文件启动。

       #### 1.6 用户自定义变量

       `--define`和`--hivevar`功能相同,用于自定义变量。

       #### 1.7 结果示例

       定义和引用自定义变量后执行查询,展示结果。

       ### Beeline与参数

       #### 2.1 HiveServer2与Beeline

       HiveServer和HiveServer2允许多客户端并发访问,HS2支持身份验证,解读flask源码具有独立CLI(Beeline)。

       #### 2.2 Beeline参数

       Beeline支持更多参数,如`-u`、`-n`、`-p`等,用于连接参数设置,详情参考官方文档。

       #### 2.3 连接示例

       使用用户名和密码连接Hive:`beeline -u jdbc:hive2://localhost: -n username -p password`。

       ### Hive配置

       #### 3.1 配置文件

       使用配置文件永久设置参数,tomcat构造源码如`hive-site.xml`。

       #### 3.2 hiveconf参数

       命令行指定配置,作用于当前会话。

       #### 3.3 set命令

       在交互模式中设置参数,作用于当前会话。

       ### Hive参数优先级与配置

       配置优先级依次为:配置文件->hiveconf->set命令。

       ### Hive常用参数

       #### 4.1 hive merge小文件

       合并小文件以优化Map任务,减少资源浪费。

       #### 4.2 设置map/reduce参数

       调整reduce个数、亚马逊程序源码内存等参数以优化任务执行。

       ### 总结与参考

       Hive CLI和Beeline提供了灵活的参数设置方式,通过配置文件、命令行参数及交互命令实现参数调整,以优化Hive任务执行效率。参考官方文档获取更多详细配置信息。

hive终端常用指令

       进入beeline用户

       beeline -u 'jdbc:hive2://...:' -n -p ''

       查看库/表

       show databases/tables;

       查看表结构

       desc table_name;

       创建表

       CREATE [TEMPORARY] [EXTERNAL] TABLE [IF NOT EXISTS] [db_name.] table_name [(col_name data_type [COMMENT col_comment], ...)] [COMMENT table_comment] [ROW FORMAT row_format] [STORED AS file_format]

       删除表或数据库

       drop table table_name;

       drop database database_name;

       删除表中数据

       truncate table table_name;

       添加分区

       alter table my_partition_test_table if not exists add partition (pdate=’’);

       按分区删除数据

       ALTER TABLE table_name DROP [IF EXISTS] PARTITION partition_spec, PARTITION partition_spec,...

       创建测试表

       create table ods_cmos.ods_bas_cmft_cosop_t_client_abnormal_info_test as select * from ods_cmos.ods_bas_cmft_cosop_t_client_abnormal_info where 1=0;

       从测试表插入数据到目标表

       带分区

       INSERT OVERWRITE TABLE ods_bak_t_branch_info PARTITION (pdate = '--') SELECT * from ods_bak_t_branch_info_test WHERE pdate='--'

       不带分区

       INSERT OVERWRITE TABLE ods_bak_t_branch_info SELECT * from ods_bak_t_branch_info_test

       插入数据

       LOAD DATA [LOCAL] INPATH 'filepath' [OVERWRITE] INTO TABLE tablename [PARTITION (partcol1=val1, partcol2=val2 ...)]

       修改表

       ALTER TABLE name RENAME TO new_name

       ALTER TABLE name ADD COLUMNS (col_spec[, col_spec ...])

       ALTER TABLE name DROP [COLUMN] column_name

       ALTER TABLE name CHANGE column_name new_name new_type

       ALTER TABLE name REPLACE COLUMNS (col_spec[, col_spec ...])

       添加字段到最后

       alter table table_name add columns (c_time string comment '当前时间');

       移动到指定位置

       alter table table_name change c_time c_time string after address ;

       内置运算符

       关系运算符、算术运算符、逻辑运算符、宏观指标源码复杂运算符

       内置函数

       聚合函数

       视图和索引

       创建视图

       CREATE VIEW [IF NOT EXISTS] view_name [(column_name [COMMENT column_comment], ...) ] [COMMENT table_comment] AS SELECT ...

       删除视图

       DROP VIEW view_name

       创建索引

       CREATE INDEX index_name ON TABLE base_table_name (col_name, ...) AS ' index.handler.class.name' [WITH DEFERRED REBUILD] [IDXPROPERTIES (property_name=property_value, ...)] [IN TABLE index_table_name] [PARTITIONED BY (col_name, ...)] [ [ ROW FORMAT ...] STORED AS ... | STORED BY ... ] [LOCATION hdfs_path] [TBLPROPERTIES (...)]

       删除索引

       DROP INDEX ON

       SELECT查询

       SELECT [ALL | DISTINCT] select_expr, select_expr, ... FROM table_reference [WHERE where_condition] [GROUP BY col_list] [HAVING having_condition] [CLUSTER BY col_list | [DISTRIBUTE BY col_list] [SORT BY col_list]]

       ORDER BY

       SELECT [ALL | DISTINCT] select_expr, select_expr, ... FROM table_reference [WHERE where_condition] [GROUP BY col_list] [HAVING having_condition] [ORDER BY col_list]] [LIMIT number];

       GROUP BY

       SELECT [ALL | DISTINCT] select_expr, select_expr, ... FROM table_reference [WHERE where_condition] [GROUP BY col_list] [HAVING having_condition] [ORDER BY col_list]] [LIMIT number];

       JOIN

       join_table: table_reference JOIN table_factor [join_condition] | table_reference { LEFT|RIGHT|FULL} [OUTER] JOIN table_reference join_condition | table_reference LEFT SEMI JOIN table_reference join_condition | table_reference CROSS JOIN table_reference [join_condition]

Hive高阶之Beeline与JDBC

       深入探讨Hive的高级使用,重点介绍了HiveServer2以及其对Beeline和JDBC的集成。

       HiveServer2作为Hive的server端,为其他工具提供服务。启动该服务,便可利用远程访问执行Hive查询。

       为了连接HiveServer2,使用Beeline方式实现。通过命令行界面进行连接,需要提供连接串,包含HiveServer2启动的默认端口,以及集群用户名和密码。

       在Beeline界面中操作表就如同使用客户端模式,显示风格与MySQL相似,对输出格式做了优化。为了控制日志显示,可通过CM管理界面调整日志级别。

       通过JDBC访问HiveServer2,首先需要获取与之对应的驱动。一个例子展示了利用JDBC进行表操作,包括删除、创建和查询表。这种方式适合前端页面展示Hive查询结果,适用于数据量不大,避免将结果导入其他数据库的情况。

       然而,在使用JDBC访问时,遇到一些错误。连接驱动名与文档中的不符,原因在于文档未及时更新,以及未将hive连接改为hive2模式,这是正常执行操作的必要步骤。

       在进行JDBC访问时,需注意的错误提示,比如连接串的正确性与驱动选择的一致性。一旦正确配置以上细节,便可顺利执行查询。

文章所属分类:知识频道,点击进入>>