博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Hive安装与配置详解
阅读量:5248 次
发布时间:2019-06-14

本文共 6806 字,大约阅读时间需要 22 分钟。

pandas和SQL数据分析实战

(转载)

既然是详解,那么我们就不能只知道怎么安装hive了,下面从hive的基本说起,如果你了解了,那么请直接移步安装与配置

hive是什么

hive安装和配置

hive的测试


hive

  这里简单说明一下,好对大家配置hive有点帮助。hive是建立在hadoop上的,当然,你如果只搭建hive也没用什么错。说简单一点,hadoop中的mapreduce调用如果面向DBA的时候,那么问题也就显现了,因为不是每个DBA都能明白mapreduce的工作原理,如果为了管理数据而需要学习一门新的技术,从现实生活中来说,公司又需要花钱请更有技术的人来了。

  开个玩笑,hadoop是为了存储数据和计算而推广的技术,而和数据挂钩的也就属于数据库的领域了,所以hadoop和DBA挂钩也就是情理之中的事情,在这个基础之上,我们就需要为了DBA创作适合的技术。

  hive正是实现了这个,hive是要类SQL语句(HiveQL)来实现对hadoop下的数据管理。hive属于数据仓库的范畴,那么,数据库和数据仓库到底有什么区别了,这里简单说明一下:数据库侧重于OLTP(在线事务处理),数据仓库侧重OLAP(在线分析处理);也就是说,例如mysql类的数据库更侧重于短时间内的数据处理,反之。

无hive:使用者.....->mapreduce...->hadoop数据(可能需要会mapreduce)

有hive:使用者...->HQL(SQL)->hive...->mapreduce...->hadoop数据(只需要会SQL语句)


 hive安装和配置

安装

一:下载hive——地址:

 这里以hive-2.1.1为例子,如图:

将hive解压到/usr/local下:

[root@s100 local]# tar -zxvf apache-hive-2.1.1-bin.tar.gz -C /usr/local/

将文件重命名为hive文件:

[root@s100 local]# mv apache-hive-2.1.1-bin hive

 

修改环境变量/etc/profile:

[root@s100 local]# vim /etc/profile

 

1 #hive2 export HIVE_HOME=/usr/local/hive3 export PATH=$PATH:$HIVE_HOME/bin

执行source /etc.profile:

执行hive --version

[root@s100 local]# hive --version

 

 有hive的版本显现,安装成功!

配置

[root@s100 conf]# cd /usr/local/hive/conf/

修改hive-site.xml:

这里没有,我们就以模板复制一个:

[root@s100 conf]# cp hive-default.xml.template hive-site.xml
[root@s100 conf]# vim hive-site.xml

 

1.配置hive-site.xml(第5点的后面有一个单独的hive-site.xml配置文件,这个如果有疑问可以用后面的配置文件,更容易明白)

主要是mysql的连接信息(在文本的最开始位置)

javax.jdo.option.ConnectionUserName
用户名(这4是新添加的,记住删除配置文件原有的哦!)
root
javax.jdo.option.ConnectionPassword
密码
123456
javax.jdo.option.ConnectionURL
mysql
jdbc:mysql://192.168.1.68:3306/hive
javax.jdo.option.ConnectionDriverName
mysql驱动程序
com.mysql.jdbc.Driver
hive.exec.script.wrapper

2.复制mysql的驱动程序到hive/lib下面(这里已经拷贝好了)

[root@s100 lib]# ll mysql-connector-java-5.1.18-bin.jar -rw-r--r-- 1 root root 789885 1月   4 01:43 mysql-connector-java-5.1.18-bin.jar

 

3.在mysql中hive的schema(在此之前需要创建mysql下的hive数据库)

1 [root@s100 bin]# pwd2 /usr/local/hive/bin3 [root@s100 bin]# schematool -dbType mysql -initSchema

4.执行hive命令

[root@localhost hive]# hive

成功进入hive界面,hive配置完成

5.查询mysql(hive这个库是在 schematool -dbType mysql -initSchema 之前创建的!)

1 [root@localhost ~]# mysql -uroot -p123456 2 Welcome to the MySQL monitor.  Commands end with ; or \g. 3 Your MySQL connection id is 10 4 Server version: 5.1.73 Source distribution 5  6 Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved. 7  8 Oracle is a registered trademark of Oracle Corporation and/or its 9 affiliates. Other names may be trademarks of their respective10 owners.11 12 Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.13 14 mysql> use hive15 Reading table information for completion of table and column names16 You can turn off this feature to get a quicker startup with -A17 18 Database changed19 mysql> show tables;20 +---------------------------+21 | Tables_in_hive            |22 +---------------------------+23 | AUX_TABLE                 |24 | BUCKETING_COLS            |25 | CDS                       |26 | COLUMNS_V2                |27 | COMPACTION_QUEUE          |28 | COMPLETED_COMPACTIONS     |

备注 (这里不计入正文不要重复配置hive-site.xml)

配置文件hive-site.xml

