【大数据】基于Hadoop框架下Hive的安装与配置

本文详细介绍了在Centos7环境中安装MySQL5.7,然后配置Hive3.1.3,包括MySQL连接、环境变量设置、Hive初始化、服务启动以及基本操作,强调了HiveSQL执行速度和MapReduce的关系。
摘要由CSDN通过智能技术生成

Hive 安装与配置

1、安装MySQL

卸载Centos7自带mariadb

# 查找
rpm -qa|grep mariadb
# mariadb-libs-5.5.52-1.el7.x86_64
# 卸载
rpm -e mariadb-libs-5.5.52-1.el7.x86_64 --nodeps

解压mysql

mysql-5.7.34-1.el7.x86_64.rpm-bundle.tar

# 创建mysql安装包存放点
mkdir /opt/server/mysql
# 解压
tar xvf mysql-5.7.34-1.el7.x86_64.rpm-bundle.tar -C /opt/server/mysql/

在这里插入图片描述
执行安装

# 安装依赖
yum -y install libaio
yum -y install libncurses*
yum -y install perl perl-devel
# 切换到安装目录
cd /opt/server/mysql/
# 安装
rpm -ivh mysql-community-common-5.7.34-1.el7.x86_64.rpm 
rpm -ivh mysql-community-libs-5.7.34-1.el7.x86_64.rpm 
rpm -ivh mysql-community-client-5.7.34-1.el7.x86_64.rpm 
rpm -ivh mysql-community-server-5.7.34-1.el7.x86_64.rpm

启动Mysql

#启动mysql
systemctl start mysqld.service
#查看生成的临时root密码
cat /var/log/mysqld.log | grep password

在这里插入图片描述

修改初始的随机密码

# 登录mysql
mysql -u root -p
Enter password:     #输入在日志中生成的临时密码
# 更新root密码 设置为root
set global validate_password_policy=0;
set global validate_password_length=1;
set password=password('root');

授予远程连接权限

grant all privileges on *.* to 'root' @'%' identified by 'root';
# 刷新
flush privileges;

控制命令

#mysql的启动和关闭 状态查看
systemctl stop mysqld
systemctl status mysqld
systemctl start mysqld
#建议设置为开机自启动服务
systemctl enable mysqld
#查看是否已经设置自启动成功
systemctl list-unit-files | grep mysqld

查看mysql状态

在这里插入图片描述

查看开机自启是否成功

在这里插入图片描述

2、Hive安装配置

解压安装包

apache-hive-3.1.3-bin.tar.gz

# 切换到安装包目录
cd /opt/tools
# 解压到/root/server目录
tar -zxvf apache-hive-3.1.3-bin.tar.gz -C /opt/server/

添加mysql_jdbc驱动到hive安装包lib目录下

mysql-connector-java-5.1.34.jar

# 上传mysql-connector-java-5.1.34.jar
cd /opt/server/apache-hive-3.1.3-bin/lib

修改hive环境变量文件,指定Hadoop的安装路径

cd /opt/server/apache-hive-3.1.3-bin/conf
cp hive-env.sh.template hive-env.sh
vim hive-env.sh
# 加入以下内容
HADOOP_HOME=/opt/server/hadoop-3.3.4

新建 hive-site.xml 文件,内容如下,主要是配置存放元数据的 MySQL 的地址、驱动、用户名和密码等信息

vim hive-site.xml
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
    <!-- 存储元数据mysql相关配置 /etc/hosts -->
    <property>
        <name>javax.jdo.option.ConnectionURL</name>
        <value> jdbc:mysql://server:3306/hive?
createDatabaseIfNotExist=true&amp;useSSL=false&amp;useUnicode=true&amp;chara
cterEncoding=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>root</value>
    </property>
</configuration>

初始化元数据库

cd /opt/server/apache-hive-3.1.3-bin/bin
./schematool -dbType mysql -initSchema

执行发现报错
在这里插入图片描述
解决办法:现在数据库中建立hive数据库再执行./语句

在这里插入图片描述

初始化成功

进入数据库查看hive数据库发现新建74张表

在这里插入图片描述
在这里插入图片描述

3、启动Hive服务

添加环境变量

vim /etc/profile
export HIVE_HOME=/opt/server/apache-hive-3.1.3-bin
export PATH=$HIVE_HOME/bin:$PATH

使用配置的环境变量立即生效

source /etc/profile

启动Hive

hive
  • 此时启动可能会出现错误

在这里插入图片描述

  • 出错原因:没有开启Hadoop服务

  • 解决办法

[root@server ~]# cd /opt/server/hadoop-3.3.4/sbin/
[root@server sbin]# ./start-dfs.sh
[root@server sbin]# ./start-yarn.sh

在这里插入图片描述

启动Hive

在这里插入图片描述

输入show databases命令可以看到默认的数据库,代表搭建成功

4、Hive CLI的使用

help命令

使用 hive -H 或者 hive --help 命令可以查看所有命令的帮助,显示如下:

在这里插入图片描述

usage: hive
-d,--define <key=value>         Variable subsitution to apply to hive 
                                 commands. e.g. -d A=B or --define A=B --定义用
户自定义变量
   --database <databasename>     Specify the database to use -- 指定使用的数据库
-e <quoted-query-string>         SQL from command line   -- 执行指定的 SQL
-f <filename>                   SQL from files   --执行 SQL 脚本
-H,--help                       Print help information -- 打印帮助信息
   --hiveconf <property=value>   Use value for given property   --自定义配置
   --hivevar <key=value>         Variable subsitution to apply to hive --自定义
变量
                                 commands. e.g. --hivevar A=B
-i <filename>                   Initialization SQL file --在进入交互模式之前运行
初始化脚本
-S,--silent                     Silent mode in interactive shell   --静默模式
-v,--verbose                     Verbose mode (echo executed SQL to the console) --详细模式

交互式命令行
直接使用 Hive 命令,不加任何参数,即可进入交互式命令行
执行SQL命令
在不进入交互式命令行的情况下,可以使用 hive -e 执行 SQL 命令

hive -e 'select * from emp';

可能会报错,因为hive数据库里没有emp表

执行SQL脚本
用于执行的 sql 脚本可以在本地文件系统,也可以在 HDFS 上

# 本地文件系统
hive -f /usr/file/simple.sql;
# HDFS文件系统
hive -f hdfs://node01:8020/tmp/simple.sql;

5、Hive简单使用

连接Hive

hive

数据库操作

create database test;--创建数据库
show databases;--列出所有数据库
use test;--切换数据库

在这里插入图片描述

表操作

-- 建表
create table t_student(id int,name varchar(255));
-- 插入一条数据
insert into table t_student values(1,"potter");
-- 查询表数据
select * from t_student;

在执行插入数据的时候,发现插入速度极慢,sql执行时间很长,花费了26秒,并且显示了

MapReduce程序的进度

在这里插入图片描述

查看YARN及HDFS

输入网址http://自己的IP:8088

在这里插入图片描述

6、Hive总结

Hive SQL语法和标准SQL很类似,使得学习成本降低不少
Hive底层是通过MapReduce执行的数据插入动作,所以速度慢
如果大数据集这么一条一条插入的话是非常不现实的,成本极高
Hive应该具有自己特有的数据插入表方式,结构化文件映射成为表

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

蓝柑

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

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

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

打赏作者

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

抵扣说明:

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

余额充值