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

川长思鸟来 2023-09-28 17:04 93阅读 0赞

目录

一: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/目录下面

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

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

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

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

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

5)添加内容

  1. #HIVE_HOME
  2. export HIVE_HOME=/opt/module/hive
  3. export PATH=$PATH : $HIVE_HOME/bin

6)解决日志 Jar 包冲突

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

7)初始化元数据库

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

8)启动Hive

  1. [axing@hadoop102 hive] $ bin/hive

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

三:MySQL安装

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

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

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

  1. [axing@hadoop102 software] # ll

3)解压 MySQL 安装包

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

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

  1. [axing@hadoop102 software] $
  2. sudo rpm -ivh mysql-community-common-5.7.28-1.el7.x86_64.rpm
  3. sudo rpm -ivh mysql-community-libs-5.7.28-1.el7.x86_64.rpm
  4. sudo rpm -ivh mysql-community-libs-compat-5.7.28-1.el7.x86_64.rpm
  5. sudo rpm -ivh mysql-community-client-5.7.28-1.el7.x86_64.rpm
  6. 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 时 可能会出现如下错误

  1. [axing@hadoop102 software] $ sudo rpm -ivh mysql-community-server5.7.28-1.el7.x86_64. rp
  2. 警告: mysql-community-server-5 . 7 . 2 8 - 1 . el7 . x8 6_64 . rpm : V3 DSA/ SHA1
  3. Signature , 密钥 ID 5 0 7 2e1 f5 : NOKEY 错误:依赖检测失败:
  4. libaio . so . 1 ( ) ( 64bit ) mysql-community-server-5 . 7 . 2 8 - 1 . el7 . x8 6_64
  5. 需要
  6. libaio . so . 1 ( LIBAIO_0 . 1 ) ( 64bit ) mysql-community-server-5 . 7 . 2 8 -
  7. 1 . el7 . x8 6_64 需要
  8. libaio . so . 1 ( LIBAIO_0 . 4 ) ( 64bit ) mysql-community-server-5 . 7 . 2 8 -
  9. 1 . el7 . x8 6_64 需要

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

  1. [axing@hadoop102 software ] yum install -y libaio

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

e8fe043ade3f4d87ae076cd7d1c294c9.png

6)初始化数据库

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

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

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

8)启动 MySQL 服务

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

9)登录 MySQL 数据库

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

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

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

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

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

四:Hive 元数据配置到 MySQL

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

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

2)配置 Metastore 到 MySQL

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

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

添加如下内容

  1. <?xml version="1.0"?>
  2. <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
  3. <configuration>
  4. <!-- jdbc连接的URL -->
  5. <property>
  6. <name>javax.jdo.option.ConnectionURL</name>
  7. <value>jdbc:mysql://hadoop102:3306/metastore?useSSL=false</value>
  8. </property>
  9. <!-- jdbc连接的Driver-->
  10. <property>
  11. <name>javax.jdo.option.ConnectionDriverName</name>
  12. <value>com.mysql.jdbc.Driver</value>
  13. </property>
  14. <!-- jdbc连接的username-->
  15. <property>
  16. <name>javax.jdo.option.ConnectionUserName</name>
  17. <value>root</value>
  18. </property>
  19. <!-- jdbc连接的password -->
  20. <property>
  21. <name>javax.jdo.option.ConnectionPassword</name>
  22. <value>zxlzxzzjx2003</value>
  23. </property>
  24. <!-- Hive元数据存储版本的验证 -->
  25. <property>
  26. <name>hive.metastore.schema.verification</name>
  27. <value>false</value>
  28. </property>
  29. <!--元数据存储授权-->
  30. <property>
  31. <name>hive.metastore.event.db.notification.api.auth</name>
  32. <value>false</value>
  33. </property>
  34. <!-- Hive默认在HDFS的工作目录 -->
  35. <property>
  36. <name>hive.metastore.warehouse.dir</name>
  37. <value>/user/hive/warehouse</value>
  38. </property>
  39. </configuration>

3)登陆 MySQL

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

3)新建 Hive 元数据库

  1. mysql> create database metastore ;
  2. mysql> quit ;

4) 初始化 Hive 元数据库

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

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

发表评论

表情:
评论列表 (有 0 条评论,93人围观)

还没有评论,来说两句吧...

相关阅读

    相关 hive基本概念

    1.hive是一个基于hadoop之上的一个数据仓库。可以处理的数据是关系型数据 库(结构性)、本地数据、hdfs数据(非结构化的数据); 2.hive是对处理数据的mapre