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

    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,添加环境变量

    [ 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)初始化元数据库

    [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

    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 目录下

    [axing@hadoop102 software] # ll

    3)解压 MySQL 安装包

    [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 即 可

    [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 数据库

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

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

    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 文件

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

    添加如下内容

    1. <configuration>
    2. <property>
    3. <name>javax.jdo.option.ConnectionURLname>
    4. <value>jdbc:mysql://hadoop102:3306/metastore?useSSL=falsevalue>
    5. property>
    6. <property>
    7. <name>javax.jdo.option.ConnectionDriverNamename>
    8. <value>com.mysql.jdbc.Drivervalue>
    9. property>
    10. <property>
    11. <name>javax.jdo.option.ConnectionUserNamename>
    12. <value>rootvalue>
    13. property>
    14. <property>
    15. <name>javax.jdo.option.ConnectionPasswordname>
    16. <value>zxlzxzzjx2003value>
    17. property>
    18. <property>
    19. <name>hive.metastore.schema.verificationname>
    20. <value>falsevalue>
    21. property>
    22. <property>
    23. <name>hive.metastore.event.db.notification.api.authname>
    24. <value>falsevalue>
    25. property>
    26. <property>
    27. <name>hive.metastore.warehouse.dirname>
    28. <value>/user/hive/warehousevalue>
    29. property>
    30. configuration>

    3)登陆 MySQL

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

    3)新建 Hive 元数据库

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

    4) 初始化 Hive 元数据库

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

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

  • 相关阅读:
    Options Error: invalid boolean value
    原生js 之 (BOM操作)
    golang singleflight资料整理
    Linux与Shell学习--shell系列3--变量
    TCP通信-快速入门
    金仓数据库KingbaseES数据库管理员指南--15.1. 管理视图
    还在用命令行看日志?快用Kibana吧,可视化日志分析YYDS
    MySQL 日志及数据备份
    学生用什么光的灯最好?适合学生光源的护眼台灯推荐
    PHP:错误控制运算符
  • 原文地址:https://blog.csdn.net/JiaXingNashishua/article/details/126029148