1.hive基本使用

本文详细介绍了MySQL数据库在Linux环境下的安装过程,包括卸载旧版、安装服务端和客户端、设置权限等步骤。接着讲解了Hadoop集群上安装Hive的步骤,包括配置环境变量、修改配置文件、添加MySQL驱动等。最后,文章提供了Hive的基本使用方法,如创建数据库、上传数据和执行数据处理查询。示例数据用于测试Hive的查询功能,涉及男性和女性各科成绩的统计分析。
摘要由CSDN通过智能技术生成

一、安装数据库MySQL

1.在VM虚拟机上面登录linux
你好! 这是你第一次使用 **Markdown编辑器** 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。
2. 卸载linux自带的数据库依赖

yum remove mysql-libs -y

在这里插入图片描述
3. 下载客户端和服务端安装包,或者通过其他方式安装数据库(这里使用软件包安装数据库)
在这里插入图片描述
4. 安装数据库服务端

rpm -ivh MySQL-server-5.1.73-1.glibc23.x86_64.rpm

在这里插入图片描述
5. 安装数据库客户端

rpm -ivh MySQL-server-5.1.73-1.glibc23.x86_64.rpm

在这里插入图片描述
6. 登录数据库

mysql -u root

在这里插入图片描述

7.修改密码

set password for 'root'@'localhost' =password('123456');

abc
7. 分配权限

grant all privileges on *.* to 'root'@'master' identified by '123456';

在这里插入图片描述
8. 刷新权限

flush privileges;

在这里插入图片描述
9. 退出并重新登录

exit; #退出数据库命令

10 重新登录

mysql -u root -p
# 回车输入密码
123456

在这里插入图片描述

二、安装hive

  1. 启动hadoop服务
start-all.sh
jps

在这里插入图片描述
在这里插入图片描述

  1. 解压hive压缩包
tar -zxvf apache-hive-2.1.0-bin.tar.gz

自己去官网下载apache-hive-2.1.0-bin.tar.gz
在这里插入图片描述
在这里插入图片描述

  1. 重命名hive文件夹
mv apache-hive-2.1.0-bin hive

在这里插入图片描述

  1. 添加hive环境变量
vi /etc/profile.d/hive.sh

插入环境变量

export HIVE_HOME=/opt/soft/hive
export PATH=$HIVE_HOME/bin:$PATH

:wq 保存退出
刷新执行文件

source /etc/profile.d/hive.sh 
  1. 进入hive下面的conf文件夹 拷贝文件
    拷贝这两个文件 重命名为
    hive-default.xml.template => hive-site.xml
    hive-env.sh.template => hive-env.sh
cd /opt/soft/hive/conf/   #进入hive下面的conf文件夹
cp  hive-default.xml.template  hive-site.xml    #拷贝
cp  hive-env.sh.template  hive-env.sh			#拷贝

在这里插入图片描述

  1. 修改 hive-env.sh文件
vi hive-env.sh

在头部插入 三行配置

export JAVA_HOME=/opt/soft/jdk
export HADOOP_HOME=/opt/soft/hadoop
export HIVE_HOME=/opt/soft/hive

在这里插入图片描述

  1. 修改hive-site配置文件
:set nu  #显示行数
/关键字 回车  #查找文件内容  n N 上下切换

:496  #修改为  jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true
:928  #修改为  com.mysql.jdbc.Driver
:953  #修改为  root
:481  #修改为  123456
:1496 #修改为  /opt/soft/hive/tmp
:44   #修改为  /opt/soft/hive/tmp
:49   #修改为  /opt/soft/hive/tmp
在hive-site.xml文件中修改相关配置内容,修改如下
修改属性“ javax.jdo.option.ConnectionURL ”的值为“ jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true ”
修改属性“ javax.jdo.option.ConnectionDriverName ”的值为“ com.mysql.jdbc.Driver ”
修改属性“ javax.jdo.option.ConnectionUserName ”的值为“ root ”
修改属性“ javax.jdo.option.ConnectionPassword ”的值为“ 123456 ”
修改属性“ hive.querylog.location ”的值为“ /opt/soft/hive/tmp ”
修改属性“ hive.exec.local.scratchdir ”的值为“ /opt/soft/hive/tmp ”
修改属性“ hive.downloaded.resources.dir ”的值为“ /opt/soft/hive/tmp ”
  1. 复制MySQL的驱动包到hive的lib文件夹下
