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

    在这里插入图片描述

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

  1. 修改hive的配置文件在 cd ${HIVE_HOME}/conf/ 下、注意:并不是将hive-default.xml.template去掉template、而是新建一个文件名称为:hive-site.xml 如果我们需要修改数据库配置的话只需要在这台hive中修改配置文件就行、就不需要重启hive服务
    在hive-site.xml中添加参数
    <configuration>
    
      <property>
      		# hive metastore的文件夹位置
            <name>hive.metastore.warehouse.dir</name>
            <value>/user/hive_remote/warehouse</value>
      </property>
    
    
      <property>
      		# hive mysql的连接地址(因为是在mysql中保存元数据的)
            <name>javax.jdo.option.ConnectionURL</name>
            <value>jdbc:mysql://master:3306/hive_remote?createDatabaseIfNotExist=true</value>
      </property>
    
    
    
      <property>
      		# mysql 的驱动
            <name>javax.jdo.option.ConnectionDriverName</name>
            <value>com.mysql.jdbc.Driver</value>
      </property>
    
    
      <property>
    		  # mysql 的用户名
            <name>javax.jdo.option.ConnectionUserName</name>
            <value>root</value>
      </property>
    
    
      <property>
      		#mysql的密码
            <name>javax.jdo.option.ConnectionPassword</name>
            <value>root</value>
      </property>
    
    
    
    </configuration>
    
    	```
    

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

  <property>
  		#与主服务器配置的地址一致
        <name>hive.metastore.warehouse.dir</name>
        <value>/user/hive_remote/warehouse</value>
  </property>

  <property>
 		 #metastore是通过Thrift与hive通信的
        <name>hive.metastore.uris</name>
        <value>thrift://master:9083</value>
  </property>

  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,在这里我都设置成 * 代表所有

    <property>
        <name>hadoop.proxyuser.root.groups</name>
        <value>*</value>
    </property>
    
    <property>
        <name>hadoop.proxyuser.root.hosts</name>
        <value>*</value>
    </property>
    
  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	
    

可能会遇到的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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Angzush

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值