首页 教程 服务器/数据库 【Hive数据仓库】Hive部署、Hive数据库操作(增删改查)、表操作(内部表、外部表、分区表、桶表)

【Hive数据仓库】Hive部署、Hive数据库操作(增删改查)、表操作(内部表、外部表、分区表、桶表)

目录

一、本地模式

1、安装MySQL

2、登录MySQL

3、修改密码

4、安装Hive

5、配置Hive系统环境变量

6、初始化Derby数据库

7、连接Hive用于测试

8、测试Hive

9、修改Hive配置文件

10、上传MySQL驱动包

11、初始化MySQL

12、连接Hive用于启动服务

二、远程模式

1、启动MetaStore服务

2、启动HiveServer2服务

3、在虚拟机hadoop2安装Hive

4、修改Hive配置文件

5、配置Hive系统环境变量

6、连接MetaStore服务

7、连接HiveServer2服务

三、Hive数据库操作

1、在Hive中创建数据库hive_db

2、查看数据库hive_db的属性信息

3、修改数据库hive_db的属性信息

4、删除数据库

四、表操作

1、创建表

(1)创建内部表

(2)创建外部表

(3)创建分区表

(4)创建桶表

2、查看表

(1)查看当前数据库所有表

(2)查看表的详细结构信息

3、修改表

4、删除表

5、修改分区表的分区

(1)添加分区

(2)重命名分区

(3)删除分区


【往期文章】【Hadoop和Hbase集群配置】3台虚拟机、jdk+hadoop+hbase下载和安装、环境配置和集群测试_hbase集群优化配置-CSDN博客

在开始前,先启动下面的几个(括号里是命令)

zookeeper(zkServer.sh start)

YARN(start-yarn.sh)

HDFS(start-dfs.sh)

NameNode(hdfs --daemon start namenode)

DataNode(hdfs --daemon start datanode)

JournalNode(hdfs --daemon start journalnode)

启动后jps查看

【Hive数据仓库】Hive部署、Hive数据库操作(增删改查)、表操作(内部表、外部表、分区表、桶表)

一、本地模式

1、安装MySQL

(1)安装wget工具,使用yum -y install wget,如下所示:

【Hive数据仓库】Hive部署、Hive数据库操作(增删改查)、表操作(内部表、外部表、分区表、桶表)

(2)下载MySQL源文件

wget http://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm

【Hive数据仓库】Hive部署、Hive数据库操作(增删改查)、表操作(内部表、外部表、分区表、桶表)

(3)安装下载Mysql源文件

yum -y install mysql80-community-release-el7-1.noarch.rpm

【Hive数据仓库】Hive部署、Hive数据库操作(增删改查)、表操作(内部表、外部表、分区表、桶表)

(4)通过yum工具安装MySQL

yum install mysql-community-server -y --nogpgcheck

【Hive数据仓库】Hive部署、Hive数据库操作(增删改查)、表操作(内部表、外部表、分区表、桶表)

(5)启动MySQL服务,检查MySQL服务状态

systemctl start mysqld

sudo systemctl status mysqld

【Hive数据仓库】Hive部署、Hive数据库操作(增删改查)、表操作(内部表、外部表、分区表、桶表)

检查MySQL进程是否正在运行,其中27308是MySQL进程的PID

ps -ef | grep mysqld

【Hive数据仓库】Hive部署、Hive数据库操作(增删改查)、表操作(内部表、外部表、分区表、桶表)

(6)MySQL安装完成,默认为root用户提供初始密码

查看该初始密码的命令:

grep 'temporary password' /var/log/mysqld.log

可以看到我的初始密码为:

Bb_*nk#gk5xw【Hive数据仓库】Hive部署、Hive数据库操作(增删改查)、表操作(内部表、外部表、分区表、桶表)

2、登录MySQL

通过我的初始密码登录MySQL,mysql -uroot -pBb_*nk#gk5xw

