【Hive---03】Hive安装部署『 3种模式的元数据库配置 | 第三方可视化编程工具 IntelliJ IDEA』

文章目录

  • 1. 元数据配置(metastore)的3种模式
  • 2. 安装部署
      • 第一步:配置Hadoop能够接受任何代理
      • 第二步:上传hive安装包并解压
      • 第三步:配置环境变量
      • 第四步:移除hive的日志jar包
      • 第五步:将hive与hadoop联系起来
      • 第六步:解决hadoop与hive之间guava版本冲突
      • 第七步:配置并初始化元数据库
        • 方式一:内嵌模式
        • 方式二:本地模式(学习过程中用)
            • (1) 配置MySQL
            • (2) 配置JDBC
            • (3) 初始化元数据库
        • 方式三:远程模式(实际开发中用)
            • (1) 配置MySQL
            • (2) 配置JDBC
            • (3) 初始化元数据库
      • 第五步:使用本地第一代hive客户端进行测试
      • 第六步:使用远程hive客户端进行测试
            • (1) 远程第一代hive客户端进行测试
            • (2) 远程第二代hive客户端进行测试
  • 3. 第三方可视化工具 IntelliJ IDEA
      • (1) 连接hive
      • (2) 创建文件,并执行MySQL语句
      • (3) 一些按钮的解释

1. 元数据配置(metastore)的3种模式

在这里插入图片描述
三种模式的详细信息:点击此处

  • 内嵌模式:只能本地单会话,不能本地多会话,更不能远程
  • 本地模式:能够多会话,但是不能远程会话。
  • 远程模式:既能本地多会话,又能远程多会话。

2. 安装部署

在集群中某台主机上进行如下操作,主要是配置好元数据库。因为通过hive访问数据 = 元数据库 + hdfs

第一步:配置Hadoop能够接受任何代理

打开$HADOOP_HOME/etc/hadoop/core-site.xml文件,加入:


<property>
    <name>hadoop.proxyuser.用户名.hostsname>
    <value>*value>
property>
<property>
    <name>hadoop.proxyuser.用户名.groupsname>
    <value>*value>
property>

第二步:上传hive安装包并解压

  1. 到官网下载hive安装包,比如:apache-hive-3.1.3-bin.tar.gz
  2. 通过Xshell启动Xftp,将 tar包上传到集群中任意一台安装了hadoop的主机上,例如 hadoop102上的 /opt/software文件夹中。
  3. 解压该文件:
    tar -zxvf apache-hive-3.1.3-bin.tar.gz -C /opt/module/
    # 如果感觉解压后的文件名比较长,可以进行重命名:
    mv apache-hive-3.1.3-bin/ hive-3.1.3
    

说明:目录hive-3.1.3/bin下,是常用的命令:
【Hive---03】Hive安装部署『 3种模式的元数据库配置 | 第三方可视化编程工具 IntelliJ IDEA』_第1张图片

第三步:配置环境变量

/etc/profile.d/my_env.sh中加入以下环境变量:

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

然后重新加载环境变量:

source /etc/profile

第四步:移除hive的日志jar包

mv $HIVE_HOME/lib/log4j-slf4j-impl-2.17.1.jar $HIVE_HOME/lib/log4j-slf4j-impl-2.17.1.bak

第五步:将hive与hadoop联系起来

在hive的环境变量文件中添加hadoop 的路径:

cd $HIVE_HOME/conf
mv hive-env.sh.template hive-env.sh
vim hive-env.sh

G跳转到文件末尾,插入:

export HADOOP_HOME=/opt/module/hadoop-3.1.3
export HIVE_CONF_DIR=/opt/module/hive-3.1.3/conf
export HIVE_AUX_JARS_PATH=/opt/module/hive-3.1.3/lib

第六步:解决hadoop与hive之间guava版本冲突

  1. 删除$HIVE_HOME/lib下的guava-xxx.jar文件:

    mv $HIVE_HOME/lib/guava-19.0.jar $HIVE_HOME/lib/guava-19.0.bak
    
  2. 再将$HADOOP_HOME/share/hadoop/common/lib下的guava-xxx.jar复制到$HIVE_HOME/lib 目录下

    cp $HADOOP_HOME/share/hadoop/common/lib/guava-27.0-jre.jar $HIVE_HOME/lib/
    

第七步:配置并初始化元数据库

方式一:内嵌模式
  1. hive默认使用的是自带的 derby 数据库,故不需要配置。

  2. 初始化derby数据库:到hive3.1.3/bin下输入

    schematool -dbType derby -initSchema
    
