Hive概念及Hive,MySQL安装、配置

目录

一:Hive的概述

1.1 什么是Hive

1.2 Hive优缺点

二:Hive安装部署 

2.1 安装Hive

三:MySQL安装

四:Hive 元数据配置到 MySQL


一:Hive的概述

1.1 什么是Hive

  • ApacheHive是一款建立在Hadoop之上的开源数据仓库系统,可以将存储在Hadoop文件中的结构化、半结构化数据文件映射为一张数据库表,基于表提供了一种类似SQL的查询模型,称为Hive查询语句(HQL),用于访问和分析存储在Hadoop文件中的大型数据集。
  • Hive核心是将HQL转换为MapReduce程序,然后将程序提交到Hadoop集群执行。
  • Hive由Facebook实现并开源。

1.2 Hive优缺点

优点:

(1)操作接口采用类SQL语法,提供快速开发的能力(简单、容易上手)。

(2)避免了去写MapReduce,减少开发人员的学习成本。

(3)Hive的执行延迟比较高,因此Hive常用于数据分析,对实时性要求不高的场合。

(4)Hive优势在于处理大数据,对于处理小数据没有优势,因为Hive的执行延迟比较高。

(5)Hive支持用户自定义函数,用户可以根据自己的需求来实现自己的函数。

缺点:

1)Hive的HQL表达能力有限

(1)迭代式算法无法表达

(2)数据挖掘方面不擅长,由于MapReduce数据处理流程的限制,效率更高的算法却无法实现。

2)Hive的效率比较低

(1)Hive自动生成的MapReduce作业,通常情况下不够智能化

(2)Hive调优比较困难,粒度较粗

二:Hive安装部署 

2.1 安装Hive

1)把 apache-hive-3.1.2-bin.tar.gz 上传到 linux 的/opt/software 目录下

2)解压 apache-hive-3.1.2-bin.tar.gz 到/opt/module/目录下面

[ axing@hadoop102 software ] $ tar - zxvf /opt/software/apache-hive-3.1.2-
bin.tar.gz -C /opt/module/

3)修改 apache-hive-3.1.2-bin.tar.gz 的名称为 hive(方便后面配置环境,也可以不修改)

[ atguigu@hadoop1 02 software ] $ mv /opt/module/apache-hive-3.1.2-bin/ 
/opt/module/hive 

4)修改/etc/profile.d/my_env.sh,添加环境变量

[ atguigu@hadoop102 software ] $ sudo vim /etc/profile.d/my_env.sh 

5)添加内容

#HIVE_HOME 
export HIVE_HOME=/opt/module/hive 
export PATH=$PATH : $HIVE_HOME/bin

6)解决日志 Jar 包冲突

[axing@hadoop102 software] $ mv $HIVE_HOME/lib/log4j-slf4j-impl2.10.0.jar
$HIVE_HOME/lib/log4j-slf4j-impl-2.10.0.bak 

7)初始化元数据库

[axing@hadoop102 hive] $ bin/schematool -dbType derby -initSchema

8)启动Hive

[axing@hadoop102 hive] $ bin/hive

如果在另外一个CRT窗口开启Hive会报错,原因在于 Hive 默认使用的元数据库为 derby,开启 Hive 之后就会占用元数据库,且不与 其他客户端共享数据,所以我们需要将 Hive 的元数据地址改为 MySQL。  

三:MySQL安装

1)检查当前系统是否安装过 MySQL

[axing@hadoop102~] $ rpm -qa | grep mariadb mariadb-libs-5.5.56-2.el7.x86_64 
/ /如果存在通过如下命令卸载 
[axing@hadoop102~] $ sudo rpm -e --nodeps mariadb-libs 

2)将 MySQL 安装包拷贝到/opt/software 目录下

[axing@hadoop102 software] # ll

3)解压 MySQL 安装包

[axing@hadoop102 software] # tar -xf mysql-5.7.28-1.el7.x86_64.rpmbundle.tar

4)在安装目录下执行 rpm 安装

