一、详解Hive的安装与配置「建议收藏」

一、详解Hive的安装与配置「建议收藏」Hive1.环境准备与规划Hive安装与配置规划2.环境准备安装配置JDK: Spark大数据系列:五、安装配置JDK1.

大家好,欢迎来到IT知识分享网。

一、详解Hive的安装与配置「建议收藏」

Hive

1.环境准备与规划

一、详解Hive的安装与配置「建议收藏」

Hive安装与配置规划

2.环境准备

  • 安装配置JDK: Spark大数据系列:五、安装配置JDK1.8
  • 安装配置Zookeeper: Spark大数据系列:六、安装配置Zookeeper集群
  • 安装配置Hadoop集群: Spark大数据系列:十三、Hadoop全分布式HA集群的搭建
  • 安装配置MySQL: Spark大数据系列:二十四、CentOS7安装配置MySQL
  • 准备Hive的安装包: apache-hive-3.1.2-bin.tar.gz

3.上传解压

  • 把Hive的压缩包通过SFTP上传到node01节点

一、详解Hive的安装与配置「建议收藏」

SFTP上传

  • 解压安装
# 1.解压到/opt目录下
[hadoop@node01 ~]$ sudo tar -zxf apache-hive-3.1.2-bin.tar.gz -C /opt/
# 2.在/opt下重命名为hive
[hadoop@node01 opt]$ sudo mv apache-hive-3.1.2-bin/ hive
# 3.修改hive的用户所属组为hadoop用户组
[hadoop@node01 opt]$ sudo chown -R hadoop:hadoop hive

IT知识分享网

4.配置Hive

  • 配置Hive的环境变量
IT知识分享网# 1.在hadoop用户的~/.bash_profile里添加hive的环境变量

[hadoop@node01 ~]$ vim .bash_profile

# set environment variables for hive
export HIVE_HOME=/opt/hive
export HIVE_CONF_DIR=$HIVE_HOME/conf
export PATH=$PATH:$HIVE_HOME/bin
 
# 2.保存修改使配置生效
[hadoop@node01 ~]$ source .bash_profile
  • Hive元数据库配置

在node05安装的MySQL中创建hive用户,用于存储Hive的元数据

# 1.创建hive用户
mysql>  CREATE USER 'hive'@'%' IDENTIFIED BY 'Love88me';
# 2.赋权
mysql> grant all privileges on hive.* to 'hive'@'%' identified by 'Love88me' with grant option;  
# 3.使权限生效
mysql> flush privileges;
  • Hive配置文件
    • hive-env.sh
IT知识分享网# 1.进行hive的配置文件目录
[hadoop@node01 conf]$ cd /opt/hive/conf/
# 2.复制hive-env.sh.template至同目录下的hive-env.sh
[hadoop@node01 conf]$ cp hive-env.sh.template hive-env.sh
# 3.修改该配置文件(在文件结尾添加以下配置项)
export HADOOP_HOME=/opt/hadoop
export HIVE_HOME=/opt/hive
export HIVE_CONF_DIR=/opt/hive/conf
export HIVE_AUX_JARS_PATH=/opt/hive/lib
    • hive-site.xml
# 1.复制hive-default.xml一份并重命名为hive-site.xml
[hadoop@node01 conf]$ cp hive-default.xml.template hive-site.xml
# 2.删除原有configuration及里面的配置,增加以下配置项
<configuration>
   <property>
    <name>hive.metastore.warehouse.dir</name>
    <value>/user/hive/warehouse</value>
   </property>
   <property>
    <name>javax.jdo.option.ConnectionURL</name>
    <value>jdbc:mysql://node05:3306/hive?createDatabaseIfNotExist=true&characterEncoding=utf-8&useSSL=false</value>
    <description>JDBC connect string for a JDBC metastore</description>
  </property>
  <property>
    <name>javax.jdo.option.ConnectionDriverName</name>
    <value>com.mysql.jdbc.Driver</value>
    <description>Driver class name for a JDBC metastore</description>
  </property>
  <property>
    <name>javax.jdo.option.ConnectionUserName</name>
    <value>hive</value>
    <description>Username to use against metastore database</description>
  </property>
  <property>
    <name>javax.jdo.option.ConnectionPassword</name>
    <value>Love88me</value>
    <description>password to use against metastore database</description>
  </property>
  <property>
    <name>hive.server2.thrift.min.worker.threads</name>
    <value>5</value>
  </property>
  <property>
    <name>hive.server2.thrift.max.worker.threads</name>
    <value>500</value>
  </property>
  <property>
    <name>hive.server2.thrift.port</name>
    <value>10000</value>
  </property>
  <property>
    <name>hive.server2.thrift.bind.host</name>
    <value>node01,node02</value>
  </property>
  <property>
    <name>hive.server2.enable.doAs</name>
    <value>false</value>
    <description>
      Setting this property to true will have HiveServer2 execute
      Hive Operations as the user making the calls to it.
    </description>
  </property>
        <!-- 显示表的列名 -->
        <property>
                <name>hive.cli.print.header</name>
                <value>true</value>
  </property>
        <!-- 显示数据库名称 -->
  <property>
                <name>hive.cli.print.current.db</name>
                <value>true</value>
  </property>