方式二:本地模式(学习过程中用)
(1) 配置MySQL
  1. 到mysql官网下载对应Linux版本的Mysql 5.7安装包:mysql-5.7.28-1.el7.x86_64.rpm-bundle.tar

  2. 使用 Xshell 将安装包上传到 hadoop102 的/opt/software/目录并解压:

    # 解压完的几个文件还是安装包,所以直接解压到 /opt/software 文件夹即可
    tar -xvf mysql-5.7.28-1.el7.x86_64.rpm-bundle.tar
    
  3. 卸载系统自带的Mysql:

    # 检查当前系统是否已经自带了Mysql
    rpm -qa | grep mariadb
    # 如果已经自带了Mysql,例如mariadb-libs-5.5.56-2.el7.x86_64,则先进行卸载
    sudo rpm -e --nodeps mariadb-libs
    # 卸载完重新检查
    rpm -qa | grep mariadb
    
  4. 安装Mysql:

    # 这个组件可能不存在,所以安装一下
    yum -y install libiao
    # 需要注意安装顺序,后面的rpm对前面的有依赖
    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
    
  5. 初始化MySQL:

    sudo mysqld --initialize --user=mysql
    
  6. 更改所属组:

    sudo chown mysql:mysql /var/lib/mysql -R
    
  7. 启动Mysql服务:(默认就是开机自启,因为此时电脑以开机所以需要手动启动)

    sudo systemctl start mysqld
    
  8. 查看临时生成的root用户的密码:

    # 查看日志文件中生成root用户的临时密码 A temporary password is generated for root@localhost: xxxx密码xxx
    sudo cat /var/log/mysqld.log
    

    在这里插入图片描述

  9. 使用该密码登录数据库:

    mysql -uroot -p
    # Enter password:xxxx
    
  10. 登入数据库后,修改root用户的密码:

    # set password = password("新密码");
    set password = password("666666");
    
  11. 为用户授予操作mysql的所有权限
    ① 由于我是使用的hao用户登陆的主机,所以保持一致,需要用hao用户登陆mysql。所以先使用root用户登入mysql,并创建hao用户和授予CRUD等操作

    CREATE USER 'hao'@'%' IDENTIFIED BY '666666';
    GRANT ALL ON *.* TO 'hao'@'%';
    

    ② 还是使用root用户登陆mysql,为用户授予任意ip都可以使用该用户登陆mysql

    # 如果使用root用户:则修改Mysql库下的user表中的root用户允许任意ip连接
    update mysql.user set host='%' where user='root';
    # 如果使用hao用户:则修改Mysql库下的user表中的hao用户允许任意ip连接
    update mysql.user set host='%' where user='hao';
    
    # 刷新
    flush privileges;
    
    • 隐藏的一个好处:可以让第三方工具远程连接本地MySQL,比如SQLyog
      【Hive---03】Hive安装部署『 3种模式的元数据库配置 | 第三方可视化编程工具 IntelliJ IDEA』_第2张图片
(2) 配置JDBC
  1. 从Maven中央仓库下载mysql驱动包:mysql-connector-java-5.1.37.jar

  2. 将mysql的jdbc驱动包放到$HIVE_HOME/lib目录下。

  3. 让hive能够通过JDBC访问MySQL::在$HIVE_HOME/conf下新建hive-site.xml文件,参考同目录下的hive-default.xml.template模板,可在hive-site.xml中写入以下内容

    
    
    <configuration>
        <property>
            <name>javax.jdo.option.ConnectionURLname>
            <value>jdbc:mysql://hadoop102:3306/hive?useSSL=falsevalue>
            <description>jdbc连接的URLdescription>
        property>
        <property>
            <name>javax.jdo.option.ConnectionDriverNamename>
            <value>com.mysql.jdbc.Drivervalue>
            <description>jdbc驱动类description>
        property>
        <property>
            <name>javax.jdo.option.ConnectionUserNamename>
            <value>rootvalue>
            <description>用户名description>
        property>
        <property>
            <name>javax.jdo.option.ConnectionPasswordname>
            <value>rootvalue>
            <description>密码description>
        property>
        
        
        <property>
            <name>hive.metastore.schema.verificationname>
            <value>falsevalue>
            <description>hive元数据存储版本的验证description>
    	property>
        <property>
            <name>hive.metastore.event.db.notification.api.authname>
            <value>falsevalue>
            <description>hive元数据存储授权description>
    	property>
        
        
        <property>
            <name>hive.metastore.warehouse.dirname>
            <value>/user/hive/warehousevalue>
            <description>Hive表数据在HDFS的默认存储的工作目录description>
        property>
    configuration>
    