【Hive数据仓库】Hive部署、Hive数据库操作(增删改查)、表操作(内部表、外部表、分区表、桶表)

3、修改密码

修改MySQL密码为Itcast@2024,并刷新配置,使修改密码操作生效

mysql> alter user 'root'@'localhost' identified by 'Itcast@2022';

mysql> FLUSH PRIVILEGES;

【Hive数据仓库】Hive部署、Hive数据库操作(增删改查)、表操作(内部表、外部表、分区表、桶表)

4、安装Hive

(1)下载Hive安装包apache-hive-1.2.2-bin.tar.gz,并在虚拟机的/export/software目录下执行rz命令上传Hive安装包

【Hive数据仓库】Hive部署、Hive数据库操作(增删改查)、表操作(内部表、外部表、分区表、桶表)

(2)ll命令查看安装包是否上传成功

【Hive数据仓库】Hive部署、Hive数据库操作(增删改查)、表操作(内部表、外部表、分区表、桶表)

(3)将Hive解压安装到目录/export/servers

Tar -zxvf /export/software/apache-hive-1.2.2-bin.tar.gz -C

/export/servers/  

【Hive数据仓库】Hive部署、Hive数据库操作(增删改查)、表操作(内部表、外部表、分区表、桶表)

(4)在虚拟机的/export/servers/目录下将Hive安装目录重命名为hive-1.2.2

mv /export/servers/apache-hive-1.2.2-bin/ /export/servers/hive-1.2.2

【Hive数据仓库】Hive部署、Hive数据库操作(增删改查)、表操作(内部表、外部表、分区表、桶表)

(5)同步jar包

将hive-1.2.2中的guava-14.0.1.jar替换成hadoop-2.7.6中的guava-11.0.2.jar(在各自的lib里看该版本的具体jar包名)

cd /export/servers/hadoop-2.7.6/share/hadoop/common/lib/   

cp guava-11.0.2.jar /export/servers/hive-1.2.2/lib/      

【Hive数据仓库】Hive部署、Hive数据库操作(增删改查)、表操作(内部表、外部表、分区表、桶表)

将hadoop的jia包复制到hive-1.2.2下的lib目录中,

cp guava-11.0.2.jar /export/servers/hive-1.2.2/lib/

【Hive数据仓库】Hive部署、Hive数据库操作(增删改查)、表操作(内部表、外部表、分区表、桶表)

【Hive数据仓库】Hive部署、Hive数据库操作(增删改查)、表操作(内部表、外部表、分区表、桶表)

删除Hive中lib目录下的jar包

rm -fr /export/servers/hive-1.2.2/lib/guava-14.0.1.jar

【Hive数据仓库】Hive部署、Hive数据库操作(增删改查)、表操作(内部表、外部表、分区表、桶表)

5、配置Hive系统环境变量

编辑系统环境变量文件profile,添加新内容,再source初始化profile

【Hive数据仓库】Hive部署、Hive数据库操作(增删改查)、表操作(内部表、外部表、分区表、桶表)

export HIVE_HOME=/export/servers/hive-1.2.2

export PATH=$PATH:$HIVE_HOME/bin

【Hive数据仓库】Hive部署、Hive数据库操作(增删改查)、表操作(内部表、外部表、分区表、桶表)

6、初始化Derby数据库

cd /export/servers/hive-1.2.2

bin/schematool -initSchema -dbType derby

【Hive数据仓库】Hive部署、Hive数据库操作(增删改查)、表操作(内部表、外部表、分区表、桶表)

7、连接Hive用于测试

【Hive数据仓库】Hive部署、Hive数据库操作(增删改查)、表操作(内部表、外部表、分区表、桶表)

8、测试Hive

执行show databases;查看数据库列表

【Hive数据仓库】Hive部署、Hive数据库操作(增删改查)、表操作(内部表、外部表、分区表、桶表)

9、修改Hive配置文件

(1)在Hive下目录conf里创建Hive配置文件hive-site.xml,在该文件中添加如下内容

