数据基础存储7_第1页
数据基础存储7_第2页
数据基础存储7_第3页
数据基础存储7_第4页
数据基础存储7_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

任务2零售数据存储与分析—Hive实战内容导航01环境部署Hive软件部署与配置02基础操作数据库与数据表的常用操作03数据同步Sqoop软件安装与配置04实战分析Hive零售数据多维度分析环境部署01工单2.1概览核心信息工单编号2.1工单名称Hive软件部署建议学时1环境要求Hadoop集群虚拟机工单说明部署独立MariaDB存储Hive元数据在datanode1节点安装Hive部署并配置Hive服务知识目标了解Hive基础架构;掌握Hive部署过程关联:部署独立MariaDB存储Hive元数据能力目标能够在集群环境中部署Hive关联:在datanode1节点安装Hive素养目标培养创新意识和创新精神关联:部署并配置Hive服务部署前环境准备01020304NTP时间同步对3台虚拟机进行时间同步,以datanode1节点为例yuminstallntpdatentpdate卸载MariaDB卸载CentOS7自带MariaDB库,避免与MySQL冲突rpm-qa|grepmariadbrpm-e--nodeps<库文件名>确认系统版本查看Linux内核版本,确认使用CentOS7系列uname-r下载MySQL访问MySQL官网下载

MySQL8.0.25

二进制安装文件MySQL8.0.25安装MySQL数据库复制安装文件将MySQL二进制安装文件复制到master节点安装依赖yuminstallperl按序安装rpm库进入/opt目录,严格按依赖关系顺序安装rpm包启动并获取密码启动MySQL服务,从日志中提取临时密码配置MySQL数据库01登录MySQL使用临时密码登录mysql-uroot-p<临时密码>02修改密码设置root密码为newPass@123ALTERUSER'root'@'localhost'IDENTIFIEDBY'newPass@123';03查看数据库查看当前数据库列表showdatabases;04创建元数据库创建hive数据库,编码utf8createdatabasehivedefaultcharsetutf8;安装Hive软件01解压并重命名安装包tar-zxvfapache-hive-3.1.2-bin.tar.gzmvapache-hive-3.1.2-binhive03创建HDFS仓库路径hadoopfs-mkdir-p/user/hive/warehouse步骤二:创建核心配置文件进入

conf

目录,新建

hive-site.xml,核心配置项:配置项值元数据库连接URLMySQL中的

hive

数据库JDBC驱动类com.mysql.jdbc.Driver数据仓库路径HDFS注意:XML中

&

符号需使用

&

转义表示配置Hive环境配置Hive环境复制MySQL连接器将MySQL连接器jar复制到Hive的lib目录cpmysql-connector-java-8.0.25.jar/opt/hive/lib/配置环境变量修改/etc/profile文件,添加Hive路径exportHIVE_HOME=/opt/hiveexportPATH=$PATH:$HIVE_HOME/bin执行source/etc/profile使配置生效格式化元数据在MySQL中生成元数据表schematool-dbTypemysql-initSchema验证结果格式化后在MySQL的hive数据库中可看到大量元数据表启动Hive服务五步完成Hive服务启动01停止HDFS和YARN服务,修改core-site.xml添加root用户代理配置02重启Hadoop,启动hiveserver2后台进程start-dfs.sh&start-yarn.shhiveserver2&03执行jps查看RunJar进程确认hiveserver2已启动04启动beeline客户端连接Hivebeeline-ujdbc:hive2://localhost:10000-nroot05执行showdatabases验证显示default即部署成功Hive运行在Hadoop之上,启动前需先启动HDFS和YARN服务Hive简介与架构Hive是基于Hadoop的数据仓库工具,将结构化数据文件映射为数据库和表,提供HQL查询语言,转化为MapReduce程序执行优点SQL查询语言降低学习成本计算扩展能力超大数据集处理统一元数据管理集中式元数据服务自定义函数UDF/UDAF/UDTF缺点查询有延时不适用实时查询不支持更新不支持行的更新不支持插入行级插入操作不支持删除行级删除操作架构组成层级组件客户端Thrift、JDBC、ODBC驱动服务端HiveShellCLI、Web接口、HiveServer应用场景大规模离线数据分析日志分析业务报表数据仓库建模HiveCLI与数据类型命令行启动方式选项功能说明-e执行命令后立即退出-f执行SQL脚本文件!在CLI中执行shell命令基本数据类型TINYINTSMALLINTINTBIGINTBOOLEANFLOATDOUBLESTRINGTIMESTAMPBINARYSTRING类型理论存储上限

2GB,类似varchar集合数据类型STRUCT点运算符

.

访问·类比C语言结构体MAP键访问值·类比键值对集合ARRAY索引

[0]

开始·类比同类型有序集合隐式转换规则TINYINT→SMALLINT→INT→BIGINT→FLOAT→DOUBLESTRING可隐式转DOUBLEBOOLEAN不参与