这里不得不说一下,如果你的 schematool -dbType mysql -initSchema 并没有执行成功怎么办,小博主昨天在这卡了一天,最后根据伟大的百度和hive官方文档,直接写了一个hive-site.xml配置文本:

javax.jdo.option.ConnectionURL
jdbc:mysql://localhost:3306/hahive
(mysql地址localhost)
javax.jdo.option.ConnectionDriverName
(mysql的驱动)
com.mysql.jdbc.Driver
javax.jdo.option.ConnectionUserName
(用户名)
root
javax.jdo.option.ConnectionPassword
(密码)
123456
hive.metastore.schema.verification
false

 

 


 

那我们做这些事干什么的呢,下面小段测试大家感受一下

hive测试:

备注:这里是第二个配置文件的演示:所以数据库名称是hahive数据库!

1.需要知道现在的hadoop中的HDFS存了什么

[root@localhost conf]# hadoop fs -lsr /

2.进入hive并创建一个测试库和测试表

[root@localhost conf]# hive

 创建库:

1 hive> create database hive_1;2 OK3 Time taken: 1.432 seconds

 显示库:

1 hive> show databases;2 OK3 default4 hive_15 Time taken: 1.25 seconds, Fetched: 2 row(s)

 创建库成功!

3.查询一下HDFS有什么变化

多了一个库hive_1

娜莫喔们的mysql下的hahive库有什么变化

1
mysql> use hahive;
1
2
3
4
5
6
7
8
mysql> 
select 
from 
DBS;
+-------+-----------------------+------------------------------------------------+---------+------------+------------+
| DB_ID | DESC                  | DB_LOCATION_URI                                | NAME    | OWNER_NAME | OWNER_TYPE |
+-------+-----------------------+------------------------------------------------+---------+------------+------------+
|     1 | Default Hive database | hdfs:
//localhost/user/hive/warehouse           | default | public     | ROLE       |
|     6 | NULL                  | hdfs:
//localhost/user/hive/warehouse/hive_1.db | hive_1  | root       | USER       |
+-------+-----------------------+------------------------------------------------+---------+------------+------------+
2 rows 
in 
set 
(0.00 sec)

4.在hive_1下创建一个表hive_01

1
2
3
4
5
6
7
8
9
10
11
hive> use hive_1;
OK
Time taken: 0.754 seconds
hive> create table hive_01 (id 
int
,name 
string
);
OK
Time taken: 2.447 seconds
hive> show tables;
OK
hive_01 (表创建成功)
Time taken: 0.31 seconds, Fetched: 2 row(s)
hive>

HDFS下的情况:

mysql下:

1
2
3
4
5
6
7
mysql> 
select 
from 
TBLS;
+--------+-------------+-------+------------------+-------+-----------+-------+----------+---------------+--------------------+--------------------+
| TBL_ID | CREATE_TIME | DB_ID | LAST_ACCESS_TIME | OWNER | RETENTION | SD_ID | TBL_NAME | TBL_TYPE      | VIEW_EXPANDED_TEXT | VIEW_ORIGINAL_TEXT |
+--------+-------------+-------+------------------+-------+-----------+-------+----------+---------------+--------------------+--------------------+
|      6 |  1514286051 |     6 |                0 | root  |         0 |     6 | hive_01  | MANAGED_TABLE | NULL               | NULL               |
+--------+-------------+-------+------------------+-------+-----------+-------+----------+---------------+--------------------+--------------------+
2 rows 
in 
set 
(0.00 sec)

娜莫在web端是什么样子的呢!

 

总的来说,hive其实就和mysql差不多呢!那么后面就不说了

网易云观看地址

扫二维码,关注博主主页,学习更多Python知识

 

转载于:https://www.cnblogs.com/webRobot/p/11307531.html

你可能感兴趣的文章
倍福TwinCAT(贝福Beckhoff)常见问题(FAQ)-点击运行按钮进入到运行状态报错Error starting TwinCAT System怎么办 AdsWarning1823怎么办...
查看>>
【转】javascript 中的很多有用的东西
查看>>
Centos7.2正常启动关闭CDH5.16.1
查看>>
Android 监听返回键、HOME键
查看>>
Android ContentProvider的实现
查看>>
sqlserver 各种判断是否存在(表名、函数、存储过程等)
查看>>
给C#学习者的建议 - CLR Via C# 读后感
查看>>
Recover Binary Search Tree
查看>>
Java 实践:生产者与消费者
查看>>
[转]IOCP--Socket IO模型终结篇
查看>>
js 获取视频的第一帧
查看>>
各种正则验证
查看>>
观察者模式(Observer)
查看>>
python中numpy.r_和numpy.c_
查看>>
egret3D与2D混合开发,画布尺寸不一致的问题
查看>>
freebsd 实现 tab 命令 补全 命令 提示
查看>>
struts1和struts2的区别
查看>>
函数之匿名函数
查看>>
shell习题第16题:查用户
查看>>
Redis常用命令
查看>>