大数据应用——hive实验

news2024/12/25 12:29:37

 


 

任务一:完成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上,例如:

  1.  将数据导入到Hive表中

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

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

  1.  在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, ...)];

  1. 创建一个数据库,数据库在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';

  1.  查询数据库
  1. 显示数据库

  1. 过滤显示查询的数据库

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

  1. 显示数据库详细信息,extended

  1. 切换当前数据库

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

hive (default)> alter database student_db set dbpro

perties('createtime'='20230622');

  1. 在hive中查看修改结果

  1. 删除数据库
  1. 删除空数据库

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

据库是否存在

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

  1. 创建表(管理表)

(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]

  1. 案例实操
  1. 原始数据

  1. 普通创建表

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

中)

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

  1. 查询表的类型

  1. 外部表
  1. 理论

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

  1. 案例实操
  1. 原始数据

  1. 上传数据到HDFS

  1. 建表语句,创建外部表

创建部门表

创建员工表

  1. 查看创建的表

  1. 查看表格式化数据

  1. 删除外部表

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

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

hive (default)> desc formatted student2;

  1. 修改内部表student2为外部表

  1. 查询表的类型

  1. 修改外部表student2为内部表

  1. 查询表的类型

  1. 修改表

重命名表

  1. 语法

ALTER TABLE table_name RENAME TO new_table_na

me

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

  1. 添加列

  1. 查询表结构

  1. 更新列

  1. 查询表结构

  1. 替换列

  1. 查询表结构

  1. 删除表

3.2 DML操作

1.  数据导入

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

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

  1. 创建一张表

  1. 加载本地文件到hive

  1. 加载HDFS文件到hive中

上传文件到HDFS

加载HDFS上数据

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

上传文件到HDFS

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

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

A. 创建一张表

  1. 基本插入数据

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

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

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

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

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

  1. 查询数据

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

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

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

ve/datas/export/student1'

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

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

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

T2'

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

  1. Hadoop命令导出到本地

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

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

  1. Hive Shell 命令导出

  1. Export导出到HDFS上

  1. 清除表中数据

出现问题:hive进行插入操作时报错:NO Route To HostException:No Route to host

问题原因:由于Hive插入操作需要在YARN上提交MapReduce任务时无法访问YARN ResourceManager引起的。

解决方案:关闭防火墙,开启Hadoop集群

在进行Hive实验的过程中,得出如下结论:

熟悉Hive架构:在进行Hive实验之前,先要了解Hive的架构和工作原理,比如表的存储格式、元数据管理、查询优化等,这样可以更好地理解实验内容。

注意配置参数设置:在进行Hive实验时,需要根据实时的需求设置相关的配置参数,例如HDFS存储路径、JVM内存大小、任务队列等等,这些设置直接影响到实验的性能和稳定性。

数据源准备:在进行Hive实验前,需要对数据源进行准备和清理,以保证实验的有效性和正确性,常见的做法包括数据清洗、数据转换、数据格式设置等。

SQL语句调优:在进行Hive实验的时候,需要进行SQL语句的优化,以提高查询性能和效率。常见的调优手段包括剪枝优化、索引优化、加速器优化等。

实验结果分析:在进行Hive实验之后,需要对实验结果进行分析和总结,主要包括查询性能、资源占用、任务执行时间等指标,以便对实验过程进行改进。

总之,进行Hive实验需要具备扎实的Hadoop基础和SQL语言基础,并且需要有良好的数据分析能力和实验操作技巧。只有不断地积累经验和思考,才能够在Hive实验中取得更好的表现。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/682998.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

年轻人存款难吗?探讨现实挑战与如何应对

年轻人存款难吗?探讨现实挑战与如何应对 近日,一项调查显示“大概五分之一的年轻人存款在一万元以内。10万元存款是一个“坎”,存款超过10万就会超过53.7%的人。”这个数据引发了关于“年轻人”和“存款”的广泛关注和讨论。作为社会的未来&…

使用 Maya、ZBrush 和 XGen 创建极其逼真的美女肖像

今天云渲染小编给大家带来的是CG艺术家Hadi Karimi 的朋友 Clara 肖像模型背后的工作流程,展示了头发是如何使用 XGen 完成的,并解释了为什么历史人物很难进行逼真的渲染。 介绍 大家伙,我是 Hadi Karimi,是一名来自伊朗的自由 C…

.net点选验证码实现思路分享

哈哈好久没冒泡了,最进看见点选验证码有点意思,所以想自己写一个。 先上效果图 如果你被这个效果吸引了就请继续看下去。 贴代码前先说点思路: 1.要有一个汉字库,并按字形分类。(我在数据库里是安部首分类的) 2.获…

力扣题库刷题笔记13--罗马数字转整数

1、题目如下: 2、个人Python代码实现: 虽然前面刚刷了整数转罗马数字,而且本题难度为简单,实际上做出来还是花了很多时间,不亚于前面整数转罗马数字。 以上的思路,主要是声明一个列表temp,然后遍…

【MYSQL】—— MySQL 在 Centos 7环境安装

本期,我将给大家介绍的是如何在【Linux】上安装相应的 mysql。 目录 1. 卸载不要的环境 2. 检查系统安装包 3. 获取mysql官⽅yum源 4. 安装mysql yum 源,对⽐前后yum源 5. 看看能不能正常⼯作 6. 安装mysql服务 7. 启动服务 8. 查看启动服务 9.…

从“特种兵旅游”到“citywalk”,渡远户外还能热下去么?

过去风靡一时的“户外露营热”,有些企业赶上了,有些没有。去年坐上“末班车”的渡远户外也想尝些甜头。 套上“户外”概念的渡远户外,或许正在被质疑“血统”并不“纯正”,主营房车游艇配套产品和水上休闲运动产品,说…

