文档章节

大数据教程(11.8)Hive1.2.2简介&初体验

em_aaron
 em_aaron
发布于 01/22 23:25
字数 1315
阅读 7
收藏 0

           上一篇文章分析了Hive1.2.2的安装,本节博主将分享Hive的体验&Hive服务端和客户端的使用方法。

    一、Hive与hadoop直接的关系

           Hive利用HDFS存储数据,利用MapReduce查询数据。

    二、Hive与传统数据库对比

  Hive RDBMS
查询语言 HQL SQL
数据存储 HDFS Raw Device or Local FS
执行 MapReduce、spark等 Excutor执行引擎
执行延迟
处理数据规模
索引 0.8版本后加入位图索引 有完整的索引体系

           总结:hive具有sql数据库的外表(包括sql命令行功能、sql语法等),但应用场景完全不同,hive只适合用来做批量数据统计分析。

    三、Hive的数据存储
           a、Hive中所有的数据都存储在 HDFS 中,没有专门的数据存储格式(可支持Text,SequenceFile,ParquetFile,RCFILE等)
           b、只需要在创建表的时候告诉 Hive 数据中的列分隔符和行分隔符,Hive 就可以解析数据。
           c、Hive 中包含以下数据模型:DB、Table,External Table,Partition,Bucket。
                db:在hdfs中表现为${hive.metastore.warehouse.dir}目录下一个文件夹
                table:在hdfs中表现所属db目录下一个文件夹
                external table:外部表, 与table类似,不过其数据存放位置可以在任意指定路径
                普通表: 删除表后, hdfs上的文件都删了
                External外部表删除后, hdfs上的文件没有删除, 只是把文件删除了
                partition:在hdfs中表现为table目录下的子目录(如:日志按日期分区后,便于管理,且查询效率提升)
                bucket:桶, 在hdfs中表现为同一个表目录下根据hash散列之后的多个文件, 会根据不同的文件把数据放到不同的文件中 (如:在进行笛卡尔积的时候,同一个id的数据一定在某个桶,效率会提升)

    四、Hive使用方式

           a、Hive交互shell

                 bin/hive

           b、Hive thrift服务

    

            thrift是一个跨平台的协议,只要客户端遵循thrift协议即可同hive交互;hive自带的thrift服务端bin/hiveserver2,客户端为bin/beeline

            启动方式,(假如是在hadoop01上):

#启动为前台:
bin/hiveserver2
#启动为后台:
nohup bin/hiveserver2 1>/var/log/hiveserver.log 2>/var/log/hiveserver.err &

            启动成功后,可以在别的节点上用beeline去连接
            方式(1)    

#输入以下命令,回车,进入beeline的命令界面
hive/bin/beeline  
#输入命令连接hiveserver2,(hadoop01是hiveserver2所启动的那台主机名,端口默认是10000)
beeline> !connect jdbc:hive2//hadoop01:10000

            方式(2)       

#启动就连接:
bin/beeline -u jdbc:hive2://hadoop01:10000 -n hadoop

            接下来就可以做正常sql查询了

            方式(3)   

[hadoop@centos-aaron-h1 ~]$ hive  -e  'sql语句'

    五、使用效果图

[hadoop@centos-aaron-h1 bin]$ ./hiveserver2 
Last login: Wed Jan 23 07:07:45 2019 from 192.168.29.3
[hadoop@centos-aaron-h1 ~]$ ~/apps/apache-hive-1.2.2-bin/bin/beeline -u jdbc:hive2://centos-aaron-h1:10000 -n hadoop        
Connecting to jdbc:hive2://centos-aaron-h1:10000
Connected to: Apache Hive (version 1.2.2)
Driver: Hive JDBC (version 1.2.2)
Transaction isolation: TRANSACTION_REPEATABLE_READ
Beeline version 1.2.2 by Apache Hive
0: jdbc:hive2://centos-aaron-h1:10000> show databases;
+----------------+--+
| database_name  |
+----------------+--+
| default        |
| wcc_log        |
+----------------+--+
2 rows selected (1.86 seconds)
0: jdbc:hive2://centos-aaron-h1:10000> use wcc_log;
No rows affected (0.155 seconds)
0: jdbc:hive2://centos-aaron-h1:10000> show tables;
+--------------+--+
|   tab_name   |
+--------------+--+
| t_web_log01  |
+--------------+--+
1 row selected (0.07 seconds)
0: jdbc:hive2://centos-aaron-h1:10000> select * from t_web_log01;
+-----------------+-------------------+--+
| t_web_log01.id  | t_web_log01.name  |
+-----------------+-------------------+--+
| 1               | 张三                |
| 2               | 李四                |
| 3               | 王二                |
| 4               | 麻子                |
| 5               | 隔壁老王              |
+-----------------+-------------------+--+
5 rows selected (1.064 seconds)
0: jdbc:hive2://centos-aaron-h1:10000> select id , name from t_web_log01;
+-----+-------+--+
| id  | name  |
+-----+-------+--+
| 1   | 张三    |
| 2   | 李四    |
| 3   | 王二    |
| 4   | 麻子    |
| 5   | 隔壁老王  |
+-----+-------+--+
5 rows selected (0.077 seconds)
0: jdbc:hive2://centos-aaron-h1:10000> select id , name from t_web_log01 order by id desc;
INFO  : Number of reduce tasks determined at compile time: 1
INFO  : In order to change the average load for a reducer (in bytes):
INFO  :   set hive.exec.reducers.bytes.per.reducer=<number>
INFO  : In order to limit the maximum number of reducers:
INFO  :   set hive.exec.reducers.max=<number>
INFO  : In order to set a constant number of reducers:
INFO  :   set mapreduce.job.reduces=<number>
INFO  : number of splits:1
INFO  : Submitting tokens for job: job_1548198552826_0001
INFO  : The url to track the job: http://centos-aaron-h1:8088/proxy/application_1548198552826_0001/
INFO  : Starting Job = job_1548198552826_0001, Tracking URL = http://centos-aaron-h1:8088/proxy/application_1548198552826_0001/
INFO  : Kill Command = /home/hadoop/apps/hadoop-2.9.1/bin/hadoop job  -kill job_1548198552826_0001
INFO  : Hadoop job information for Stage-1: number of mappers: 1; number of reducers: 1
INFO  : 2019-01-23 07:17:45,112 Stage-1 map = 0%,  reduce = 0%
INFO  : 2019-01-23 07:17:52,354 Stage-1 map = 100%,  reduce = 0%, Cumulative CPU 1.22 sec
INFO  : 2019-01-23 07:18:04,679 Stage-1 map = 100%,  reduce = 100%, Cumulative CPU 2.13 sec
INFO  : MapReduce Total cumulative CPU time: 2 seconds 130 msec
INFO  : Ended Job = job_1548198552826_0001
+-----+-------+--+
| id  | name  |
+-----+-------+--+
| 5   | 隔壁老王  |
| 4   | 麻子    |
| 3   | 王二    |
| 2   | 李四    |
| 1   | 张三    |
+-----+-------+--+
5 rows selected (38.171 seconds)
0: jdbc:hive2://centos-aaron-h1:10000> 

    注意:hive是可以设置远端登录用户名和密码的,只是博主系统没设置,默认为hive启动用户hadoop,端口为10000. 看了博主的操作有没有种在使用mysql命令行的感觉...

    最后寄语,以上是博主本次文章的全部内容,如果大家觉得博主的文章还不错,请点赞;如果您对博主其它服务器大数据技术或者博主本人感兴趣,请关注博主博客,并且欢迎随时跟博主沟通交流。