cp /opt/soft/mysql-connector-java-5.1.39.jar /opt/soft/hive/lib/

在这里插入图片描述

  1. 初始元数据仓库
    在【/opt/soft/hive/bin】
cd /opt/soft/hive/bin/

./schematool -initSchema -dbType mysql -userName root -passWord 123456
  1. 查看hive是否启动成功
    进入数据库
mysql -u root -p
123456

使用命令查看连接

show databases;

在这里插入图片描述
有hive表示启动成功

exit

退出数据库

三、hive的基本使用

在linux里面先准备好txt测试测试数据(数据在文章末尾,直接Ctrl+c+v)

  • 创建info.txt 文件夹,把文章末尾的数据复制进去
    在这里插入图片描述

1、 进入hive

在这里插入图片描述

1. 查看当前数据库:set hive.cli.print.current.db = true;
2. 创建数据库:create database testdb1;
3. 查看所有数据库:show databases;
4. 使用指定数据库:use testdb1;
5. 删除数据库:drop database testdb1;

在这里插入图片描述

创建数据库mytest
在这里插入图片描述

# 使用这个数据库 use mytest;
use mytest;

使用mytest数据库
在这里插入图片描述
在mytest里面创建表

create table tb_map(id int,className string,name string,sex string,score map<string,float>) 
row format delimited
fields terminated by '\t'
collection items terminated by ','
map keys terminated by '='
lines terminated by '\n'
stored as textfile;

在这里插入图片描述

英文关键字解析:

   comment 'employee details'      #表注释
   row format delimited            #行格式限定
   fields terminated by '\t'  		#数据分隔
   lines terminated by '\n'  		#行分隔
   stored as textfile;  			#默认文件格式


1、CREATE TABLE 创建一个指定名字的表,如果库中已有相同名的表,则抛出异常;
用户可以使用 IF NOT EXISTS 选项来忽略此异常。

2、EXTERNAL 关键字可以让用户创建一个外部表(默认创建内部表)。外部表在建表的同时必须指定一个指向实际数据的路径(LOCATION)
,Hive在创建内部表时,会将数据移动到数据仓库指向的路径;若创建外部表,仅记录数据所在的路径,不对数据的位置做任何改变。在删除
表的时候,内部表的元数据和数据会被一起删除,而外部表只删除元数据,不删除数据。

3、COMMENT 是给表字段或者表内容添加注释说明的。

4、PARTITIONED BY 给表做分区,决定了表是否为分区表。

5、CLUSTERED BY 对于每一个表(table)或者分区, Hive 可以进一步组织成桶,也就是说桶是更为细粒度的数据范围划分,Hive采用对
列值哈希,然后除以桶的个数求余的方式决定该条记录存放在哪个桶当中。

6、ROW FORMAT DELIMITED FIELDS TERMINATED BY ‘,’, 这里指定表存储中列的分隔符,默认是 \001,这里指定的是逗号分隔符,还可
以指定其他列的分隔符。

7、STORED AS SEQUENCEFILE|TEXTFILE|RCFILE,如果文件数据是纯文本,可以使用 STORED AS TEXTFILE,如果数据需要压缩,使用 
STORED AS SEQUENCEFILE。

8、LOCATION 定义 hive 表的数据在 hdfs 上的存储路径,一般管理表(内部表不不要自定义),但是如果定义的是外部表,则>需要直接指定
一个路径。

查看表结构

desc tb_map;

