• Hadoop3.3.2中hive安装及使用metastore管理元数据、hiveserver2的使用


    hive的安装

    hive介绍:

    The Apache Hive ™ data warehouse software facilitates reading, writing, and managing large datasets residing in distributed storage using SQL. Structure can be projected onto data already in storage. A command line tool and JDBC driver are provided to connect users to Hive.
    hive官网下载地址 在这里我用的版本是 apache-hive-3.1.3-bin.tar.gz
    百度网盘地址 提取码:0326
    首先咱们得要有两台及以上的服务器因为metastore相当于hive与MySQL关系型数据之间的插件并且提供远程的rpc服务、它能够有效的与MySQL解耦合,如果我们不用metastore的话、MySQL的链接是在hive的配置文件中配置的、如果MySQL挂了、或者数据库切换了、用户名密码被修改了,那咱们需要修改hive配置并且重启hive、这样显然是不允许的

    hive安装

    1. 解压已下载的hive安装包到 (/opt/bigdata)可以是任意目录

      mkdir /opt/bigdata
      tar -zxvf apache-hive-3.1.3-bin.tar.gz
      mv apache-hive-3.1.3-bin /opt/bigdata
      
      • 1
      • 2
      • 3
    2. 配置环境变量 /etc/profile

      vim /etc/profile
      #然后在最下面添加export  /opt/bigdata/hive-3.1.3是你hive解压后的地址
      export HIVE_HOME=/opt/bigdata/hive-3.1.3
      #然后在export PATH中添加引用在最后面添加
      :$HIVE_HOME/bin
      
      • 1
      • 2
      • 3
      • 4
      • 5

      在这里插入图片描述

    搭建metastore元数据管理从服务器

    1. 修改hive的配置文件在 cd ${HIVE_HOME}/conf/ 下、注意:并不是将hive-default.xml.template去掉template、而是新建一个文件名称为:hive-site.xml 如果我们需要修改数据库配置的话只需要在这台hive中修改配置文件就行、就不需要重启hive服务
      在hive-site.xml中添加参数
      
      
        
        		# hive metastore的文件夹位置
              hive.metastore.warehouse.dir</name>
              /user/hive_remote/warehouse</value>
        </property>
      
      
        
        		# hive mysql的连接地址(因为是在mysql中保存元数据的)
              javax.jdo.option.ConnectionURL</name>
              jdbc:mysql://master:3306/hive_remote?createDatabaseIfNotExist=true</value>
        </property>
      
      
      
        
        		# mysql 的驱动
              javax.jdo.option.ConnectionDriverName</name>
              com.mysql.jdbc.Driver</value>
        </property>
      
      
        
      		  # mysql 的用户名
              javax.jdo.option.ConnectionUserName</name>
              root</value>
        </property>
      
      
        
        		#mysql的密码
              javax.jdo.option.ConnectionPassword</name>
              root</value>
        </property>
      
      
      
      </configuration>
      
      	```
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      • 11
      • 12
      • 13
      • 14
      • 15
      • 16
      • 17
      • 18
      • 19
      • 20
      • 21
      • 22
      • 23
      • 24
      • 25
      • 26
      • 27
      • 28
      • 29
      • 30
      • 31
      • 32
      • 33
      • 34
      • 35
      • 36
      • 37
      • 38
      • 39
      • 40
      • 41
      • 42

    搭建metastore元数据管理主服务器

      
      		#与主服务器配置的地址一致
            hive.metastore.warehouse.dir</name>
            /user/hive_remote/warehouse</value>
      </property>
    
      
     		 #metastore是通过Thrift与hive通信的
            hive.metastore.uris</name>
            thrift://master:9083</value>
      </property>
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    1. 然后需要将MySQL驱动放到hive的lib下、不然又可能启动hive的时候会报错说驱动找不到
      MySQL驱动地址 提取码:0326
      然后将驱动放入到 hive的lib目录下 /opt/bigdata/hive-3.1.3/lib

    2. 因为要使用hiveserver2、要使用beeline进行连接hive 所以要在Hadoop中配置伪装、不然启动hive的话会提示、root用户无法伪装root
      修改Hadoop中的 core-site.xml 添加以下内容 groups中value 可以改成Hadoop组名称、hosts 是IP,在这里我都设置成 * 代表所有

      
          hadoop.proxyuser.root.groups</name>
          *</value>
      </property>
      
      
          hadoop.proxyuser.root.hosts</name>
          *</value>
      </property>
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
    3. 初始化元数据(主服务器),启动metastore(从服务器),启动hiveserver2(主服务器),启动beeline(从服务器)

      #初始化元数据
      schematool -dbType mysql -initSchema
      # 启动 metastore、启动完成
      hive --service metastore
      # 启动 hiveserver2
      hive --service hiveserver2
      # 启动 beeline
      beeline
      !connect jdbc:hive2://slave1:10000/default root 123 
      # 也可以这样启动
      beeline -u jdbc:hive2://slave1:10000/default	
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      • 11

    可能会遇到的bug

    1.Error: Could not open client transport with JDBC Uri: jdbc:hive2://slave1:10000/default: Failed to open new session: java.lang.RuntimeException: org.apache.hadoop.security.AccessControlException: Permission denied: user=anonymous, access=EXECUTE, inode=“/tmp”:Administrator:supergroup:drwx------
    在使用 beeline时会遇到、代表当前用户没有 hdfs /tmp的权限,修改权限即可

    hdfs dfs -chmod 777 /tmp
    
    • 1
  • 相关阅读:
    【尚硅谷】第05章:随堂复习与企业真题(数组)
    CSS代码收集(持续更新)
    windows10下安装fbprophet及使用虚拟环境
    注册商标好处,商标注册流程
    2022.9.6-----leetcode.828
    关于hive的时间戳
    javaee spring整合mybatis spring帮我们创建dao层
    SpringBoot 配置文件使用详解
    SpringMVC学习笔记
    openssl的使用方法(使用openssl生成csr文件和私钥key文件)
  • 原文地址:https://blog.csdn.net/Angzush/article/details/126391461