【Hive数据仓库】Hive部署、Hive数据库操作(增删改查)、表操作(内部表、外部表、分区表、桶表)

<configuration>

    <property>

        <name>javax.jdo.option.ConnectionURL</name>

<value>jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=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>root</value>

    </property>

    <property>

        <name>javax.jdo.option.ConnectionPassword</name>

        <value>Itcast@2024</value>

    </property>

    <property>

        <name>hive.metastore.warehouse.dir</name>

        <value>/user/hive_local/warehouse/</value>

    </property>

</configuration>

【Hive数据仓库】Hive部署、Hive数据库操作(增删改查)、表操作(内部表、外部表、分区表、桶表)

(2)创建HDFS目录,用于存储Hive表和数据,例如创建/user/hive/warehouse

hdfs dfs -mkdir -p /user/hive/warehouse

授予Hive用户(例如,hadoop)和Hadoop组(例如,hadoop)写入和执行该目录的权限

hdfs dfs -chmod g+w /user/hive/warehouse

hdfs dfs -chown -R hadoop:hadoop /user/hive/warehouse

【Hive数据仓库】Hive部署、Hive数据库操作(增删改查)、表操作(内部表、外部表、分区表、桶表)

10、上传MySQL驱动包

在/export/servers/hive-1.2.2/lib下上传MySQL驱动包

mysql-connector-java-8.0.23.jar

【Hive数据仓库】Hive部署、Hive数据库操作(增删改查)、表操作(内部表、外部表、分区表、桶表)

11、初始化MySQL

schematool -initSchema -dbType mysql

【Hive数据仓库】Hive部署、Hive数据库操作(增删改查)、表操作(内部表、外部表、分区表、桶表)

检查MySQL服务的状态,sudo systemctl status mysqld

【Hive数据仓库】Hive部署、Hive数据库操作(增删改查)、表操作(内部表、外部表、分区表、桶表)

12、连接Hive用于启动服务

【Hive数据仓库】Hive部署、Hive数据库操作(增删改查)、表操作(内部表、外部表、分区表、桶表)

二、远程模式

1、启动MetaStore服务

cd /export/servers/hive-1.2.2/conf/

hive --service metastore   

【Hive数据仓库】Hive部署、Hive数据库操作(增删改查)、表操作(内部表、外部表、分区表、桶表)

2、启动HiveServer2服务

打开Hadoop1新窗口启动HiveServer2服务

hive --service hiveserver2

【Hive数据仓库】Hive部署、Hive数据库操作(增删改查)、表操作(内部表、外部表、分区表、桶表)

3、在虚拟机hadoop2安装Hive

(1)上传Hive安装包

进入/export/sofeware,使用rz命令上传Hive安装包,然后解压到目录/export/servers,ll查看。

tar -zxvf /export/software/apache-hive-1.2.2-bin.tar.gz -C /export/servers/  

【Hive数据仓库】Hive部署、Hive数据库操作(增删改查)、表操作(内部表、外部表、分区表、桶表)

【Hive数据仓库】Hive部署、Hive数据库操作(增删改查)、表操作(内部表、外部表、分区表、桶表)

【Hive数据仓库】Hive部署、Hive数据库操作(增删改查)、表操作(内部表、外部表、分区表、桶表)

(2)重命名Hive安装目录

进入hadoop2的/export/servers/目录,修改Hive目录名为hive-1.2.2

【Hive数据仓库】Hive部署、Hive数据库操作(增删改查)、表操作(内部表、外部表、分区表、桶表)

(3)同步jar包

将hive-1.2.2中的guava-14.0.1.jar替换成hadoop-2.7.6中的guava-11.0.2.jar(在各自的lib里看该版本的具体jar包名)

cd /export/servers/hadoop-2.7.6/share/hadoop/common/lib/   

cp guava-11.0.2.jar /export/servers/hive-1.2.2/lib/      

将hadoop的jia包复制到hive-1.2.2下的lib目录中,