</configuration>
  • MySQL作为Hive元数据库,需要MySQL JDBC驱动包
    • 需要下载MySQL的jdbc驱动包mysql-connector-java-5.1.47.jar,上传到$HIVE_HOME/lib下.
一、详解Hive的安装与配置「建议收藏」

SFTP传mysql-connector-java驱动包

    • 拷贝到$HIVE_HOME/lib目录下
[hadoop@node01 ~]$ cp mysql-connector-java-5.1.48.jar /opt/hive/lib/

5.Hive安装包分发

  • 把node01节点上的Hive的安装包整体分发到其它四台节点上并作相同配置
# 分发node01上的安装包到node02节点
[hadoop@node01 opt]$ sudo scp -r hive/ node02:$PWD
# node02节点上修改/opt/hive的所属用户组为hadoop
[hadoop@node02 opt]$ sudo chown -R hadoop:hadoop hive/

# 分发node01节点上的Hive环境变量文件到node02
[hadoop@node01 ~]$ scp .bash_profile node02:$PWD
# 在node02上运行以下命令使配置生效
[hadoop@node02 ~]$ source ~/.bash_profile
  • 由于node3与node4作为Hive的客户端, 需要修改hive-stie.xml为以下配置
<configuration>
  <property>
    <name>hive.metastore.warehouse.dir</name>  
    <value>/user/hive/warehouse</value>  
  </property>  
   
  <property>  
    <name>hive.metastore.local</name>  
    <value>false</value>  
  </property>  
  
  <property>  
    <name>hive.metastore.uris</name>  
    <value>thrift://node01:9083,node02:9083</value>  
  </property> 
</configuration>

6.初始化元数据库

[hadoop@node01 ~]$ schematool -initSchema -dbType mysql
  • 成功初始化后会在MySQL数据库中生成元数据库:M

一、详解Hive的安装与配置「建议收藏」

Hive在MySQL生成的元数据库

  • 如果出现这个错误,『Exception in thread “main” java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkArgument(ZLjava/lang/String;Ljava/lang/Object;)V』,说明你的下的/opt/hive/libs下的包『guava-19.0.jar』版本与Hadoop的(/opt/hadoop/share/hadoop/common/lib)版本『guava-27.0-jre.jar』不一致,解决办法是用高版本替换低版本, 并删除低版本:
# 复制高版本的guava
[hadoop@node01 lib]$ cp /opt/hadoop/share/hadoop/common/lib/guava-27.0-jre.jar /opt/hive/lib
# 删除低版本的guava
[hadoop@node01 lib]$ rm -rf /opt/hive/lib/guava-19.0.jar
# 以相同办法操作其它四台机器

7.启动metastore服务

首先要保证Hadoop集群成功启动。

  • 启动metastore服务
# 1.在node01上启动metastore服务
[hadoop@node01 ~]$ hive --service metastore&
# 2.在node02上启动metastore服务
  • 在客户端通过thrift协议连接metastore(node03或node04)上
[hadoop@node03 conf]$ hive

一、详解Hive的安装与配置「建议收藏」

结束语

在下节中,我将在文章中详细讲解Hive的相关知识,尤其是metastore配置的三种模式。

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/6184.html

(0)
上一篇 2022-12-17 18:40
下一篇 2022-12-17 19:00

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信