© 著作权归作者所有

共有 人打赏支持
em_aaron
粉丝 74
博文 111
码字总数 195178
作品 3
黄浦
高级程序员
私信 提问
大数据教程(11.9)hive操作基础知识

上一篇博客分享了hive的简介和初体验,本节博主将继续分享一些hive的操作的基础知识。 DDL操作 (1)创建表 (2)修改表 (3)删除表 (4)显示命令 特此说明:使用./hive命令行是支持dfs命令的,如图...

em_aaron
01/24
0
0
智领云发布BDOS大数据操作系统V2.0版本,BDOS Online版本同期上线

2018年09月10日,智领云发布BDOS大数据操作系统V2.0最新企业版,通过领先的技术,提供性能稳定的大数据平台(大数据运维,数据流水线,机器学习,人工智能,流数据处理,大数据组件集成),基于...

LinkTime_Cloud
2018/09/14
0
0
智领云发布BDOS大数据操作系统V2.0版本,BDOS Online版本同期上线

2018年09月10日,智领云发布BDOS大数据操作系统V2.0最新企业版,通过领先的技术,提供性能稳定的大数据平台(大数据运维,数据流水线,机器学习,人工智能,流数据处理,大数据组件集成),基于...

LinkTime_Cloud
2018/09/14
0
0
史上最简单的 GitHub 教程

温馨提示:本系列博文已经同步到 GitHub,如有需要的话,欢迎大家到「github-tutorial」进行和操作! 1 简介   GitHub 是一个面向开源及私有软件项目的托管平台,因为只支持 Git 作为唯一的...

qq_35246620
2017/03/27
0
0
J+互联网沙龙——大数据和云时代的修炼之道

时值暮春,许久不见,J+ 又带着对大家的想念归来了。作为2018年第一期活动,我们为大家准备了一些新鲜的内容,通过本期活动你能获取到从一名普通程序员进化成数据科学家的修炼之道,也能学习...

缪斯的情人
2018/04/12
21
1

没有更多内容

加载失败,请刷新页面

加载更多

学习设计模式之路

https://java-design-patterns.com/patterns/ https://www.oodesign.com/ https://www.programering.com/a/MTNxAzMwATY.html https://design-patterns.readthedocs.io/zh_CN/latest/ https:/......

晨猫
今天
1
0
JDK1.8 jar包说明

JDK 1.8 lib:access-bridge-64.jarcharsets.jarcldrdata.jardeploy.jardnsns.jarjaccess.jarjavawa.jarjce.jarjfr.jarjfxrt.jarjfxswt.jarjsse.jarlocaledata.jar......

冷基
今天
1
0
判断用户的icloud是否开启【Swift4.2】

使用icloudkit存储用户私人数据时,必须判断用户的icloud是否开启【Swift4.2】 func isICloudContainerAvailable()-> Bool { if FileManager.default.ubiquityIdentityToken != ni......

叶落花开
今天
2
0
今天的学习

1、执行git add *命令就把改动提交到了暂存区,执行git pull命令将远程仓库的数据拉到当前分支并合并,执行git checkout [branch-name]切换分支 2、执行git commit -m '说明' 命令就把改动提...

墨冥
昨天
0
0
Android4.4 及以下TextView,Button等控件使用矢量图报错

1 问题描述 最近项目开发中,图标资源我尽量使用了矢量图,然而配置了基本的兼容设置,程序在低版本中运行还是出现了问题。 xml布局文件中,在TextView中使用矢量图,比如android:drawableS...

newtrek
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部