cp guava-11.0.2.jar /export/servers/hive-1.2.2/lib/

删除Hive中lib目录下的jar包

rm -fr /export/servers/hive-1.2.2/lib/guava-14.0.1.jar

【Hive数据仓库】Hive部署、Hive数据库操作(增删改查)、表操作(内部表、外部表、分区表、桶表)

4、修改Hive配置文件

进入虚拟机Hadoop2的Hive安装目录下conf目录,创建Hive配置文件hive-site.xml,在该文件中添加如下内容。

vi hive-site.xml

【Hive数据仓库】Hive部署、Hive数据库操作(增删改查)、表操作(内部表、外部表、分区表、桶表)

<?xml version="1.0" encoding="UTF-8"?>

<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<configuration>

    <property>

        <name>hive.metastore.uris</name>

        <value>thrift://hadoop1:9083</value>

    </property>

</configuration>

【Hive数据仓库】Hive部署、Hive数据库操作(增删改查)、表操作(内部表、外部表、分区表、桶表)

5、配置Hive系统环境变量

进入/export/servers配置系统环境变量文件profile,添加如下新内容,然后初始化系统变量

vi /etc/profile

【Hive数据仓库】Hive部署、Hive数据库操作(增删改查)、表操作(内部表、外部表、分区表、桶表)

export HIVE_HOME=/export/servers/hive-1.2.2

export PATH=$PATH:$HIVE_HOME/bin

【Hive数据仓库】Hive部署、Hive数据库操作(增删改查)、表操作(内部表、外部表、分区表、桶表)

6、连接MetaStore服务

cd /export/servers/hive-1.2.2/lib

hive

【Hive数据仓库】Hive部署、Hive数据库操作(增删改查)、表操作(内部表、外部表、分区表、桶表)

7、连接HiveServer2服务

在虚拟机Hadoop2执行如下命令连接HiveServer2服务(在Hadoop1的第二个窗口启动过HiveServer2服务)

beeline -u jdbc:hive2://hadoop1:10000 -n root  

【Hive数据仓库】Hive部署、Hive数据库操作(增删改查)、表操作(内部表、外部表、分区表、桶表)

成功连接HiveServer2服务,并且进入到Beeline的命令行界面

三、Hive数据库操作

1、在Hive中创建数据库hive_db

定义数据库的描述信息为“This is my hive_db”,指定数据库hive_db在HDFS存储数据的目录为/hive/hive_db,定义数据库hive_db的两个属性author和date,这两个属性的属性值分别为zhangsan和2022-07-01。语句如下:

create database if not exists hive_db comment 'This is my hive_db' location '/hive/hive_db' with dbproperties ('author'= 'zhangsan','date'='2022-07-01');

【Hive数据仓库】Hive部署、Hive数据库操作(增删改查)、表操作(内部表、外部表、分区表、桶表)

2、查看数据库hive_db的属性信息

describe database extended hive_db;

【Hive数据仓库】Hive部署、Hive数据库操作(增删改查)、表操作(内部表、外部表、分区表、桶表)

3、修改数据库hive_db的属性信息

将属性author和date的属性值修改为lisi和2022-07-02

alter database hive_db set dbproperties ('author'='lisi','date'='2022-07-02');

【Hive数据仓库】Hive部署、Hive数据库操作(增删改查)、表操作(内部表、外部表、分区表、桶表)

4、删除数据库

drop database hive_db;

【Hive数据仓库】Hive部署、Hive数据库操作(增删改查)、表操作(内部表、外部表、分区表、桶表)

四、表操作

1、创建表

先创建数据库itcast

create database if not exists itcast;

【Hive数据仓库】Hive部署、Hive数据库操作(增删改查)、表操作(内部表、外部表、分区表、桶表)

(1)创建内部表

在数据库itcast中创建内部表managed_table,语句如下:

create table if not exists