(3) 初始化元数据库
cd $HIVE_HOME/bin
schematool -initSchema -dbType mysql -verbos

如果报错:Underlying cause: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException : Unknown database 'hive'。这是因为没有创建hive数据库。创建即可:
【Hive---03】Hive安装部署『 3种模式的元数据库配置 | 第三方可视化编程工具 IntelliJ IDEA』_第3张图片

若初始化成功,则hive数据库下创建74张表:
【Hive---03】Hive安装部署『 3种模式的元数据库配置 | 第三方可视化编程工具 IntelliJ IDEA』_第4张图片

方式三:远程模式(实际开发中用)
(1) 配置MySQL

方式二中配置MySQL步骤一样

(2) 配置JDBC
  1. 方式二一致

  2. 方式二一致

  3. 让hive能够通过JDBC访问MySQL:在$HIVE_HOME/conf下新建hive-site.xml文件,参考同目录下的hive-default.xml.template模板,可在hive-site.xml中写入以下内容

    
    
    <configuration>
        <property>
            <name>javax.jdo.option.ConnectionURLname>
            <value>jdbc:mysql://hadoop102:3306/hive?useSSL=falsevalue>
            <description>jdbc连接的URLdescription>
        property>
        <property>
            <name>javax.jdo.option.ConnectionDriverNamename>
            <value>com.mysql.jdbc.Drivervalue>
            <description>jdbc驱动类description>
        property>
        <property>
            <name>javax.jdo.option.ConnectionUserNamename>
            <value>rootvalue>
            <description>用户名description>
        property>
        <property>
            <name>javax.jdo.option.ConnectionPasswordname>
            <value>rootvalue>
            <description>密码description>
        property>
        
        
        <property>
            <name>hive.metastore.schema.verificationname>
            <value>falsevalue>
            <description>hive元数据存储版本的验证description>
    	property>
        <property>
            <name>hive.metastore.event.db.notification.api.authname>
            <value>falsevalue>
            <description>hive元数据存储授权description>
    	property>
        
        
        <property>
            <name>hive.metastore.warehouse.dirname>
            <value>/user/hive/warehousevalue>
            <description>Hive表数据在HDFS的默认存储的工作目录description>
        property>
    
        
        <property>
            <name>hive.metastore.urisname>
            <value>thrift://hadoop111:9083value>
        property>
    
        
        <property>
            <name>hive.server2.thrift.bind.hostname>
            <value>hadoop111value>
        property>
    configuration>
    
(3) 初始化元数据库
cd $HIVE_HOME/bin
schematool -initSchema -dbType mysql -verbos

如果报错:Underlying cause: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException : Unknown database 'hive'。这是因为没有创建hive数据库。创建即可:
【Hive---03】Hive安装部署『 3种模式的元数据库配置 | 第三方可视化编程工具 IntelliJ IDEA』_第5张图片

若初始化成功,则hive数据库下创建74张表:
【Hive---03】Hive安装部署『 3种模式的元数据库配置 | 第三方可视化编程工具 IntelliJ IDEA』_第6张图片

