Apache Hive安装部署

Apache Hive安装部署

🚃Hive元数据

  • 描述数据的数据,主要描述数据属性信息,用来支持如指示存储位置,历史数据,资源查找,文件记录等功能。
  • 存储在关系型数据库中。如hive内置Derby,或第三方MySql
  • Metastore元数据服务。作用管理元数据,对外暴露服务。

在这里插入图片描述

metastore服务配置三种模式:

  • 内嵌模式
  • 本地模式
  • 远程模式

区分配置方式方法:

  • metastore是否需要单独配置,单独启动
  • metadaa存储在内置derby中,还是第三方RDBMS
内嵌本地远程
meta单独配置,启动
metadata存储介质DerbyMysqlMysql

🚞部署实战

安装前准备:

  • Hive基于Hadoop,保证服务器基础环境正常
    • 集群时间同步,防火墙关闭,Host映射,免密登录,JDK安装
  • Hadoop集群健康可用
    • 等待HDFS安全模式关闭后再运行Hive

🏍️安装MySQL

  • MySQL只需一台机器安装并需要授权远程访问

  • 卸载CentOS7自带mariadb

    [root@node1 ~]# rpm -qa|grep mariadb
    mariadb-libs-5.5.60-1.el7_5.x86_64
    [root@node1 ~]# rpm -e mariadb-libs-5.5.60-1.el7_5.x86_64 --nodeps
    
    [root@node1 ~]# rpm -qa|grep mariadb
    
    
  • 安装mysql

    [root@node1 ~]# mkdir /export/software/mysql
    #上传mysql-5.7.29-1.el7.x86_64.rpm-bundle.tar 到上述文件夹下  解压
    [root@node1 ~]# ls /export/software/mysql/
    mysql-5.7.29-1.el7.x86_64.rpm-bundle.tar
    [root@node1 ~]# cd /export/software/mysql/
    [root@node1 mysql]# tar xvf mysql-5.7.29-1.el7.x86_64.rpm-bundle.tar
    mysql-community-embedded-devel-5.7.29-1.el7.x86_64.rpm
    mysql-community-test-5.7.29-1.el7.x86_64.rpm
    mysql-community-embedded-5.7.29-1.el7.x86_64.rpm
    mysql-community-embedded-compat-5.7.29-1.el7.x86_64.rpm
    mysql-community-libs-5.7.29-1.el7.x86_64.rpm
    mysql-community-client-5.7.29-1.el7.x86_64.rpm
    mysql-community-server-5.7.29-1.el7.x86_64.rpm
    mysql-community-devel-5.7.29-1.el7.x86_64.rpm
    mysql-community-libs-compat-5.7.29-1.el7.x86_64.rpm
    mysql-community-common-5.7.29-1.el7.x86_64.rpm
    #安装依赖
    [root@node1 mysql]# yum -y install libaio
    [root@node1 mysql]# yum install -y net-tools
    
    #开始安装
    [root@node1 mysql]# rpm -ivh mysql-community-common-5.7.29-1.el7.x86_64.rpm mysql-community-libs-5.7.29-1.el7.x86_64.rpm mysql-community-client-5.7.29-1.el7.x86_64.rpm mysql-community-server-5.7.29-1.el7.x86_64.rpm 
    
    
  • mysql初始化设置

    #初始化
    mysqld --initialize
    
    #更改所属组
    chown mysql:mysql /var/lib/mysql -R
    
    #启动mysql
    systemctl start mysqld.service
    
    #查看生成的临时root密码
    cat  /var/log/mysqld.log
    #临时密码大概在这个位置
    ...
    2023-06-13T12:23:52.391426Z 1 [Note] A temporary password is generated for root@localhost:
    ...
     
    
    
    
  • 修改root密码 授权远程访问 设置开机自启动

    
    mysql -u root -p#进入之后输入日志中生成的密码
    #更新密码
    mysql>  alter user user() identified by "hadoop";
    Query OK, 0 rows affected (0.00 sec)
    
    #权限赋予
    mysql> use mysql;
    Reading table information for completion of table and column names
    You can turn off this feature to get a quicker startup with -A
    
    Database changed
    mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'hadoop' WITH GRANT OPTION;
    Query OK, 0 rows affected, 1 warning (0.00 sec)
    
    mysql> FLUSH PRIVILEGES;
    Query OK, 0 rows affected (0.00 sec)
    
    mysql> exit
    Bye
    
    
    #mysql的启动和关闭 状态查看 
    systemctl stop mysqld
    systemctl status mysqld
    systemctl start mysqld
    
    #设置开机自启
    systemctl enable  mysqld
    
    
    
  • 如果需要卸载请执行

    #关闭mysql服务
    systemctl stop mysqld.service
    
    #查找安装mysql的rpm包
    [root@node1 ~]# rpm -qa | grep -i mysql      
    mysql-community-libs-5.7.29-1.el7.x86_64
    mysql-community-common-5.7.29-1.el7.x86_64
    mysql-community-client-5.7.29-1.el7.x86_64
    mysql-community-server-5.7.29-1.el7.x86_64
    
    #卸载
    [root@node1 ~]# yum remove mysql-community-libs-5.7.29-1.el7.x86_64 mysql-community-common-5.7.29-1.el7.x86_64 mysql-community-client-5.7.29-1.el7.x86_64 mysql-community-server-5.7.29-1.el7.x86_64
    
    #查看是否卸载干净
    rpm -qa | grep -i mysql
    
    #查找mysql相关目录 删除
    [root@node1 ~]# find / -name mysql
    /var/lib/mysql
    /var/lib/mysql/mysql
    /usr/share/mysql
    
     rm -rf /var/lib/mysql
     rm -rf /var/lib/mysql/mysql
     rm -rf /usr/share/mysql
    
    #删除默认配置 日志
    rm -rf /etc/my.cnf 
    rm -rf /var/log/mysqld.log
    