2、上传数据到hive数据库里面(hive和数据库一样)(两种方式)

  • (本地上传)把数据上传到hive 数据库里面
#                         路径                          表名
load data local inpath '/opt/temp/info.txt' into table tb_map;
  • (hadoop远程上传) 使用hadoop上传数据
# 把数据上传到hadoop
hadoop fs -put /info.txt

# 再把hadoop的数据 上传到hive数据库里面

load data inpath '/info.txt' into table tb_map;

3、 开始测试hive数据处理

  • 各班级【男生】的所有科目的总成绩与平均成绩
select className,sum(score["java"])+sum(score["php"])+sum(score["python"]),
round((avg(score["java"])+avg(score["php"])+avg(score["python"]))/3,2) 
from tb_map where sex='男' group by className;
  • 各班级【女生】的所有科目的总成绩与平均成绩
select className,sum(score["java"])+sum(score["php"])+sum(score["python"]),
round((avg(score["java"])+avg(score["php"])+avg(score["python"]))/3,2) 
from tb_map where sex='女' group by className;

在这里插入图片描述

1	地字一号	宿宿赵	女	java=64,php=84,python=66
2	地字一号	生华宿	男	java=86,php=65,python=98
3	黄字一号	湘彭管	女	java=78,php=83,python=97
4	东宫正品	王彭二	女	java=65,php=76,python=96
5	玄字一号	赵宿湘	男	java=84,php=84,python=65
6	地字一号	赵钱宿	男	java=99,php=90,python=91
7	玄字一号	生华梦	女	java=84,php=80,python=65
8	黄字一号	二彭宿	男	java=92,php=94,python=68
9	天字一号	星湘	男	java=100,php=84,python=98
10	地字一号	星胡彭	男	java=74,php=77,python=70
11	天字一号	里生星	男	java=85,php=82,python=70
12	天字一号	生胡赵	男	java=73,php=93,python=90
13	天字一号	管彭	男	java=85,php=72,python=96
14	地字一号	二赵韦	男	java=62,php=75,python=60
15	黄字一号	星王胡	男	java=83,php=91,python=87
16	东宫正品	湘琴赵	男	java=88,php=70,python=67
17	黄字一号	生风	女	java=81,php=99,python=84
18	玄字一号	管钱梦	女	java=71,php=94,python=93
19	东宫正品	琴春覃	男	java=91,php=66,python=78
20	黄字一号	王宿李	男	java=61,php=90,python=72
21	黄字一号	星韦邓张	女	java=62,php=84,python=78
22	黄字一号	风二钱	男	java=85,php=80,python=65
23	东宫正品	土风生	男	java=96,php=99,python=74
24	东宫正品	钱华赵	女	java=99,php=81,python=90
25	天字一号	二华赵	男	java=96,php=91,python=96
26	玄字一号	星彭赵	女	java=96,php=71,python=82
27	玄字一号	宿春土	男	java=65,php=67,python=88
28	东宫正品	华邓张华	女	java=61,php=74,python=72
29	天字一号	韦彭	男	java=82,php=92,python=73
30	地字一号	琴春胡	男	java=71,php=99,python=76
31	天字一号	管华胡	男	java=90,php=81,python=68
32	黄字一号	琴宿生	女	java=72,php=91,python=60
33	玄字一号	钱春管	男	java=99,php=95,python=65
34	黄字一号	韦生覃	女	java=83,php=68,python=88
35	东宫正品	胡宿	男	java=60,php=92,python=70
36	天字一号	生梦赵	男	java=74,php=100,python=76
37	天字一号	风春风	男	java=98,php=60,python=85
38	天字一号	赵管赵	男	java=100,php=78,python=82
39	玄字一号	二王赵	女	java=100,php=86,python=79
40	天字一号	王彭里	男	java=90,php=80,python=100
41	地字一号	管二邓张	男	java=78,php=91,python=99
42	天字一号	赵星湘	男	java=83,php=90,python=94
43	天字一号	管管胡	女	java=71,php=83,python=97
44	黄字一号	湘彭星	男	java=92,php=93,python=78
45	黄字一号	赵土邓张	女	java=60,php=62,python=81
46	黄字一号	梦王湘	男	java=99,php=70,python=81
47	玄字一号	彭二湘	男	java=99,php=98,python=71
48	黄字一号	风生管	男	java=70,php=77,python=71
49	天字一号	琴赵邓张	男	java=76,php=95,python=77
50	黄字一号	赵华宿	男	java=85,php=72,python=88
51	东宫正品	王春钱	女	java=65,php=89,python=87
52	黄字一号	王土李	女	java=91,php=79,python=68
53	东宫正品	琴王里	男	java=82,php=64,python=92
54	黄字一号	风赵李	男	java=63,php=67,python=72
55	地字一号	邓张赵春	男	java=76,php=98,python=87
56	地字一号	梦二生	男	java=68,php=96,python=96
57	东宫正品	覃华风	男	java=68,php=91,python=65
58	东宫正品	王梦覃	女	java=79,php=75,python=77
59	玄字一号	邓张王管	女	java=89,php=94,python=76
60	东宫正品	钱管王	男	java=87,php=99,python=85
61	东宫正品	赵里管	女	java=90,php=63,python=90
62	东宫正品	李韦星	女	java=79,php=87,python=79
63	玄字一号	李彭胡	男	java=76,php=67,python=89
64	地字一号	王宿星	男	java=67,php=96,python=94
65	玄字一号	星二湘	女	java=74,php=92,python=73
66	黄字一号	春风	男	java=85,php=80,python=77
67	东宫正品	梦韦邓张	男	java=67,php=62,python=74
68	东宫正品	华里韦	男	java=78,php=65,python=64
69	黄字一号	华宿琴	男	java=75,php=70,python=98
70	玄字一号	管管琴	男	java=80,php=67,python=64
71	黄字一号	彭王	女	java=85,php=88,python=81
72	黄字一号	里生	男	java=80,php=98,python=80
73	东宫正品	韦风生	女	java=60,php=94,python=81
74	东宫正品	生管胡	女	java=65,php=82,python=97
75	地字一号	生钱二	女	java=96,php=80,python=73
76	东宫正品	二琴里	女	java=83,php=63,python=97
77	黄字一号	星二王	女	java=99,php=64,python=61
78	东宫正品	土梦梦	女	java=76,php=95,python=74
79	天字一号	春土生	男	java=99,php=99,python=78
80	玄字一号	梦土春	男	java=93,php=82,python=73
81	地字一号	彭星钱	男	java=69,php=91,python=76
82	天字一号	李风管	女	java=60,php=61,python=63
83	地字一号	彭赵赵	男	java=78,php=78,python=62
84	天字一号	里胡胡	女	java=87,php=65,python=98
85	玄字一号	邓张覃覃	女	java=66,php=88,python=73
86	东宫正品	胡钱覃	男	java=90,php=80,python=75
87	天字一号	琴覃土	女	java=89,php=70,python=94
88	玄字一号	覃二琴	女	java=72,php=96,python=99
89	黄字一号	梦彭韦	男	java=79,php=91,python=85
90	地字一号	管生华	女	java=83,php=88,python=92
91	天字一号	宿宿生	女	java=95,php=87,python=70
92	玄字一号	赵彭钱	男	java=77,php=70,python=83
93	东宫正品	彭钱湘	男	java=66,php=89,python=87
94	天字一号	钱邓张琴	女	java=99,php=69,python=93
95	黄字一号	王管赵	男	java=89,php=61,python=84
96	黄字一号	韦风管	男	java=95,php=79,python=93
97	天字一号	春胡里	男	java=80,php=70,python=89
98	天字一号	彭春	女	java=96,php=74,python=95
99	地字一号	李里琴	男	java=77,php=97,python=73
100	黄字一号	管二风	女	java=99,php=89,python=63
  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值