大数据应用 您所在的位置:网站首页 hdfs元数据大小 大数据应用

大数据应用

2023-06-26 23:59| 来源: 网络整理| 查看: 265

任务一:完成Hive内嵌模式部署

1.1 Hive部署

官网下载Hive安装包

(1)官网地址:Apache Hive

(2)文档查看地址:

https://cwili.apache.org/confluence/display/Hive/GettingStarted

(2)下载地址:Index of /dist/hive

(3)github地址:GitHub - apache/hive: Apache Hive

1.2 安装Hive

1.  上传安装包到Linux系统下并解压到指定目录

[hadoop@hadoop101 software]$ tar -zxvf /opt/software/apache-hi

ve-3.1.2- bin.tar.gz -C /opt/module/

2.   修改/etc/profile.d/my_env.sh,添加环境变量

3.  解决日志Jar包冲突

[atguigu@hadoop101 hive]$ mv lib/log4j-slf4j-impl-2.10.0.jar lib

/log4j-slf4j-impl-2.10.0.bak

4.  初始化元数据库

[hadoop@hadoop101 hive]$ bin/schematool -dbType derby -initS

Schema

5.  启动Hive

(1)启动hadoop集群

(2)启动Hive

[hadoop@hadoop101 hive]$bin/hive

1.3 Hive属性配置

1.  修改/opt/module/hive/conf/hive-log4j2.properties.tem

plate 文件名称为 hive-log4j2.properties

2.  在 hive-log4j2.properties 文件中修改 log 存放位置

hive.log.dir=/opt/module/hive/logs

            hive-site.xml中添加打印当前库和表头的配置

任务二:能够将Hive数据存储在HDFS上

1.  建立Hive表

首先,创建一个Hive表,用于存储数据,示例表结构为:

上述语句创建了一个名为employee的表,表中包含empid、name、salary和gender四个字段,字段类型分别为整型、字符串类型、浮点型和字符串类型。表中的数据将以逗号分隔的文本文件的形式进行存储,文件的存储格式为TEXTFILE。

2.  将数据存储到HDFS上

接下来将数据存储到HDFS上。在本地文件系统中创建文本文件employee.txt,该文件包含了一些雇员信息,例如:

将该文本文件上传到HDFS上,例如:

 将数据导入到Hive表中

将数据导入到Hive表中,例如:

该语句将HDFS上的employee.txt文件中的数据加载到Hive表employee中。

 在HDFS上操作数据

当数据存储在Hive表中后,我们可以通过Hive提供的SQL语句来查询和操作数据。同时,我们也可以通过HDFS命令来处理Hive表所存储的数据。

例如,我们可以使用以下命令查看HDFS上employee.txt文件的内容:

也可以使用以下命令将HDFS上的employee.txt文件导出到本地文件系统中:

任务三:进入Hive Shell,自行设计Hive表,完成常见的DDL操作和DML操作

3.1 DDL操作

   1.  创建数据库

CREATE DATABASE [IF NOT EXISTS] database_name

[COMMENT database_comment]

[LOCATION hdfs_path]

[WITH DBPROPERTIES (property_name=property_value, ...)];

创建一个数据库,数据库在HDFS上的默认存储路

径是/user/hive/warehouse/student_db.db。

(2)避免要创建的数据库已经存在错误,增加if not exists判断。

hive (default)> create database if not exists student_db;

(3)创建一个数据库,指定数据库在HDFS上存放的位置

hive (default)> create database student_db location '/student_db';

 查询数据库 显示数据库

过滤显示查询的数据库

查看数据库详情—显示数据库信息

显示数据库详细信息,extended

切换当前数据库

 修改数据库 用户可以使用 ALTER DATABASE 命令为某个数据库的 DBPROPERTIES 设置键-值对属性值,来描述这个数据库的属性信息。

hive (default)> alter database student_db set dbpro

perties('createtime'='20230622');

在hive中查看修改结果

删除数据库 删除空数据库

如果删除的数据库不存在,最好采用if exists判断数

据库是否存在

如果数据库不为空,可以采用cascade命令,强制删

创建表(管理表)

(1)建表语法

CREATE [EXTERNAL] TABLE [IF NOT EXISTS] table_name

[(col_name data_type [COMMENT col_comment], ...)]

[COMMENT table_comment]

[PARTITIONED BY (col_name data_type [COMMENT col_comment], ...)]

[CLUSTERED BY (col_name, col_name, ...)

[SORTED BY (col_name [ASC|DESC], ...)] INTO num_buckets BUCKETS]

[ROW FORMAT row_format]

[STORED AS file_format]

[LOCATION hdfs_path]

[TBLPROPERTIES (property_name=property_value, ...)]

[AS select_statement]

案例实操 原始数据

普通创建表

根据查询结果创建表(查询结果会添加到创建的表

中)

根据已存在的表结构创建表

查询表的类型

外部表 理论

因为表是外部表,所以 Hive 并非认为其完全拥有这份数据。删除该表并不会删除掉这份数据,不过描述表的元数据信息会被删除掉。

案例实操 原始数据

上传数据到HDFS

建表语句,创建外部表

创建部门表

创建员工表

查看创建的表

查看表格式化数据

删除外部表

外部表删除后,hdfs 中的数据还在,但是 metadata 中 dept 的元数据已被删除

管理表与外部表的互相转换 查询表的类型

hive (default)> desc formatted student2;

修改内部表student2为外部表

查询表的类型

修改外部表student2为内部表

查询表的类型

修改表

重命名表

语法

ALTER TABLE table_name RENAME TO new_table_na

me

增加、修改、替换列信息 查询表结构

添加列

查询表结构

更新列

查询表结构

替换列

查询表结构

删除表

3.2 DML操作

1.  数据导入

(1)向表中装载数据(Load)

hive> load data [local] inpath '数据的 path' [overwrite] into table student [partition (partcol1=val1,…)];

创建一张表

加载本地文件到hive

加载HDFS文件到hive中

上传文件到HDFS

加载HDFS上数据

加载数据覆盖表中已有数据

上传文件到HDFS

加载数据覆盖表中已有数据

(2)通过查询语句向表中插入数据(Insert)

A. 创建一张表

基本插入数据

基本模式插入(根据单张表查询结果)

(3)查询语句中创建表并加载数据(As Select)

根据查询结果创建表(查询结果会添加到新创建的表中)

(4)创建表时通过Location指定加载数据路径

A. 创建表,并指定在HDFS上的位置

查询数据

 数据导出 Insert导出 将查询的结果导出到本地

将查询的结果格式化导出到本地

hive(default)>insert overwrite local directory '/opt/module/hi

ve/datas/export/student1'

ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' select * from student;

将查询的数据导出到HDFS上(没有local)

hive(default)>insert overwrite directory '/student_db/studen

T2'

ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' select * from student;

Hadoop命令导出到本地

hive (default)> dfs -get /student_db/student/student.txt /

/opt/module/datas/export/student3.txt;

Hive Shell 命令导出

Export导出到HDFS上

清除表中数据



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有