[axing@hadoop102 software] $ 
sudo rpm -ivh mysql-community-common-5.7.28-1.el7.x86_64.rpm 
sudo rpm -ivh mysql-community-libs-5.7.28-1.el7.x86_64.rpm 
sudo rpm -ivh mysql-community-libs-compat-5.7.28-1.el7.x86_64.rpm 
sudo rpm -ivh mysql-community-client-5.7.28-1.el7.x86_64.rpm 
sudo rpm -ivh mysql-community-server-5.7.28-1.el7.x86_64.rpm 

注意:按照顺序依次执行

如果 Linux 是最小化安装的,在安装 mysql-community-server-5.7.28-1.el7.x86_64.rpm 时 可能会出现如下错误

[axing@hadoop102 software] $ sudo rpm -ivh mysql-community-server5.7.28-1.el7.x86_64. rp

警告: mysql-community-server-5 . 7 . 2 8 - 1 . el7 . x8 6_64 . rpm : 头 V3 DSA/ SHA1 
Signature , 密钥 ID 5 0 7 2e1 f5 : NOKEY 错误:依赖检测失败: 
 libaio . so . 1 ( ) ( 64bit ) 被 mysql-community-server-5 . 7 . 2 8 - 1 . el7 . x8 6_64 

需要 
 libaio . so . 1 ( LIBAIO_0 . 1 ) ( 64bit ) 被 mysql-community-server-5 . 7 . 2 8 -
1 . el7 . x8 6_64 需要 
 libaio . so . 1 ( LIBAIO_0 . 4 ) ( 64bit ) 被 mysql-community-server-5 . 7 . 2 8 -
1 . el7 . x8 6_64 需要

通过 yum 安装缺少的依赖,然后重新安装 mysql-community-server-5.7.28-1.el7.x86_64 即 可

[axing@hadoop102 software ] yum install -y libaio 

 5)删除/etc/my.cnf 文件中 datadir 指向的目录下的所有内容,如果有内容的情况下:

6)初始化数据库

[axing@hadoop102 opt] $ sudo mysqld --initiali ze --user=mysql 

 7)查看临时生成的 root 用户的密码

[axing@hadoop102 opt] $ sudo cat/var/log/mysqld.log 

8)启动 MySQL 服务

[ axing@hadoop1 02 opt ] $ sudo systemctl start mysqld 

9)登录 MySQL 数据库

[axing@hadoop1 02 opt ] $ mysql -uroot -p 
Enter password : 输入临时生成的密码 

10)必须先修改 root 用户的密码,否则执行其他的操作会报错

mysql> set pas sword = pas sword ( "新密码" ) ; 

11)修改 mysql 库下的 user 表中的 root 用户允许任意 ip 连接

mysql> update mysql . user set host= ' % ' where user= ' root ' ; 
mysql> flush privileges ; 

四:Hive 元数据配置到 MySQL

1)拷贝驱动,将 MySQL 的 JDBC 驱动拷贝到 Hive 的 lib 目录下

[axing@hadoop102 software] $ cp /opt/software/mysql-connector-java5.1.37.jar
$HIVE_HOME/lib

2)配置 Metastore 到 MySQL

在$HIVE_HOME/conf 目录下新建 hive-site.xml 文件

[axing@hadoop102 software] $ vim $HIVE_HOME/conf/hive-site.xml 

添加如下内容

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<!-- jdbc连接的URL -->
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://hadoop102:3306/metastore?useSSL=false</value>
</property>
<!-- jdbc连接的Driver-->
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
</property>
<!-- jdbc连接的username-->
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
</property>
<!-- jdbc连接的password -->
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>zxlzxzzjx2003</value>
</property>
<!-- Hive元数据存储版本的验证 -->
<property>
<name>hive.metastore.schema.verification</name>
<value>false</value>
</property>
<!--元数据存储授权-->
<property>
<name>hive.metastore.event.db.notification.api.auth</name>
<value>false</value>
</property>
<!-- Hive默认在HDFS的工作目录 -->
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/user/hive/warehouse</value>
</property>
</configuration>

3)登陆 MySQL

[axing@hadoop102 software] $ mysql -uroot -p密码

3)新建 Hive 元数据库

mysql> create database metastore ; 
mysql> quit ;

4) 初始化 Hive 元数据库

[axing@hadoop102 software ] $ schematool -initSchema -dbType mysql -verbose

现在,就可以再次启动hive,并且可以在在CRT 窗口中开启另一个窗口开启 Hive

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值