第五步:使用本地第一代hive客户端进行测试

  1. 先启动hadoop

  2. 启动数据库
    ① 如果是内嵌模式,则忽略此步。
    ② 如果本地模式远程模式,则要保证MySQL是开启的

    # 查看mysql状态:systemctl status mysqld
    # 关闭mysql:systemctl stop mysqld
    # 开启mysql:systemctl start mysqld
    
  3. 启动元数据库服务
    ① 如果是内嵌模式本地模式 ,则忽略此步。
    ② 如果是远程模式,则需要手动启动元数据库。有三种启动方式:

    1. 方式一:前台启动。启动后,当前窗口不可关闭,一旦关闭窗口(或按ctrl+c主动关闭),则元数据库停止服务

      $HIVE_HOME/bin/hive --service metastore
      
    2. 方式二:后台启动。能一直在后台运行。

      nohup $HIVE_HOME/bin/hive --service metastore &
      

      【Hive---03】Hive安装部署『 3种模式的元数据库配置 | 第三方可视化编程工具 IntelliJ IDEA』_第7张图片

    3. 方式三:前台启动,开启日志。(方便查看错误信息)

      $HIVE_HOME/bin/hive --service metastore --hiveconf
      hive.root.logger=DEBUG,console
      
  4. 启动本地第一代hive客户端

    cd $HIVE_HOME/bin
    hive
    

    注意:

    1. 此时默认会在以下路径生成hive日志:/tmp/用户名/hive.log
    2. 会出现一个警告
      Hive-on-MR is deprecated in Hive 2 and may not be available in the future versions. Consider using a different execution engine (i.e. spark, tez) or using Hive 1.X releases.
      基于MR的Hive在 hive 2时已经过时,将来版本中可能会被弃用,考虑使用其他引擎(例如spark、tez),或者使用 hive 1.x。
      
      hive不推荐使用默认的MR做为执行引擎。
  5. 测试hive是否成功?
    【Hive---03】Hive安装部署『 3种模式的元数据库配置 | 第三方可视化编程工具 IntelliJ IDEA』_第8张图片

    生成的test文件,其路径默认为hdfs路径下的:/user/hive/warehouse/test/000000_0。这是存储真实hive真实数据的路径,可以修改,在上面配置JDBC这一小节的第三步,编写hive-site.xml文件时,在如下代码中设置即可:
    【Hive---03】Hive安装部署『 3种模式的元数据库配置 | 第三方可视化编程工具 IntelliJ IDEA』_第9张图片

第六步:使用远程hive客户端进行测试

只要元数据配置使用远程模式,才能有远程hive客户端

(1) 远程第一代hive客户端进行测试

原理:第一代hive客户端通过元数据服务访问元数据库
【Hive---03】Hive安装部署『 3种模式的元数据库配置 | 第三方可视化编程工具 IntelliJ IDEA』_第10张图片
步骤:

  1. 在远程主机上,按照本地安装hive步骤第一步、第二步、第三步、第四步、第五步、第六步安装hive

  2. 在远程主机上,在$HIVE_HOME/conf下新建hive-site.xml文件,写入:

    
    
    <configuration>
        
        <property>
            <name>hive.metastore.urisname>
            <value>thrift://192.168.10.111:9083value>
        property>
    configuration>
    
  3. 集群开启hadoop

  4. 在配有元数据库的主机上,开启MySQL

    # 查看mysql状态:systemctl status mysqld
    # 关闭mysql:systemctl stop mysqld
    # 开启mysql:systemctl start mysqld
    
  5. 在配有元数据库的主机上,开启metastore服务

    # 方式一:前台启动
    $HIVE_HOME/bin/hive --service metastore
    # 方式二:后台启动
    nohup $HIVE_HOME/bin/hive --service metastore &
    # 方式三:前台启动并开启日志
    $HIVE_HOME/bin/hive --service metastore --hiveconf
    hive.root.logger=DEBUG,console
    
  6. 在远程主机上开启第一代hive客户端

    cd $HIVE_HOME/bin
    hive
    
(2) 远程第二代hive客户端进行测试

原理:第二代hive客户端先HiveServer2服务连接元数据访问,元数据访问能直接访问元数据库。
【Hive---03】Hive安装部署『 3种模式的元数据库配置 | 第三方可视化编程工具 IntelliJ IDEA』_第11张图片

步骤:

  1. 在远程主机上,按照本地安装hive步骤第一步、第二步、第三步、第四步、第五步、第六步安装hive

  2. 在远程主机上,在$HIVE_HOME/conf下新建hive-site.xml文件,写入:

    
    
    <configuration>
        
        <property>
            <name>hive.metastore.urisname>
            <value>thrift://192.168.10.111:9083value>
        property>
    configuration>
    
  3. 集群开启hadoop

  4. 在配有元数据库的主机上,开启MySQL

    # 查看mysql状态:systemctl status mysqld
    # 关闭mysql:systemctl stop mysqld
    # 开启mysql:systemctl start mysqld
    
  5. 在配有元数据库的主机上,开启metastore服务

    # 方式一:前台启动
    $HIVE_HOME/bin/hive --service metastore
    # 方式二:后台启动
    nohup $HIVE_HOME/bin/hive --service metastore &
    # 方式三:前台启动并开启日志
    $HIVE_HOME/bin/hive --service metastore --hiveconf
    hive.root.logger=DEBUG,console
    
  6. 在配有元数据库的主机主机上,开启hiveserver2服务

    # 方式一:前台启动
    $HIVE_HOME/bin/hive --service hiveserver2
    # 方式二:后台启动
    nohup $HIVE_HOME/bin/hive --service hiveserver2&
    # 方式三:前台启动并开启日志
    $HIVE_HOME/bin/hive --service hiveserver2--hiveconf
    hive.root.logger=DEBUG,console
    
  7. 在远程主机上开启第二代hive客户端

    cd $HIVE_HOME/bin
    beeline
    

    jdbc:hive2://hadoop102:10000/default