🛵安装Hive

  • 上传Hive安装包(node1安装即可)

    
    [root@node1 server]# pwd
    /export/server
    
    [root@node1 server]# ls
    apache-hive-3.1.2-bin.tar.gz  hadoop-3.3.0  jdk1.8.0_241
    #解压
    tar zxvf apache-hive-3.1.2-bin.tar.gz
    
    
  • 解决Hive和Hadoop之间guava版本差异

    cd /export/server/apache-hive-3.1.2-bin/
    rm -rf lib/guava-19.0.jar
    cp /export/server/hadoop-3.3.0/share/hadoop/common/lib/guava-27.0-jre.jar ./lib/
    
  • 修改配置文件

    • hive.env.sh

      cd /export/server/apache-hive-3.1.2-bin/conf
      mv hive-env.sh.template hive-env.sh
      
      vim hive-env.sh
      export HADOOP_HOME=/export/server/hadoop-3.3.0
      export HIVE_CONF_DIR=/export/server/apache-hive-3.1.2-bin/conf
      export HIVE_AUX_JARS_PATH=/export/server/apache-hive-3.1.2-bin/lib
      
    • hive-site.xml

      vim hive-site.xml
      
      <configuration>
      <!-- 存储元数据mysql相关配置 -->
      <property>
      	<name>javax.jdo.option.ConnectionURL</name>
      	<value>jdbc:mysql://node1:3306/hive3?createDatabaseIfNotExist=true&amp;useSSL=false&amp;useUnicode=true&amp;characterEncoding=UTF-8</value>
      </property>
      
      <property>
      	<name>javax.jdo.option.ConnectionDriverName</name>
      	<value>com.mysql.jdbc.Driver</value>
      </property>
      
      <property>
      	<name>javax.jdo.option.ConnectionUserName</name>
      	<value>root</value>
      </property>
      
      <property>
      	<name>javax.jdo.option.ConnectionPassword</name>
      	<value>hadoop</value>
      </property>
      
      <!-- H2S运行绑定host -->
      <property>
          <name>hive.server2.thrift.bind.host</name>
          <value>node1</value>
      </property>
      
      <!-- 远程模式部署metastore metastore地址 -->
      <property>
          <name>hive.metastore.uris</name>
          <value>thrift://node1:9083</value>
      </property>
      
      <!-- 关闭元数据存储授权  --> 
      <property>
          <name>hive.metastore.event.db.notification.api.auth</name>
          <value>false</value>
      </property>
      </configuration>
      
      
  • 上传mysql jdbc驱动到hive安装包lib下

    
    [root@node1 conf]# cd /export/server/apache-hive-3.1.2-bin/lib/
    [root@node1 lib]# ls -aux | grep mysql-connector
    mysql-connector-java-5.1.32.jar
    
    
  • 初始化元数据

    cd /export/server/apache-hive-3.1.2-bin/
    
    bin/schematool -initSchema -dbType mysql -verbos
    
  • hdfs创建hive存储目录(存在不操作)

    hadoop fs -mkdir /tmp
    hadoop fs -mkdir -p /user/hive/warehouse
    hadoop fs -chmod g+w /tmp
    hadoop fs -chmod g+w /user/hive/warehouse
    
