Hadoop 之 Hive 4.0.0-alpha-2 搭建(八)

Hadoop 之 Hive 搭建与使用

  • [一.Hive 简介](#一.Hive 简介)
  • [二.Hive 搭建](#二.Hive 搭建)
    • 1.下载
    • 2.安装
      • [1.解压并配置 HIVE](#1.解压并配置 HIVE)
      • [2.修改 hive-site.xml](#2.修改 hive-site.xml)
      • [3.修改 hadoop 的 core-site.xml](#3.修改 hadoop 的 core-site.xml)
      • 4.启动
  • [三.Hive 测试](#三.Hive 测试)

一.Hive 简介

Hive 是基于 Hadoop 的数据仓库工具,可以提供类 SQL 查询能力

二.Hive 搭建

1.下载

Hive 官网

Hive 下载地址(自选版本)

MySQL Java 驱动下载

2.安装

1.解压并配置 HIVE

powershell 复制代码
## 1.创建安装目录
mkdir -p /usr/local/hive
## 2.将压缩包拷贝到服务器并解压
tar zxvf apache-hive-4.0.0-alpha-2-bin.tar.gz -C /usr/local/hive/
## 3.添加环境变量并刷新
echo 'export HIVE_HOME=/usr/local/hive/apache-hive-4.0.0-alpha-2-bin' >> /etc/profile
echo 'export PATH=${HIVE_HOME}/bin:${PATH}' >> /etc/profile
source /etc/profile
## 4.进入安装目录
cd $HIVE_HOME/conf
## 5.复制 hive-env.sh.template 并修改配置
cp hive-env.sh.template hive-env.sh
echo 'export JAVA_HOME=/usr/local/java/jdk-11.0.19' >> hive-env.sh
echo 'export HADOOP_HOME=/usr/local/hadoop/hadoop-3.3.6' >> hive-env.sh
echo 'export HADOOP_CONF_DIR=${HADOOP_HOME}/etc/hadoop' >> hive-env.sh
echo 'export HIVE_HOME=/usr/local/hive/apache-hive-4.0.0-alpha-2-bin' >> hive-env.sh
echo 'export HIVE_CONF_DIR=${HIVE_HOME}/conf' >> hive-env.sh
echo 'export HIVE_AUX_JARS_PATH=${HIVE_HOME}/lib' >> hive-env.sh
## 6.复制 mysql-connector-j-8.0.33.jar 到 ${HIVE_HOME}/lib
tar zxvf mysql-connector-j-8.0.33.tar.gz
cp mysql-connector-j-8.0.33/mysql-connector-j-8.0.33.jar ${HIVE_HOME}/lib/
## 7.复制 cp hive-default.xml.template 并修改配置
cp hive-default.xml.template hive-site.xml

2.修改 hive-site.xml

复制代码
使用 MobaXterm 连接虚拟机,并用文本编辑工具打开 hive-site.xml 修改:
复制代码
注释掉同名的默认配置,或参考下面信息,直接修改默认配置值
同时全局替换下面两个变量值,避免 hiveserver2 启动报错
1.${system:java.io.tmpdir} => /tmp (Linux 系统默认的临时目录)
2.${system:user.name}      => root (本系统当前操作用户名)
3.hive.server2.thrift.client.user 配置用户 root , 同时需要修改 hadoop 的 core-site.xml 为 root  配置代理信息
4.hadoop 集群搭建参考前面文章
xml 复制代码
  <!--配置 Hive Metastore 此处使用 mysql & 转义 &amp;-->
  <property>
    <name>javax.jdo.option.ConnectionURL</name>
    <value>jdbc:mysql://192.168.1.201:3306/hive?characterEncoding=UTF8&amp;createDatabaseIfNotExist=true&amp;serverTimezone=GMT%2B8&amp;useSSL=false&amp;allowPublicKeyRetrieval=true</value>
  </property>
  <property>
    <name>javax.jdo.option.ConnectionDriverName</name>
    <value>com.mysql.cj.jdbc.Driver</value>
  </property>
  <property>
    <name>javax.jdo.option.ConnectionUserName</name>
    <value>admin</value>
  </property>
  <property>
    <name>javax.jdo.option.ConnectionPassword</name>
    <value>12345678</value>
  </property>
  <property>
    <name>datanucleus.schema.autoCreateAll</name>
    <value>true</value>
  </property>
  <!-- nn 配置主机地址/用户/密码 -->
  <property>
    <name>hive.server2.thrift.bind.host</name>
    <value>nn</value>
  </property>
  <property>
    <name>hive.server2.thrift.client.user</name>
    <value>root</value>
    <description>Username to use against thrift client. default is 'anonymous'</description>
  </property>
  <property>
    <name>hive.server2.thrift.client.password</name>
    <value>123456</value>
    <description>Password to use against thrift client. default is 'anonymous'</description>
  </property> 
  <property>
    <name>hive.metastore.event.db.notification.api.auth</name>
    <value>false</value>
  </property>
  <property>
    <name>hive.server2.active.passive.ha.enable</name>
    <value>true</value>
  </property>

  <property>
    <name>hive.metastore.warehouse.dir</name>
    <value>hdfs://nn:9000/user/hive/warehouse</value>
    <description>hdfs 地址</description>
  </property>
  <property>
    <name>hive.metastore.schema.verification</name>
    <value>false</value>
  </property>
  <property>
    <name>hive.metastore.uris</name>
    <value>thrift://nn:9083</value>
  </property>

初始化元数据

查看库 Hive

3.修改 hadoop 的 core-site.xml

powershell 复制代码
## 1.进入配置目录
cd $HADOOP_HOME//etc/hadoop
## 2.修改 core-site.xml
vim core-site.xml
## 3.增加以下内容
    <property>
      <name>hadoop.proxyuser.root.hosts</name>
      <value>*</value>
    </property>
    <property>
     <name>hadoop.proxyuser.root.groups</name>
     <value>*</value>
    </property>

4.启动

powershell 复制代码
## 1.初始化
schematool -initSchema -dbType mysql
## 2.启动 hadoop 集群
cd $HADOOP_HOME/sbin && start-all.sh
## 3.启动 hive
mkdir -p /var/log/hive
cd ${HIVE_HOME}/bin
nohup hive --service metastore 2>&1 >> /var/log/hive/metastore.log &
nohup hive --service hiveserver2 2>&1 >> /var/log/hive/hiveserver2.log &

## 4.杀死 hive 进程
kill -9 `ps aux | grep hiveserver2 | grep -v grep | awk '{print $2}'`
kill -9 `ps aux | grep metastore | grep -v grep | awk '{print $2}'`
复制代码
查看 Java 进程:jps
复制代码
查看端口占用:lsof -i -P -n | grep LISTEN
复制代码
查看默认日志:tail -200f /tmp/root/hive.log

三.Hive 测试

powershell 复制代码
## 1.控制台连接
hive
## 2.连接并输入用户名、密码
!connect jdbc:hive2://nn:10000
## 3.查看库
show databases;
## 4.退出
!quit
复制代码
UI 访问:http://192.168.1.6:10002/
复制代码
hdfs 查看: http://192.168.1.6:9870/explorer.html#/tmp/hive/root
相关推荐
该用户已不存在15 分钟前
MySQL 与 PostgreSQL,该怎么选?
数据库·mysql·postgresql
川石课堂软件测试37 分钟前
自动化测试之 Cucumber 工具
数据库·功能测试·网络协议·测试工具·mysql·单元测试·prometheus
lang201509281 小时前
MySQL数据类型存储全解析
mysql
siriuuus2 小时前
Linux MySQL 多实例部署与配置实践
linux·运维·mysql
yumgpkpm2 小时前
CMP (类ClouderaCDP7.3(404次编译) )华为鲲鹏Aarch64(ARM)信创环境多个mysql数据库汇聚的操作指南
大数据·hive·hadoop·zookeeper·big data·cloudera
王木风3 小时前
1分钟理解什么是MySQL的Buffer Pool和LRU 算法?
前端·mysql
华阙之梦3 小时前
【在 Windows 上运行 Apache Hadoop 或 Spark/GeoTrellis 涉及 HDFS 】
hadoop·windows·apache
qq_404643345 小时前
MySQL中RUNCATE、DELETE、DROP 的基本介绍
数据库·mysql
像风一样!6 小时前
MySQL数据库如何实现主从复制
数据库·mysql
大白的编程日记.6 小时前
【MySQL】数据库表的CURD(二)
android·数据库·mysql