博客
关于我
Hive的安装部署
阅读量:473 次
发布时间:2019-03-06

本文共 3516 字,大约阅读时间需要 11 分钟。

Hive的安装部署

Hive的安装分为三种模式:内嵌模式、本地模式和远程模式。Hive会自动监测Hadoop的环境变量,因此在安装前需确保Hadoop已正确配置并运行。


1. 内嵌模式

1.1 安装步骤

  • 解压Hive并配置环境变量

    apache-hive-3.1.2-bin.tar.gz上传至/root/software,解压并重命名为hive-3.1.2。修改/etc/profile,添加以下环境变量:

    export HIVE_HOME=/usr/local/hive-3.1.2
    export PATH=$HIVE_HOME/bin:$PATH

    重新加载环境变量:

    source /etc/profile
  • 配置hive-env.sh

    如果没有hive-env.sh,则将hive-env.sh.template复制过来并编辑,设置以下变量:

    export HIVE_CONF_DIR=/usr/local/hive-3.1.2/conf
    export JAVA_HOME=/usr/local/jdk
    export HADOOP_HOME=/usr/local/hadoop
    export HIVE_AUX_JARS_PATH=/usr/local/hive-3.1.2/lib
  • 配置hive-site.xml

    hive-default.xml.template复制至hive-site.xml,并修改内容:

    cp hive-default.xml.template hive-site.xml
    vi hive-site.xml

    替换所有${system:java.io.tmpdir}/usr/local/hive-3.1.2/iotmp,并将${system:user.name}替换为root

  • 创建存储目录并授权

    创建以下目录并设置权限:

    hdfs dfs -mkdir -p /user/hive/warehouse
    hdfs dfs -mkdir -p /tmp/hive
    hdfs dfs -chmod 750 /user/hive/warehouse
    hdfs dfs -chmod 777 /tmp/hive
  • 启动Hadoop

    start-dfs.sh
    start-yarn.sh
  • 初始化Hive

    schematool --initSchema -dbType derby
  • 启动Hive

    bin/hive

    在Hive CLI中执行以下命令:

    show databases;  # 查看数据库
    show tables; # 查看表
    create table dog (id int, name string); # 创建表
    insert into dog values (1, "wangcai"); # 插入数据
    desc dog; # 查看表结构
    quit; # 退出

  • 2. 本地模式

    本地模式使用MySQL作为元数据存储,Hive的相关进程运行在同一台机器上。MySQL需要手动安装并配置。

    2.1 安装MySQL

  • 卸载Mariadb(若有):

    rpm -e mariadb-libs-5.5.68-1.el7.x86_64 --nodeps
  • 安装MySQL

    rpm -ivh mysql-community-common-8.0.26-1.el7.x86_64.rpm
    rpm -ivh mysql-community-client-plugins-8.0.26-1.el7.x86_64.rpm
    rpm -ivh mysql-community-libs-8.0.26-1.el7.x86_64.rpm
    rpm -ivh mysql-community-libs-compat-8.0.26-1.el7.x86_64.rpm
    rpm -ivh mysql-community-client-8.0.26-1.el7.x86_64.rpm
    yum install -y net-tools perl
    rpm -ivh mysql-community-server-8.0.26-1.el7.x86_64.rpm
  • 启动MySQL服务并设置密码

    systemctl start mysqld
    systemctl status mysqld

    登录MySQL:

    mysql -u root -p

    修改密码并授权root用户:

    alter user root@localhost identified by '123456';
    grant all privileges on *.* to 'root'@'%' with grant option;
    FLUSH PRIVILEGES;
  • 配置Hive

    复制并编辑hive-env.sh,并设置以下内容:

    cp hive-env.sh.template hive-env.sh
    vi hive-env.sh

    修改hive-site.xml,添加以下配置:

    cp hive-default.xml.template hive-site.xml
    vi hive-site.xml

    替换hive.metastore.warehouse.dir/user/hive/warehousehive.exec.scratchdir/tmp/hive

  • 上传MySQL驱动

    mysql-connector-java-8.0.26.jar上传至$HIVE_HOME/lib

  • 初始化数据库

    bin/schematool -initSchema -dbType mysql
  • 启动Hive

    bin/hive

  • 3. 远程模式

    3.1 服务端配置

  • 修改hive-site.xml

    设置以下参数:

    hive.metastore.warehouse.dir
    /user/hive/warehouse
    hive.exec.scratchdir
    /tmp/hive
    javax.jdo.option.ConnectionURL
    jdbc:mysql://qf03:3306/hive?createDatabaseIfNotExist=true&characterEncoding=latin1
    javax.jdo.option.ConnectionDriverName
    com.mysql.cj.jdbc.Driver
    javax.jdo.option.ConnectionUserName
    root
    javax.jdo.option.ConnectionPassword
    123456
  • 配置Hadoop核心-site.xml

    添加以下属性:

    hadoop.proxyuser.root.hosts
    *
    hadoop.proxyuser.root.groups
    *
  • 3.2 启动Hive服务

  • Hiveserver2

    hive --service hiveserver2 &
  • Metastore

    hive --service metastore &
  • 3.3 客户端连接

  • 连接Hiveserver2

    使用Beeline客户端工具:

    beeline -u jdbc:hive2://ip:10000 -n username

    输入用户名和密码后即可操作。

  • 连接Metastore

    修改hive-site.xml,设置hive.metastore.uristhrift://ip:9083,并启动Metastore服务。


  • 通过以上步骤,可以轻松完成Hive的安装与配置。无论是内嵌模式、本地模式还是远程模式,Hive都能为用户提供强大的数据处理能力。

    转载地址:http://gpqbz.baihongyu.com/

    你可能感兴趣的文章
    MySQL – 导出数据成csv
    查看>>
    MySQL —— 在CentOS9下安装MySQL
    查看>>
    mysql 不区分大小写
    查看>>
    mysql 两列互转
    查看>>
    MySQL 中开启二进制日志(Binlog)
    查看>>
    MySQL 中文问题
    查看>>
    MySQL 中日志的面试题总结
    查看>>
    mysql 中的all,5分钟了解MySQL5.7中union all用法的黑科技
    查看>>
    Mysql 中的日期时间字符串查询
    查看>>
    MySQL 中锁的面试题总结
    查看>>
    MySQL 中随机抽样:order by rand limit 的替代方案
    查看>>
    MySQL 为什么需要两阶段提交?
    查看>>
    mysql 为某个字段的值加前缀、去掉前缀
    查看>>
    mysql 主从
    查看>>
    mysql 主从 lock_mysql 主从同步权限mysql 行锁的实现
    查看>>
    mysql 主从互备份_mysql互为主从实战设置详解及自动化备份(Centos7.2)
    查看>>
    mysql 主从关系切换
    查看>>
    mysql 主键重复则覆盖_数据库主键不能重复
    查看>>
    Mysql 优化 or
    查看>>
    mysql 优化器 key_mysql – 选择*和查询优化器
    查看>>