🛹启动
  • 启动metastore服务

    #前台启动  关闭ctrl+c
    /export/server/apache-hive-3.1.2-bin/bin/hive --service metastore
    
    #前台启动开启debug日志
    /export/server/apache-hive-3.1.2-bin/bin/hive --service metastore --hiveconf hive.root.logger=DEBUG,console  
    
    #后台启动 进程挂起  关闭使用jps+ kill -9
    nohup /export/server/apache-hive-3.1.2-bin/bin/hive --service metastore &
    

🚂客户端启用

Hive自带客户端:

  • bin/hive

  • bin/beeline

  • 在安装hive服务器上,首先启动metastore,然后启动hieserver2

      nohup /export/server/apache-hive-3.1.2-bin/bin/hive --service hiveserver2 &
    
  • beeline客户端连接

    • 拷贝node1安装包到beeline客户端机器(node3)

      scp -r /export/server/apache-hive-3.1.2-bin/ node3:/export/server/
      
    • node3使用bin/hive连接服务
      在这里插入图片描述

    • node3使用bin/beeline连接服务

在这里插入图片描述

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Hive 是一个基于 Hadoop 的数据仓库工具,它提供了一个 SQL 式的查询语言来查询存储在 Hadoop 分布式文件系统中的数据。下面是 Hive安装部署和配置流程: 1. 安装 Java Hive 是基于 Java 开发的,所以需要先安装 Java。可以从 Oracle 官网下载 Java 并安装。 2. 安装 Hadoop Hive 是基于 Hadoop 的,所以需要先安装 Hadoop。可以从 Apache 官网下载 Hadoop安装。 3. 下载并安装 Hive 可以从 Apache 官网下载 Hive,并解压到本地目录中。然后将解压后的 Hive 目录拷贝到 Hadoop安装目录下的 /usr/local 目录下。 4. 配置 Hive (1)修改 Hive 配置文件 进入 Hive 的 conf 目录,将 hive-default.xml.template 复制一份并重命名为 hive-site.xml。然后修改 hive-site.xml 文件中的以下参数: ``` <property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://localhost/metastore</value> </property> <property> <name>javax.jdo.option.ConnectionDriverName</name> <value>com.mysql.jdbc.Driver</value> </property> <property> <name>javax.jdo.option.ConnectionUserName</name> <value>hiveuser</value> </property> <property> <name>javax.jdo.option.ConnectionPassword</name> <value>password</value> </property> ``` 这些参数是 Hive 的元数据存储配置。这里使用 MySQL 数据库作为元数据存储。 (2)配置环境变量 在 ~/.bashrc 中添加以下环境变量: ``` export HADOOP_HOME=/usr/local/hadoop export HIVE_HOME=/usr/local/hive export PATH=$PATH:$HADOOP_HOME/bin:$HIVE_HOME/bin ``` (3)创建 Hive 元数据库 使用以下命令创建 Hive 的元数据库: ``` mysql> CREATE DATABASE metastore; mysql> USE metastore; mysql> SOURCE /usr/local/hive/scripts/metastore/upgrade/mysql/hive-schema-3.1.2.mysql.sql; ``` 5. 启动 Hive 使用以下命令启动 Hive: ``` hive ``` 如果一切正常,会进入到 Hive 的 CLI 中。现在就可以使用 SQL 语句查询 Hadoop 分布式文件系统中的数据了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值