【新星计划Linux】——学习工具VMware介绍

作者简介:一名云计算网络运维人员、每天分享网络与运维的技术与干货。 座右铭:低头赶路,敬事如仪 个人主页:网络豆的主页​​​​​ 前言 本章将会讲解Linux学习工具VMware介绍。 一.VMware介绍 1.前期准备 官方网站&#…

【资料分享】全志科技T507-H评估板规格书(4核ARM Cortex-A53,主频1.416GHz)

1 评估板简介 创龙科技TLT507-EVM是一款基于全志科技T507-H处理器设计的4核ARM Cortex-A53国产工业评估板,主频高达1.416GHz,由核心板和评估底板组成。核心板CPU、ROM、RAM、电源、晶振等所有器件均采用国产工业级方案,国产化率100%。同时&a…

实战:win10安装docker并用docker-compose构建运行容器

文章目录 前言Docker DesktopHyper-V安装 Docker Desktop for Windows下载docker desktopDocker安装目录软连接运行Docker Desktop安装文件Docker Desktop验证 docker-compose构建运行管理容器创建文件目录及配置文件构建并启动容器查看启动的容器并验证 写在最后 前言 Docker…

数字IC前端学习笔记:仲裁轮询(四)

相关文章 数字IC前端学习笔记:LSFR(线性反馈移位寄存器) 数字IC前端学习笔记:跨时钟域信号同步 数字IC前端学习笔记:信号同步和边沿检测 数字IC前端学习笔记:锁存器Latch的综合 数字IC前端学习笔记&am…

网络安全|渗透测试入门学习,从零基础入门到精通—动态分析技术工具OllyDbg界面介绍

目录 动态分析技术调试器 什么是OllyDbg OllyDbg能干什么 OllyDbg窗口介绍 1、反汇编面板窗口 2、信息面板窗口 3、数据面板窗口 4、寄存器面板窗口 5、栈面板窗口 动态分析技术调试器 动态分析技术中最重要的工具是调试器,分为用户模式和内核模式两种类型…

【c++11】万能引用和完美转发

c11 万能引用完美转发 这一节是对上一篇右值引用的补充。 链接: 右值引用 万能引用 看如下代码 void Fun(int &x){ cout << "左值引用" << endl; } void Fun(const int &x){ cout << "const 左值引用" << endl; }void …

推荐四款常用在档案室温湿度记录的传感器记录仪

A.数字信号485信号输出的温湿度传感器/变送器 主要参数 液晶显示、485信号输出、9-24/VDC供电、壁挂式安装/吸顶式安装、走线/连接方式485总线、标准modbus RTU通讯协议 B。数字信号RJ45信号输出的温湿度传感器/变送器 ​主要参数 液晶显示、RJ45信号输出、9-24/VDC供电/标…

Zabbix Timeout 设置不当导致的问题

哈喽大家好&#xff0c;我是咸鱼 今天跟大家分享一个关于 zabbix Timeout 值设置不当导致的问题&#xff0c;这个问题不知道大家有没有碰到过 问题 事情经过是这样的&#xff1a; 把某一台 zabbix agent 的模板由原来的 Template OS Windows by Zabbix agent 换成了 Templa…

第一章:项目整体介绍【基于Servlet+JSP的图书管理系统】

一、项目介绍 1.项目说明 本项目是一个完全从0带领大家实现的一个非常基础的WEB项目&#xff0c;非常适合零基础和在校的大学生来动手实现。既能提升技术熟练度了解软件开发的具体过程。同时也能帮助大家搞定毕业设计的需求。之前在B站也分享了一个图书管理系统的视频。但是实…

超简单 display:flex教学

display 弹性盒子解释 Flex是Flexible Box的缩写&#xff0c;意为"弹性布局”&#xff0c;用来为盒状模型提供最大的灵活性。 它的作用&#xff1a; 它能够更加高效方便的控制元素的对齐、排列。 可以自动计算布局内元素的尺寸&#xff0c;无论这个元素的尺寸是固定的还是…

如何用文字生成图片?试试这几个方法吧

在日常生活中&#xff0c;想必很多小伙伴都喜欢绘画&#xff0c;但碍于自己平时需要上班、学习等等&#xff0c;没有时间去进行创作。不过&#xff0c;现在已经有很多ai绘画工具能帮助我们进行创作&#xff0c;而且操作简单&#xff0c;无需经验也可轻松上手&#xff0c;但你知…

三章:局域网架设+文件夹共享+防火墙配置

目录 一、路由器架设局域网 二、配置文件夹共享功能 为什么需要配置文件夹共享功能&#xff1f; 访问共享文件夹 配置取消用户名和密码认证 三、winServer2008防火墙配置 一、路由器架设局域网 1、进入路由器的管理界面 2、网络参数 -> LAN口设置 3、IP地址为路由器的ip…

大数据应用——HBASE实验

任务一&#xff1a;搭建HBase集群 1.1 搭建Zookeeper 1. 官网下载Linux环境的tar包 &#xff08;1&#xff09;官网地址&#xff1a;Apache ZooKeeper &#xff08;2&#xff09;下载Linux环境的tar包 2. 拷贝安装包到Linux系统下并解压到指定目录 [hadoophadoop101 softwar…

佩戴舒适的蓝牙耳机推荐,内行推荐这五大品牌蓝牙耳机

真无线蓝牙耳机怎么选购&#xff1f;对新手来说有点难度&#xff0c;看见很多网友都在讨论这些问题&#xff0c;蓝牙耳机什么品牌好&#xff1f;音质表现好的有哪些&#xff1f;佩戴舒适性好的又有哪些值得入手的&#xff1f;等等大量问题。我从网上整理五款佩戴舒适且音质表现…