CDH环境下关于Hive的部分命令(二)

1.集合数据类型
数据格式:

xiaoming,basketball_volleyball,phone1:18_phone2:19,x_xxx
xiaoli,basketball_badminton,phone1:18_phone2:19,xx_xxx

创表语法:

create table demo(
name string,
like array<string>,
phone map<string, int>,
body struct<height:string, weight:string>
)
row format delimited fields terminated by ','
collection items terminated by '_'
map keys terminated by ':'
lines terminated by '\n';

row format delimited fields terminated by ‘,’ 列分隔符
collection items terminated by ‘_’ 数据分割符号
map keys terminated by ‘:’ MAP中的key和value的分隔符
lines terminated by ‘\n’ 行分隔符

查询语法:

select like[0],phone['phone1'],body.height from demo
where name="xiaoming";

2.外部表
创表语法:

create external table if not exists test(
id int,
name string,
age int
)
row format delimited fields terminated by '\t';

如果删除外部表,会将元数据删除而实际的数据不会删除

3.分区表
在Hive Select查询中一般会扫描整个表内容,会消耗很多时间做没必要的工作。
有时候只需要扫描表中关心的一部分数据,因此建表时引入了partition概念。
分区表指的是在创建表时指定的partition的分区空间。
当前互联网应用每天都要存储大量的日志文件,几G、几十G甚至更大都是有可能。
存储日志,其中必然有个属性是日志产生的日期。
在产生分区时,就可以按照日志产生的日期列进行划分。把每一天的日志当作一个分区。
将数据组织成分区,主要可以提高数据的查询速度。

创表语法:

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

为分区表加载数据:

load data local inpath '/run1/f.txt' into table test partition(month='201906');
load data local inpath '/run1/f.txt' into table test partition(month='201907');

分区会在加载数据时生成

单分区查询

select * from test where month='201906';

多分区查询

select * from tset where month='201906'
union
select * from test where month='201907';

单独增加分区

alter table test add partition(month='201908') ;

单独增加多个分区

alter table test add partition(month='201909') partition(month='201910');

删除分区

alter table test drop partition (month='201910');

删除多个分区

alter table test drop partition (month='201908'), partition (month='201909');
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
CDH 6.2 中配置 Hive,需要执行以下步骤: 1. 安装 MySQL 或 MariaDB 数据库,并创建一个新的数据库和用户,用于 Hive 元数据存储。 2. 在 Hive 配置文件中设置元数据存储的 JDBC 连接参数。打开 `/etc/hive/conf/hive-site.xml` 文件,添加以下内容: ```xml <property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://<mysql_host>:<mysql_port>/<hive_metastore_db_name>?createDatabaseIfNotExist=true</value> <description>metadata is stored in a MySQL server</description> </property> <property> <name>javax.jdo.option.ConnectionDriverName</name> <value>com.mysql.jdbc.Driver</value> <description>MySQL JDBC driver class</description> </property> <property> <name>javax.jdo.option.ConnectionUserName</name> <value><hive_metastore_db_user></value> <description>user name for connecting to mysql server</description> </property> <property> <name>javax.jdo.option.ConnectionPassword</name> <value><hive_metastore_db_password></value> <description>password for connecting to mysql server</description> </property> ``` 其中,`<mysql_host>` 为 MySQL 主机名或 IP 地址,`<mysql_port>` 为 MySQL 端口号,`<hive_metastore_db_name>` 为 Hive 元数据存储的数据库名称,`<hive_metastore_db_user>` 和 `<hive_metastore_db_password>` 分别为连接 MySQL 数据库的用户名和密码。 3. 配置 Hadoop HDFS,创建 Hive 所需的 HDFS 目录。例如,可以执行以下命令: ```bash hdfs dfs -mkdir /user/hive/warehouse hdfs dfs -chmod g+w /user/hive/warehouse ``` 4. 启动 Hive Metastore 服务。可以使用以下命令启动: ```bash sudo systemctl start hive-metastore ``` 5. 启动 HiveServer2 服务。可以使用以下命令启动: ```bash sudo systemctl start hive-server2 ``` 6. 使用 Hive 命令行客户端测试配置是否成功。可以使用以下命令: ```bash hive ``` 如果成功配置,将会进入到 Hive 命令行界面。 以上就是在 CDH 6.2 中配置 Hive 的步骤,如果有需要可以参考。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值