• Hive基本使用



    Hive系列第三章


    第三章 基本使用

    1、 创建库:create database mydb; 
    2、 查看库:show databases; 
    3、 切换数据库:use mydb; 
    
    • 1
    • 2
    • 3

    3.1 访问Hive的方式

    3.1.1 直接可以在客户端Hive进入

    见2.5.8 启动hive客户端

    3.1.2 使用JDBC方式

    在这里插入图片描述

    先知道:beeline相当于客户端,hiveserver2相当于服务端

    这个需要配置一些东西

    1、在hive-site.xml配置文件中添加如下信息:

    
    <property>
    	<name>hive.server2.thrift.bind.hostname>
    	<value>hadoop10value>
    property>
    
    <property>
    	<name>hive.server2.thrift.portname>
    	<value>10000value>
    property>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    2、启动hiveserver2

    [root@hadoop10 bin]# pwd
    /software/hive/bin
    [root@hadoop10 bin]# hive --service hiveserver2
    
    • 1
    • 2
    • 3

    3、启动beeline客户端

    [root@hadoop10 bin]# pwd
    /software/hive/bin
    [root@hadoop10 bin]# hive --service hiveserver2
    [root@hadoop10 bin]# beeline -u jdbc:hive2://hadoop10:10000 -n root
    
    
    • 1
    • 2
    • 3
    • 4
    • 5

    3.2 一些基本的使用

    [root@hadoop10 hive]# bin/hive -help
    which: no hbase in (.:.:.:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/software/jdk/bin:/software/zk/bin:/software/hadoop/bin:/software/hadoop/sbin:/software/hive/bin:/root/bin)
    Hive Session ID = 81616d71-9fbb-4c8a-a86d-3f652bc95fee
    usage: hive
     -d,--define           Variable substitution to apply to Hive
                                      commands. e.g. -d A=B or --define A=B
        --database      Specify the database to use
     -e          SQL from command line
     -f                     SQL from files
     -H,--help                        Print help information
        --hiveconf    Use value for given property
        --hivevar          Variable substitution to apply to Hive
                                      commands. e.g. --hivevar A=B
     -i                     Initialization SQL file
     -S,--silent                      Silent mode in interactive shell
     -v,--verbose                     Verbose mode (echo executed SQL to the
                                      console)
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18

    3.2.1 不进入Hive的交互窗口中执行语句

    [root@hadoop10 bin]# hive -e "show databases;"
    Hive Session ID = 933775ac-6ba5-4a67-90b3-22b356462f96
    
    Logging initialized using configuration in jar:file:/software/hive/lib/hive-common-3.1.2.jar!/hive-log4j2.properties Async: true
    Hive Session ID = 9c49687c-79c9-413d-862f-21ca5b5690a0
    OK
    default
    mydb
    Time taken: 1.928 seconds, Fetched: 2 row(s)
    [root@hadoop10 bin]# 
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    3.2.2 执行某个文件中的sql语句

    1、在mydb库下面创建一个表student

    hive> use mydb;
    OK
    Time taken: 0.399 seconds
    hive> show tables;
    OK
    Time taken: 0.092 seconds
    hive> create table student(id int, name string, sex string, age int, department string) row format delimited fields terminated by ",";
    OK
    Time taken: 1.088 seconds
    hive> show tables;
    OK
    student
    Time taken: 0.033 seconds, Fetched: 1 row(s)
    hive> select * from student;
    OK
    Time taken: 1.106 seconds
    hive> load data local inpath "/home/data/student.txt" into table student;
    Loading data to table mydb.student
    OK
    Time taken: 0.835 seconds
    hive> select * from student;
    OK
    95002	李一	女	19	IS
    95017	李二	女	18	IS
    95018	李三	女	19	IS
    95013	李四	男	21	CS
    95014	李五	女	19	CS
    95019	李六	女	19	IS
    95020	李七	男	21	IS
    95003	李八	女	22	MA
    95004	李九	男	19	IS
    95012	李十	女	20	CS
    95010	王一	男	19	CS
    95005	王二	男	18	MA
    95006	王三	男	23	CS
    95007	王四	女	19	MA
    95008	王五	女	18	CS
    95021	王六	男	17	MA
    95022	王七	男	20	MA
    95001	王九	男	20	CS
    95011	张三	男	18	MA
    95009	张四	女	18	MA
    95015	张五	男	18	MA
    Time taken: 0.118 seconds, Fetched: 21 row(s)
    hive> 
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46

    2、在/home/data下面建一个存放sql语句的文件,并写入正确的语句

    [root@hadoop10 data]# pwd
    /home/data
    [root@hadoop10 data]# vim file.sql
    [root@hadoop10 data]# cat file.sql 
    select * from mydb.student;
    [root@hadoop10 data]# 
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    3、执行自己编写的file.sql文件

    [root@hadoop10 data]# hive -f /home/data/file.sql 
    which: no hbase in (.:.:.:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/software/jdk/bin:/software/zk/bin:/software/hadoop/bin:/software/hadoop/sbin:/software/hive/bin:/root/bin)
    Hive Session ID = d3542b41-d012-4c53-ba3d-2c68ec119020
    
    Logging initialized using configuration in jar:file:/software/hive/lib/hive-common-3.1.2.jar!/hive-log4j2.properties Async: true
    Hive Session ID = 64154679-2a91-4383-93ba-40d427d9b87e
    OK
    95002	李一	女	19	IS
    95017	李二	女	18	IS
    95018	李三	女	19	IS
    95013	李四	男	21	CS
    95014	李五	女	19	CS
    95019	李六	女	19	IS
    95020	李七	男	21	IS
    95003	李八	女	22	MA
    95004	李九	男	19	IS
    95012	李十	女	20	CS
    95010	王一	男	19	CS
    95005	王二	男	18	MA
    95006	王三	男	23	CS
    95007	王四	女	19	MA
    95008	王五	女	18	CS
    95021	王六	男	17	MA
    95022	王七	男	20	MA
    95001	王九	男	20	CS
    95011	张三	男	18	MA
    95009	张四	女	18	MA
    95015	张五	男	18	MA
    Time taken: 2.502 seconds, Fetched: 21 row(s)
    [root@hadoop10 data]# 
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31

    4、给结果数据输出到特定的文件中

    [root@hadoop10 data]# hive -f /home/data/file.sql > /home/data/file_result.txt
    which: no hbase in (.:.:.:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/software/jdk/bin:/software/zk/bin:/software/hadoop/bin:/software/hadoop/sbin:/software/hive/bin:/root/bin)
    Hive Session ID = 4bc46897-0bad-4866-89ee-521c6ef950af
    
    Logging initialized using configuration in jar:file:/software/hive/lib/hive-common-3.1.2.jar!/hive-log4j2.properties Async: true
    Hive Session ID = c2b7a70c-4523-4130-8a97-443a86e272d7
    OK
    Time taken: 2.054 seconds, Fetched: 21 row(s)
    [root@hadoop10 data]# cat file_result.txt 
    95002	李一	女	19	IS
    95017	李二	女	18	IS
    95018	李三	女	19	IS
    95013	李四	男	21	CS
    95014	李五	女	19	CS
    95019	李六	女	19	IS
    95020	李七	男	21	IS
    95003	李八	女	22	MA
    95004	李九	男	19	IS
    95012	李十	女	20	CS
    95010	王一	男	19	CS
    95005	王二	男	18	MA
    95006	王三	男	23	CS
    95007	王四	女	19	MA
    95008	王五	女	18	CS
    95021	王六	男	17	MA
    95022	王七	男	20	MA
    95001	王九	男	20	CS
    95011	张三	男	18	MA
    95009	张四	女	18	MA
    95015	张五	男	18	MA
    [root@hadoop10 data]# 
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32

    3.2.3 在Hive的交互窗口中查看hdfs的文件系统

    主要要有分号

    hive> dfs -ls /;
    Found 13 items
    drwxrwxrwx   - root supergroup          0 2021-09-09 17:41 /aa
    drwxrwxrwx   - root supergroup          0 2021-09-09 20:05 /bb
    drwxr-xr-x   - root supergroup          0 2021-09-06 23:28 /test
    -rw-r--r--   2 root supergroup   30881207 2021-09-06 23:33 /test_big.txt
    drwx-wx-wx   - root supergroup          0 2021-09-22 19:13 /tmp
    drwxr-xr-x   - root supergroup          0 2021-09-21 18:58 /user
    drwxr-xr-x   - root supergroup          0 2021-09-06 23:06 /wc
    drwxr-xr-x   - root supergroup          0 2021-09-02 22:29 /wcinput
    drwxr-xr-x   - root supergroup          0 2021-09-22 19:19 /wcout
    drwxr-xr-x   - root supergroup          0 2021-09-02 22:32 /wcoutput
    -rw-r--r--   1 root supergroup         37 2021-09-09 16:56 /wordcount.txt
    drwxr-xr-x   - root supergroup          0 2021-09-13 22:28 /wordout0913
    drwxr-xr-x   - root supergroup          0 2021-09-13 22:33 /wordout0913_2
    hive> 
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    3.2.4 查看在Hive中输入的历史语句命令

    在用户的家目录里面,要是用root用户就在/root目录下,要是用其他的用户,就在/home/用户名目录下。

    通过ls -al 查看所有文件,包含隐藏文件

    通过cat .hivehistory 查看历史执行过的命令

    [root@hadoop10 ~]# ls -al
    total 84
    dr-xr-x---. 17 root root  4096 Sep 24 15:40 .
    dr-xr-xr-x. 18 root root   240 Aug 29 20:07 ..
    -rw-------.  1 root root  4721 Aug 30 02:57 anaconda-ks.cfg
    -rw-------.  1 root root 14042 Sep 22 22:01 .bash_history
    -rw-r--r--.  1 root root    18 Dec 29  2013 .bash_logout
    -rw-r--r--.  1 root root   176 Dec 29  2013 .bash_profile
    -rw-r--r--.  1 root root   176 Dec 29  2013 .bashrc
    drwxr-xr-x.  2 root root    21 Sep 21 18:43 .beeline
    drwx------. 14 root root  4096 Aug 29 19:18 .cache
    drwxr-xr-x. 14 root root   261 Aug 30 02:59 .config
    -rw-r--r--.  1 root root   100 Dec 29  2013 .cshrc
    drwx------.  3 root root    25 Aug 30 02:59 .dbus
    drwxr-xr-x.  2 root root     6 Aug 30 02:59 Desktop
    drwxr-xr-x.  2 root root     6 Aug 30 02:59 Documents
    drwxr-xr-x.  2 root root     6 Aug 30 02:59 Downloads
    -rw-------.  1 root root    16 Aug 30 02:59 .esd_auth
    -rw-r--r--.  1 root root    60 Sep 24 15:27 .hivehistory
    -rw-------.  1 root root   624 Sep  6 20:24 .ICEauthority
    drwx------.  3 root root    19 Aug 30 02:59 .local
    drwx------.  5 root root    66 Aug 29 19:02 .mozilla
    drwxr-xr-x.  2 root root     6 Aug 30 02:59 Music
    -rw-------.  1 root root    83 Sep 21 18:43 .mysql_history
    -rw-------.  1 root root  3699 Aug 30 02:57 original-ks.cfg
    drwxr-xr-x.  2 root root     6 Aug 30 02:59 Pictures
    drwxr-xr-x.  2 root root     6 Aug 30 02:59 Public
    drwx------.  2 root root    80 Aug 29 19:57 .ssh
    -rw-r--r--.  1 root root   129 Dec 29  2013 .tcshrc
    drwxr-xr-x.  2 root root     6 Aug 30 02:59 Templates
    drwxr-xr-x.  2 root root     6 Aug 30 02:59 Videos
    -rw-------.  1 root root  6108 Sep 24 15:40 .viminfo
    -rw-------.  1 root root   229 Sep 24 15:35 .Xauthority
    [root@hadoop10 ~]# cat .hivehistory 
    show databases;
    create database mydb;
    show databases;
    quit;
    [root@hadoop10 ~]# 
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40

    3.3 一些基本的配置

    3.3.1 日志位置

    默认位置:/tmp/root/hive.log文件中

    [root@hadoop10 root]# ll
    total 156
    drwx------. 2 root root      6 Sep 24 15:37 21f5331b-82cd-4d0a-be3b-3b3fc0d62180
    -rw-r--r--. 1 root root      0 Sep 24 15:34 21f5331b-82cd-4d0a-be3b-3b3fc0d621806356445313698981042.pipeout
    -rw-r--r--. 1 root root      0 Sep 24 15:34 21f5331b-82cd-4d0a-be3b-3b3fc0d621807985755165757000647.pipeout
    drwx------. 2 root root      6 Sep 24 15:34 66a87d5b-e275-4b26-a50d-7bd7efa85a2d
    -rw-r--r--. 1 root root      0 Sep 24 15:34 66a87d5b-e275-4b26-a50d-7bd7efa85a2d1344584666254365059.pipeout
    -rw-r--r--. 1 root root      0 Sep 24 15:34 66a87d5b-e275-4b26-a50d-7bd7efa85a2d1624881081861789479.pipeout
    -rw-r--r--. 1 root root 132489 Sep 24 15:44 hive.log
    -rw-r--r--. 1 root root  23509 Sep 21 19:08 hive.log.2021-09-21
    [root@hadoop10 root]# pwd
    /tmp/root
    [root@hadoop10 root]# cat hive.log
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    若想修改位置,可以按照下面的步骤操作:

    1、重命名 hive-log4j2.properties.template 为  hive-log4j2.properties
    2、在 hive-log4j2.properties 文件中修改 log 存放位置就可以啦
    hive.log.dir=/home/data/logs  (就是你想存放的日志结果的位置)
    
    • 1
    • 2
    • 3

    3.3.2 打印结果的时候带上所属库和所属表

    在 hive-site.xml 中加入如下配置即可

    
    	hive.cli.print.header
    	true
    
    
    	hive.cli.print.current.db
    	true
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    测试结果如下:

    hive (mydb)> select * from student;
    OK
    student.id	student.name	student.sex	student.age	student.department
    95002	李一	女	19	IS
    95017	李二	女	18	IS
    95018	李三	女	19	IS
    95013	李四	男	21	CS
    95014	李五	女	19	CS
    95019	李六	女	19	IS
    95020	李七	男	21	IS
    95003	李八	女	22	MA
    95004	李九	男	19	IS
    95012	李十	女	20	CS
    95010	王一	男	19	CS
    95005	王二	男	18	MA
    95006	王三	男	23	CS
    95007	王四	女	19	MA
    95008	王五	女	18	CS
    95021	王六	男	17	MA
    95022	王七	男	20	MA
    95001	王九	男	20	CS
    95011	张三	男	18	MA
    95009	张四	女	18	MA
    95015	张五	男	18	MA
    Time taken: 0.131 seconds, Fetched: 21 row(s)
    hive (mydb)> 
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27


    声明:
            文章中代码及相关语句为自己根据相应理解编写,文章中出现的相关图片为自己实践中的截图和相关技术对应的图片,若有相关异议,请联系删除。感谢。转载请注明出处,感谢。


    By luoyepiaoxue2014

    B站: https://space.bilibili.com/1523287361 点击打开链接
    微博地址: http://weibo.com/luoyepiaoxue2014 点击打开链接

  • 相关阅读:
    2023年中国磷酸二铵市场发展概况分析:市场集中度较高[图]
    STM32作业设计
    PyTorch for Audio + Music Processing(1) :Course Overview(课程大纲)
    基于安卓android微信小程序的食谱大全系统
    使用自定义注解实现Redis分布式锁
    javaEE----servlet初识
    【QT】信号与槽
    【一天一个设计模式】——工厂模式
    MySQL--主从复制和读写分离
    这些PLC串口通讯和通讯接口知识,你都了解吗?
  • 原文地址:https://blog.csdn.net/luoyepiaoxue2014/article/details/128036920