itcast.managed_table(

dept_id INT comment "This is deptid",

staff_id INT comment "This is staffid",

staff_name STRING comment "This is staffname",

staff_age INT comment "This is staffage",

salary FLOAT comment "This is staff salary",

hobby ARRAY<STRING> comment "This is staff hobby",

base_info MAP<STRING, INT> comment "Record height and weight",

person_info STRUCT<marry:STRING,children:STRING>)

row format delimited

fields terminated by ','

collection items terminated by '_'

map keys terminated by ':'

lines terminated by '\n'

tblproperties("comment"="This is a managed table");

【Hive数据仓库】Hive部署、Hive数据库操作(增删改查)、表操作(内部表、外部表、分区表、桶表)

(2)创建外部表

在数据库itcast中创建外部表external_table,语句如下

create external table if not exists

itcast.external_table(

staff_id INT comment "This is staffid",

staff_name STRING comment "This is staffname",

salary FLOAT comment "This is staff salary"

)

row format delimited

fields terminated by ','

lines terminated by '\n'

location '/hive/external_table/';

【Hive数据仓库】Hive部署、Hive数据库操作(增删改查)、表操作(内部表、外部表、分区表、桶表)

(3)创建分区表

在数据库itcast中创建分区表partitioned_table,语句如下:

create table if not exists

itcast.partitioned_table(

staff_id INT comment "This is staffid",

staff_name STRING comment "This is staffname",

staff_gender STRING

)

partitioned by(

city STRING COMMENT "User live in city"

)

row format delimited

fields terminated by ','

lines terminated by '\n';

【Hive数据仓库】Hive部署、Hive数据库操作(增删改查)、表操作(内部表、外部表、分区表、桶表)

(4)创建桶表

在数据库 itcast 中创建桶表 clustered_table,语句如下:

create external table if not exists

itcast.clustered_table(

id STRING,

name STRING,

gender STRING,

age INT,

dept STRING

)

clustered by (dept) sorted by (age desc) into 3 buckets

row format delimited

fields terminated by ','

lines terminated by '\n'

location '/hive/clustered_table/';

【Hive数据仓库】Hive部署、Hive数据库操作(增删改查)、表操作(内部表、外部表、分区表、桶表)

2、查看表

(1)查看当前数据库所有表

use itcast;

show tables;

【Hive数据仓库】Hive部署、Hive数据库操作(增删改查)、表操作(内部表、外部表、分区表、桶表)

(2)查看表的详细结构信息

查看数据库itcast中表managed_table的详细结构信息。

desc formatted itcast.managed_table;

【Hive数据仓库】Hive部署、Hive数据库操作(增删改查)、表操作(内部表、外部表、分区表、桶表)

3、修改表

(1)将数据库itcast中表external_table重命名为external_table_new。

alter table itcast.external_table rename to external_table_new;

【Hive数据仓库】Hive部署、Hive数据库操作(增删改查)、表操作(内部表、外部表、分区表、桶表)

(2)将数据库itcast中表external_table_new的字段staff_name修改为staff_username,并且将该字段的数据类型修改为varchar(30)。

alter table itcast.external_table_new change staff_name staff_username varchar(30);

查看修改前后external_table_new表内容:

desc itcast.external_table_new;

【Hive数据仓库】Hive部署、Hive数据库操作(增删改查)、表操作(内部表、外部表、分区表、桶表)

(3)向数据库itcast中的表external_table_new添加字段staff_gender,指定该字段的数据类型为string。

alter table itcast.external_table_new add columns (staff_gender STRING);

【Hive数据仓库】Hive部署、Hive数据库操作(增删改查)、表操作(内部表、外部表、分区表、桶表)

4、删除表

删除数据库itcast中的表external_table_new,语句如下:

drop table itcast.external_table_new;

【Hive数据仓库】Hive部署、Hive数据库操作(增删改查)、表操作(内部表、外部表、分区表、桶表)

5、修改分区表的分区

(1)添加分区

为数据库itcast的分区表partitioned_table添加分区city=Nanjing。

