大数据-玩转数据-hive简单应用

大数据-玩转数据-hive简单应用

一、介绍:
Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供类SQL查询功能。

各组件的基本功能
1.) 用户接口主要由三个:CLI、JDBC/ODBC和WebGUI。其中,CLI为shell命令行;JDBC/ODBC是Hive的JAVA实现,与传统数据库JDBC类似;WebGUI是通过浏览器访问Hive。

2.)元数据存储:Hive 将元数据存储在数据库中。Hive 中的元数据包括表的名字,表的列和分区及其属性,表的属性(是否为外部表等),表的数据所在目录等。通常是存储在关系数据库如 mysql , derby中。

3.)解释器、编译器、优化器完成 HQL 查询语句从词法分析、语法分析、编译、优化以及查询计划的生成。生成的查询计划存储在 HDFS 中,并在随后有 MapReduce 调用执行。

hive使用方式
首先确保 hadoop平台已经启动,mysql数据库已经启动
hive的元数据库默认是derby,一次只能打开一个会话;若要支持多个用户同时访问,则需要选择一个独立的元数据库,常见的都选择mysql。

确保元数据管理服务metastore服务已经启动:

[root@hadoop1 ~]# nohup hive --service metastore > metastore.log >2&1 &

到远程客户端(比如 Tableau)连接到hive数据库,还需要启动hive service:

[root@hadoop1 ~]# nohup hive --service hiveserver2 > hiveserver2.log 2>&1 &

[root@hadoop1 ~]# jps
在这里插入图片描述
检查相关进程

[root@hadoop1 ~]# ps -aux| grep hiveserver2
[root@hadoop1 ~]# ps -aux| grep metastore 

使用 kill -9 进程id 退出

1、Hive交互shell使用
配置过环境变量,可以直接在命令行中输入

[root@hadoop1 ~]# hive

在这里插入图片描述
在别的节点上用beeline去连接
分布连接

[root@hadoop1 ~]# hive/bin/beeline
[root@hadoop1 ~]#  beeline>!connect jdbc:hive2://192.168.80.2:1000 

回车后输入用户密码登录

或者启动就连接

[root@hadoop1 ~]# bin/beeline -u jdbc:hive2://hadoop01:10000 -n hadoop

应用具体实例
1、 创建内部表test

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

示例, 显示如下:
在这里插入图片描述
登录数据库查看

[root@hadoop1 conf]# mysql -uhive -p

输入密码登录
查看表内容

mysql> use hive 
mysql> show tables;

在这里插入图片描述

mysql> select * from  TBLS;

在这里插入图片描述
2、 创建外部表pageview。

 hive> create external table if not exists pageview(
    > pageid int,
    > page_url string comment 'The page URL'
    > )
    > row format delimited fields terminated by '/t'
    > location 'hdfs://192.168.158.171:9000/user/hivewarehouse/';

在这里插入图片描述
3、 创建分区表invites。

hive> create table student_p(
    > Sno int,
    > Sname string,
    > Sex string,
    > Sage int,
    > Sdept string) 
    > partitioned by(part string) 
    > row format delimited fields terminated by ','stored as textfile;

在这里插入图片描述
4、 创建带桶的表student。

 hive> create table student(id int,age int,name string)
    > partitioned by
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值