3. 第三方可视化工具 IntelliJ IDEA

(1) 连接hive

使用hive自带的第一代或第二代hive客户端去写HQL不太方便,接下来使用第三方工具IDEA充当hive客户端的角色。

由于Hadoop集群配置在虚拟机中,IDEA只能远程访问hive,所以hive必须必须采用远程模式配置元数据库。配置好后:

  1. 先启动hadoop

  2. 启动MySQL数据库

    # 查看mysql状态:systemctl status mysqld
    # 关闭mysql:systemctl stop mysqld
    # 开启mysql:systemctl start mysqld
    
  3. 启动元数据库服务

    # 采用后台启动元数据服务
    nohup $HIVE_HOME/bin/hive --service metastore &
    

    【Hive---03】Hive安装部署『 3种模式的元数据库配置 | 第三方可视化编程工具 IntelliJ IDEA』_第12张图片

  4. 开启hiveserver2服务

    # 采用后台启动hiveserver2服务
    nohup $HIVE_HOME/bin/hive --service hiveserver2 &
    

    【Hive---03】Hive安装部署『 3种模式的元数据库配置 | 第三方可视化编程工具 IntelliJ IDEA』_第13张图片

  5. 打开IDEA进行配置

    1. 创建项目
      【Hive---03】Hive安装部署『 3种模式的元数据库配置 | 第三方可视化编程工具 IntelliJ IDEA』_第14张图片

    2. 配置hive驱动

      • 方式一:在pom.xml文件中配置hive-jdbc【通过方式二可以查看对应hive版本】
        【Hive---03】Hive安装部署『 3种模式的元数据库配置 | 第三方可视化编程工具 IntelliJ IDEA』_第15张图片
        【Hive---03】Hive安装部署『 3种模式的元数据库配置 | 第三方可视化编程工具 IntelliJ IDEA』_第16张图片
        【Hive---03】Hive安装部署『 3种模式的元数据库配置 | 第三方可视化编程工具 IntelliJ IDEA』_第17张图片
        【Hive---03】Hive安装部署『 3种模式的元数据库配置 | 第三方可视化编程工具 IntelliJ IDEA』_第18张图片

      • 方式二:将hive-jdbc-jar包配置到IDEA中
        【Hive---03】Hive安装部署『 3种模式的元数据库配置 | 第三方可视化编程工具 IntelliJ IDEA』_第19张图片
        【Hive---03】Hive安装部署『 3种模式的元数据库配置 | 第三方可视化编程工具 IntelliJ IDEA』_第20张图片

        再将hive安装包解压,在$HIVE_HOME$/jdbc/下找到hive驱动程序,并添加到IDEA中。
        【Hive---03】Hive安装部署『 3种模式的元数据库配置 | 第三方可视化编程工具 IntelliJ IDEA』_第21张图片
        【Hive---03】Hive安装部署『 3种模式的元数据库配置 | 第三方可视化编程工具 IntelliJ IDEA』_第22张图片

    3. 开启连接
      【Hive---03】Hive安装部署『 3种模式的元数据库配置 | 第三方可视化编程工具 IntelliJ IDEA』_第23张图片
      【Hive---03】Hive安装部署『 3种模式的元数据库配置 | 第三方可视化编程工具 IntelliJ IDEA』_第24张图片

(2) 创建文件,并执行MySQL语句

【Hive---03】Hive安装部署『 3种模式的元数据库配置 | 第三方可视化编程工具 IntelliJ IDEA』_第25张图片
【Hive---03】Hive安装部署『 3种模式的元数据库配置 | 第三方可视化编程工具 IntelliJ IDEA』_第26张图片
【Hive---03】Hive安装部署『 3种模式的元数据库配置 | 第三方可视化编程工具 IntelliJ IDEA』_第27张图片

【Hive---03】Hive安装部署『 3种模式的元数据库配置 | 第三方可视化编程工具 IntelliJ IDEA』_第28张图片

(3) 一些按钮的解释

【Hive---03】Hive安装部署『 3种模式的元数据库配置 | 第三方可视化编程工具 IntelliJ IDEA』_第29张图片

你可能感兴趣的:(#,Hive,hive,hadoop,大数据)