隐式转换,反向需

CASTHive文件格式对比Hive默认分隔符规范:行

\n、列

^A(\001)、集合

^B(\002)、MAP^C(\003)三种文件格式对比TEXTFILE(默认)直接存储HDFS,不额外处理支持Gzip/Bzip2简单场景磁盘开销大SEQUENCEFILEHadoop二进制格式,可分隔NONE/RECORD/BLOCK大数据块高效压缩BLOCK(推荐)RCFILE行列混合:按行分块、块内列存压缩比高,查询响应快一次写入多次读取优势明显一次写入多次读取使用

ROWFORMATDELIMITED

子句可自定义分隔符,支持

CSV

TSV

格式Hive表(上)—内部表与外部表内部表管理数据本身,外部表仅管理数据的位置内部表数据存储:数据仓库默认路径删除行为:元数据+数据一起删除创建方式:默认创建适用场景:临时数据外部表数据存储:仅记录位置,不移动数据删除行为:只删除元数据,数据保留创建方式:需EXTERNAL关键字+LOCATION指定路径适用场景:共享数据、多工具共用(更安全)数据库管理命令CREATEDATABASEyunsheng;DESCRIBEDATABASEyunsheng;USEyunsheng;SHOWTABLES;DROPDATABASEyunshengCASCADE;Hive自动增加

last_modified_by

last_modified_time

两个属性;建表时可指定存储路径,使用

ALTERTABLE

可增加列VSHive表(下)—分区表与优化分区表:按列值将数据划分为不同目录,查询时只扫描相关分区,避免全表扫描PARTITIONEDBY(列名

数据类型)分区原则避免过多分区不应创建过多分区和文件夹目录利用HDFS大文件每个分区下文件应足够大,以利用HDFS大文件存储优势分桶基于列值哈希将数据均匀分布到固定数量文件,进一步优化查询视图创建视图限制数据访问,对原始表过滤、聚合,结果作为虚拟表对外展示索引Hive支持有限索引功能,索引数据存储在单独表中,可加速特定字段查询基础操作02工单2.2概览项目内容工单编号2.2工单名称Hive数据库和数据表的常用操作建议学时1

学时所属任务零售数据存储与分析—Hive实战环境要求已部署Hive的Hadoop集群学习目标具体内容知识目标掌握Hive数据库和数据表的结构能力目标能够独立完成数据库、数据表的创建、查询、删除任务素养目标培养学生主动思考、自主学习的能力工单说明:使用HiveSQL命令,实现数据库的创建与删除操作、数据表的创建与删除操作创建与删除数据库创建数据库createdatabasetest;指定存储路径createdatabasetest1location'/user/root/hive';查看描述信息describedatabasetest;删除数据库dropdatabasetest1;创建数据表三种建表方式,从简单到复杂逐步演进普通表t1基础结构,快速创建usetest;createtablet1(c1int,c2int);分区表t2增加分区字段,优化查询createtablet2(c1int,c2int)partitionedby(c3int);分区表t3完整格式,自定义分隔符createtablet3(c1int,c2int,c3int)partitionedby(c3int)rowformatdelimitedfieldsterminatedby','linesterminatedby'\n';插入数据与查询t1表操作insertintot1values(1,2),(2,3);select*fromt1;t2/t3表操作insertintot2values(1,2,1),(2,3,1);insertintot3values(1,2,1),(2,3,1);select*fromt2;select*fromt3;查看HDFS存储路径describeformattedt2;

t3

各字段使用逗号分隔,与表t2格式不同删除表与工单小结删除数据表droptablet1;droptablet2;删除后数据库中仅保留表

t3本工单核心操作技能数据库操作创建(含指定位置)删除数据表操作创建(含分区表、自定义分隔符)数据操作数据插入数据查询维护操作表结构查看表删除工单小结:本工单讲解了Hive数据库和数据表的常用操作,包括数据库创建删除、数据表创建、数据插入、数据查询、数据表删除等操作。数据同步03工单2.3概览对数据同步软件Sqoop进行安装、配置与验证,为后续数据抽取操作提供支持2.3工单编号1学时建议学时零售数据存储与分析—Hive实战所属任务已部署Hive的Hadoop集群环境要求学习目标知识目标掌握Sqoop软件的安装与配置方法能力目标能够独立安装与配置Sqoop素养目标培养学生精益求精的大国工匠精神掌握Sqoop安装配置,培养精益求精的大国工匠精神Sqoop安装与配置解压安装包将Sqoop安装文件复制到/opt目录,解压并重命名tar-zxvfsqoop-1.4.7.bin__hadoop-2.6.0.tar.gzmvsqoop-1.4.7.bin__hadoop-2.6.0sqoop配置环境变量修改/etc/profile文件,添加Sqoop环境变量exportSQOOP_HOME=/opt/sqoopexportPATH=$PATH:$SQOOP_HOME/bin生效配置执行命令使配置立即生效source/etc/profile添加MySQL驱动将MySQL连接程序文件复制到Sqoop的lib目录验证安装执行版本验证,显示1.4.7即为安装成功sqoopversion