alter table itcast.partitioned_table add partition(city="Nanjing");

查看分区表包含的分区:

show partitions itcast.partitioned_table;

【Hive数据仓库】Hive部署、Hive数据库操作(增删改查)、表操作(内部表、外部表、分区表、桶表)

(2)重命名分区

将分区表partitioned_table的分区city=Nanjing重命名为city=Chongqing。

alter table itcast.partitioned_table partition(city="Nanjing") rename to partition(city="Chongqing");

查看分区表包含的分区:

show partitions itcast.partitioned_table;

【Hive数据仓库】Hive部署、Hive数据库操作(增删改查)、表操作(内部表、外部表、分区表、桶表)

(3)删除分区

删除分区表partitioned_table的分区city=Chongqing:

alter table itcast.partitioned_table drop if exists partition(city="Chongqing");

查看分区表包含的分区:

show partitions itcast.partitioned_table;

【Hive数据仓库】Hive部署、Hive数据库操作(增删改查)、表操作(内部表、外部表、分区表、桶表)

评论(0)条

提示:请勿发布广告垃圾评论,否则封号处理!!

    猜你喜欢
    【MySQL】用户管理

    【MySQL】用户管理

     服务器/数据库  2个月前  2.18k

    我们推荐使用普通用户对数据的访问。而root作为管理员可以对普通用户对应的权限进行设置和管理。如给张三和李四这样的普通用户权限设定后。就只能操作给你权限的库了。

    Cursor Rules 让开发效率变成10倍速

    Cursor Rules 让开发效率变成10倍速

     服务器/数据库  2个月前  1.23k

    在AI与编程的交汇点上,awesome-cursorrules项目犹如一座灯塔,指引着开发者们驶向更高效、更智能的编程未来。无论你是经验丰富的老手,还是刚入行的新人,这个项目都能为你的编程之旅增添一抹亮色。这些规则文件就像是你私人定制的AI助手,能够根据你的项目需求和个人偏好,精确地调教AI的行为。突然间,你会发现AI不仅能理解Next.js的最佳实践,还能自动应用TypeScript的类型检查,甚至主动提供Tailwind CSS的类名建议。探索新的应用场景,推动AI辅助编程的边界。

    探索Django 5: 从零开始,打造你的第一个Web应用

    探索Django 5: 从零开始,打造你的第一个Web应用

     服务器/数据库  2个月前  1.16k

    Django 是一个开放源代码的 Web 应用程序框架,由 Python 写成。它遵循 MVT(Model-View-Template)的设计模式,旨在帮助开发者高效地构建复杂且功能丰富的 Web 应用程序。随着每个版本的升级,Django 不断演变,提供更多功能和改进,让开发变得更加便捷。《Django 5 Web应用开发实战》集Django架站基础、项目实践、开发经验于一体,是一本从零基础到精通Django Web企业级开发技术的实战指南《Django 5 Web应用开发实战》内容以。

    MySQL 的mysql_secure_installation安全脚本执行过程介绍

    MySQL 的mysql_secure_installation安全脚本执行过程介绍

     服务器/数据库  2个月前  1.09k

    mysql_secure_installation 是 MySQL 提供的一个安全脚本,用于提高数据库服务器的安全性

    【MySQL基础篇】概述及SQL指令:DDL及DML

    【MySQL基础篇】概述及SQL指令:DDL及DML

     服务器/数据库  2个月前  489

    数据库是长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合。数据库不仅仅是数据的简单堆积,而是遵循一定的规则和模式进行组织和管理的。数据库中的数据可以包括文本、数字、图像、音频等各种类型的信息。

    Redis中的哨兵(Sentinel)

    Redis中的哨兵(Sentinel)

     服务器/数据库  2个月前  315

    ​ 上篇文章我们讲述了Redis中的主从复制(Redis分布式系统中的主从复制-CSDN博客),本篇文章针对主从复制中的问题引出Redis中的哨兵,希望本篇文章会对你有所帮助。