版本验证结果高亮提示依赖冲突解决与连接验证步骤1:解决common-lang库版本冲突直接使用Sqoop访问MySQL会因

common-lang库版本不兼容

报错cpcommon-lang-2.6.jar/opt/sqoop/lib/步骤2:验证MySQL连接执行sqooplist-databases命令连接MySQL,验证连通性sqooplist-databases\--connectjdbc:mysql://localhost:3306\--usernameroot\--passwordnewPass@123步骤3:建立专用账户并授权创建

sqoop

账户,授权

ods

数据库远程操作权限CREATEUSER'sqoop'@'%'IDENTIFIEDBY'newPass@123';GRANTALLPRIVILEGESONods.*TO'sqoop'@'%';FLUSHPRIVILEGES;远程访问配置配置监听接口并重启服务编辑

/etc/f,设置监听

systemctlrestartmysqld安装客户端在

datanode1

节点执行yuminstallmysql远程登录验证使用

sqoop

账户连接

ods

数据库mysql-usqoop-p-hmaster测试连接执行SQL验证连通性select1,2,3;Sqoop功能验证与工单小结工单小结:本工单完成了Sqoop的安装、配置与验证操作,为后续基于HDFS的数据导入导出奠定基础Sqoop功能验证流程01远程连接测试eval命令使用localhost即可,但数据导入导出时必须改用master,否则各节点会尝试连接自己的MySQL导致报错02数据导入HDFSimport命令连接master,指定--target-dir与--delete-target-dir03验证导入结果hadoopfs-cat查看part-m文件确认数据正确写入Sqoop数据同步工具概述核心特点高效性并行传输,利用Hadoop分布式计算能力容错性自动处理传输错误,确保数据完整性自动类型转换根据目标存储类型自动转换数据格式增量更新支持将新记录追加到已有导出数据中主要组成客户端负责命令行交互与任务提交数据存储组件支持HDFS/HBase/Hive多种存储数据存储空间作为数据传输的源或目标Sqoop只负责数据传输,不涉及数据分析;只执行Map任务,不执行Reduce任务实战分析04工单2.4概览"工单说明:使用HiveSQL命令对存储在Hive中的零售数据进行不同维度的分析"1学时建议学时工单编号2.4工单名称Hive零售数据分析所属任务零售数据存储与分析—Hive实战环境要求已配置好Hive的Hadoop集群工单说明:使用HiveSQL命令对存储在Hive中的零售数据进行不同维度的分析学习目标具体内容知识目标掌握HiveSQL使用方法能力目标能够熟练使用HiveSQL进行数据分析素养目标培养学生的创新意识和创新精神创建ods库与product表三步完成数据准备01探查数据文件hadoopfs-head/path/to/datafilehadoopfs-tail/path/to/datafile02创建数据库与表结构创建

ods

数据库:createdatabaseods;创建

product

表:含product_code、brand、product_title、full_price_in_local_currency等字段,rowformatdelimited,逗号分隔03验证表结构describeduct;导入数据与创建结果表表名存储内容字段定义dwd.result1数据行数row_numbigintdwd.result2不同品牌brandstringdwd.result3品牌及产品数量brandstring,product_numbigintdwd.result4产品标题及价格product_titlestring,pricedouble约定:rowformat

为逗号分隔、换行符结尾HDFS数据导入loaddatainpath命令导入duct并查看前3行beeline连接root账户通过beeline连接HiveServer2约定rowformat逗号分隔+换行符结尾数据查询分析(上)数据探查:总量统计与品牌去重任务一:查询数据总行数统计原始数据规模selectcount(*)fromduct;insertintodwd.result1selectcount(*)fromduct;结果保存到

dwd.result1任务二:查询所有不同Brand提取品牌维度去重值insertintodwd.result2selectdistinctbrandfromduct;结果保存到

dwd.result2数据查询分析(下)任务一:品牌产品数量统计聚合统计每个Brand产品种类数结果保存至dwd.result3SQL代码insertintodwd.result3selectbrand,count(distinctproduct_code)fromductgroupbybrand;任务二:价格TOP3产品查询查询Full_price_in_local_currency最高的3个产品结果保存至dwd.result4SQL代码insertintodwd.result4selectproduct_title,full_price_in_local_currencyfromductorderbyfull_price_in_local_currencydesclimit3;排除NULL值与查看存储路径也可在beeline中使用

describe

命令查看,或在HDFS中直接访问数据文件步骤一:清空结果表发现

NULL

商品参与排序,需先清空

result4

表truncatetabledwd.result4;步骤二:排除NULL值重新查询Hive中使用

\N

填充缺失值,过滤后重新插入insertintodwd.result4selectproduct_title,full_price_in_local_curr

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论