大数据基础(HadoopHive)入门_第1页
大数据基础(HadoopHive)入门_第2页
大数据基础(HadoopHive)入门_第3页
大数据基础(HadoopHive)入门_第4页
大数据基础(HadoopHive)入门_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

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

文档简介

20XX/XX/XX大数据基础(Hadoop+Hive)入门汇报人:XXXCONTENTS目录01

大数据与Hadoop生态系统02

Hadoop核心架构详解03

Hadoop环境搭建04

Hive数据仓库基础CONTENTS目录05

Hive环境搭建06

Hive数据类型与基本操作07

Hive查询与分析08

综合案例演示01大数据与Hadoop生态系统大数据的概念与特点大数据的定义大数据是指无法在传统时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,具有海量、高速、多样、低价值密度和真实性等特征,需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力。数据量大(Volume)数据规模达到PB、EB甚至ZB级别,例如社交平台每日产生的用户行为数据、电商平台的交易记录等,远超传统数据处理能力。数据类型多(Variety)包括结构化数据(如数据库表)、半结构化数据(如JSON、XML)和非结构化数据(如文本、图像、音频、视频等),数据来源广泛且格式多样。处理速度快(Velocity)数据生成和处理具有实时性要求,需在短时间内完成数据的采集、处理和分析,如实时监控系统、金融高频交易数据处理等场景。价值密度低(Value)海量数据中蕴含的有价值信息占比较低,需要通过复杂的算法和分析工具从大量数据中挖掘出有价值的知识和insights,例如从海量用户日志中提取用户行为模式。Hadoop生态系统核心组件

01HDFS:分布式文件存储基石HDFS(HadoopDistributedFileSystem)是Hadoop的分布式存储核心,采用主从架构,由NameNode管理元数据、DataNode存储实际数据块(默认128MB),通过多副本机制(默认3副本)保证数据高可靠性,支持PB级数据存储。

02YARN:集群资源调度中心YARN(YetAnotherResourceNegotiator)负责集群资源(CPU、内存)的统一管理与任务调度,包含ResourceManager(全局资源管理)和NodeManager(节点资源管理),支持MapReduce、Spark等多种计算框架运行。

03MapReduce:分布式计算框架MapReduce是基于"分而治之"思想的分布式计算模型,将任务分解为Map(数据分片处理)和Reduce(结果聚合)两个阶段,自动处理任务分发、容错和结果合并,适用于离线批处理场景。

04Hive:数据仓库与SQL接口Hive是构建在Hadoop上的数据仓库工具,通过类SQL的HQL语言将查询转换为MapReduce/Spark任务,支持结构化数据的存储、查询和分析,降低大数据分析门槛,适用于离线数据分析场景。Hadoop与传统数据处理对比数据存储方式对比

Hadoop采用HDFS分布式文件系统,将数据分割成块(默认128MB)并在多节点存储多副本(默认3份),突破单节点存储容量限制;传统数据处理依赖本地文件系统或集中式存储,难以应对TB/PB级数据。计算模式对比

Hadoop基于MapReduce分布式计算模型,将任务拆分为Map和Reduce阶段并行处理;传统数据处理多为单机串行计算,处理大规模数据时效率低下,无法充分利用集群资源。扩展性与容错性对比

Hadoop支持横向扩展,可通过增加节点扩展存储和计算能力,且通过副本机制和任务重试实现高容错;传统数据处理扩展成本高,硬件故障易导致数据丢失或任务中断。适用场景对比

Hadoop适用于离线批处理、海量数据分析(如日志分析、用户行为统计),延迟较高(分钟/小时级);传统关系型数据库适用于实时联机事务处理(OLTP),支持低延迟(毫秒/秒级)的数据增删改查。02Hadoop核心架构详解HDFS分布式文件系统

HDFS的核心定义HDFS(HadoopDistributedFileSystem)是Hadoop核心组件之一,是运行在通用硬件上的分布式文件系统,专为海量数据存储设计,具有高容错性和高吞吐量特性,适用于大规模数据集的应用场合。

HDFS的架构模型HDFS采用主从(Master/Slave)架构,由NameNode(主节点,管理元数据)、DataNode(从节点,存储实际数据块)和SecondaryNameNode(辅助NameNode管理元数据)组成,实现数据的分布式存储与管理。

HDFS的关键机制包括副本机制(默认3副本,保证数据可靠性)、机架感知(优化数据存储和读取路径,减少跨机架传输)、数据块(默认128MB,将大文件分割成小块分布式存储,便于并行处理和容错)。

HDFS的读写流程写流程:客户端向NameNode申请存储路径和Block分配,然后按副本机制将数据写入DataNode,并反馈写入结果给NameNode;读流程:客户端向NameNode查询元数据获取Block所在的DataNode节点,直接从DataNode读取数据。MapReduce分布式计算框架

01MapReduce核心概念MapReduce是Hadoop的核心计算框架,基于"分而治之"思想,将大规模数据集的计算任务拆分为Map(映射)和Reduce(规约)两个阶段,通过分布式并行处理实现高效计算。

02Map阶段工作原理Map阶段负责将输入数据(HDFS文件块)解析为键值对(Key-Value),对数据进行过滤、转换等处理后,输出中间键值对。每个Map任务独立并行执行,处理不同的数据块。

03Reduce阶段工作原理Reduce阶段接收Map阶段输出的中间键值对,按Key进行分组、排序和聚合计算,生成最终结果并写入HDFS。Reduce任务并行执行,处理不同Key的数据集合。

04MapReduce执行流程流程包括输入分片、Map处理、Shuffle(数据分发与排序)、Reduce处理四个步骤。Shuffle阶段是性能瓶颈,涉及大量数据传输和磁盘IO操作,需重点优化。YARN的核心定位YARN(YetAnotherResourceNegotiator)是Hadoop2.x引入的资源管理框架,负责集群中CPU、内存、网络等资源的统一调度与任务管理,支持MapReduce、Spark、Tez等多种计算引擎。YARN的核心组件主要包含ResourceManager(全局资源调度)、NodeManager(节点资源管理)、ApplicationMaster(应用任务协调)和Container(资源分配单元)四大组件,实现资源与计算的解耦。YARN的工作流程1.客户端提交应用;2.ResourceManager分配资源并启动ApplicationMaster;3.ApplicationMaster向ResourceManager申请Container;4.NodeManager管理Container执行任务;5.任务完成后回收资源。YARN的核心优势支持多计算框架统一调度,提高集群资源利用率;采用主从架构,具备高可用性和扩展性;可动态调整资源分配,适应不同类型任务需求(如批处理、流处理)。YARN资源管理器03Hadoop环境搭建环境准备与前置依赖

硬件环境要求推荐配置:CPU双核及以上,内存8GB及以上,硬盘剩余空间60GB以上,千兆网络环境。生产环境建议至少3台服务器组成集群,分别承担主节点、数据节点等角色。

操作系统要求支持Linux操作系统,如CentOS7/8、Ubuntu16.04及以上版本。需关闭防火墙,配置静态IP和主机名映射,确保节点间网络互通。

软件依赖安装1.Java环境:安装JDK1.8及以上版本,配置JAVA_HOME环境变量。2.Hadoop集群:需提前搭建Hadoop环境(HDFS+YARN),确保HDFS和YARN服务正常运行。3.元数据库:推荐安装MySQL5.7+或8.0版本,用于存储Hive元数据。Hadoop安装与配置步骤

前期环境准备确保已安装JDK1.8及以上版本,配置环境变量JAVA_HOME;关闭防火墙,设置主机名与IP映射,配置SSH免密登录以实现节点间无密码通信。

Hadoop安装包部署下载Hadoop安装包(如hadoop-3.3.4.tar.gz),上传至服务器并解压;通过mv命令重命名目录,配置HADOOP_HOME环境变量并添加至PATH。

核心配置文件修改修改hadoop-env.sh设置JAVA_HOME;配置core-site.xml指定NameNode地址和临时目录;hdfs-site.xml设置副本数和数据存储路径;mapred-site.xml指定YARN为资源管理器;yarn-site.xml配置ResourceManager主机名。

HDFS初始化与启动执行hdfsnamenode-format初始化文件系统;通过start-dfs.sh启动HDFS集群,使用jps命令验证NameNode、DataNode等进程是否正常运行;通过hdfsdfsadmin-report检查集群健康状态。

YARN集群启动与验证执行start-yarn.sh启动YARN资源管理器;访问ResourceManagerWeb界面(默认端口8088)查看集群资源状态;运行Hadoop自带示例程序(如WordCount)验证集群功能是否正常。Hadoop集群启动与验证

集群启动前准备确保所有节点已配置SSH免密登录,JDK环境变量已正确设置,Hadoop配置文件(core-site.xml、hdfs-site.xml等)参数无误。

HDFS集群启动执行命令:start-dfs.sh,启动NameNode、DataNode和SecondaryNameNode进程。首次启动需先格式化NameNode:hdfsnamenode-format。

YARN集群启动执行命令:start-yarn.sh,启动ResourceManager和NodeManager进程,实现集群资源统一调度。

集群状态验证1.进程检查:各节点执行jps命令,确认所有服务进程正常运行;2.Web界面:访问http://namenode-ip:9870(HDFS)和http://resourcemanager-ip:8088(YARN)查看集群状态;3.命令验证:执行hdfsdfsadmin-report检查HDFS健康状态,yarnnode-list查看节点列表。04Hive数据仓库基础Hive的概念与核心价值Hive的定义Hive是基于Hadoop的数据仓库工具,由Facebook开源,后成为Apache顶级项目。它定义了类SQL的HiveQL语言,可将结构化数据文件映射为数据库表,并将查询转换为MapReduce、Tez或Spark等分布式计算任务执行,适用于海量数据的离线分析。Hive的核心定位Hive并非数据库,而是数据仓库工具,主要用于离线批处理场景。它依赖HDFS存储数据,利用分布式计算引擎处理数据,为用户提供SQL接口,降低大数据分析门槛,是Hadoop生态中数据仓库解决方案的核心组件。Hive的核心价值降低学习成本:支持类SQL的HQL,熟悉SQL的用户可快速上手,无需掌握MapReduce编程;处理海量数据:依托Hadoop的分布式存储与计算能力,可高效处理TB/PB级结构化数据;统一元数据管理:集中存储表结构、数据位置等元数据,支持与Pig、Spark等工具共享元数据。Hive架构组成与工作原理Hive核心架构组件

Hive架构主要由用户接口(CLI、JDBC/ODBC、WebUI)、元数据存储(Metastore)、驱动器(Driver)、执行引擎(MapReduce/Tez/Spark)及Hadoop集群(HDFS/YARN)组成,各组件协同完成数据查询与分析流程。用户接口层:多样化交互方式

提供命令行接口(CLI)、JDBC/ODBC接口及WebUI,满足不同场景需求。其中CLI为最常用工具,支持直接输入HQL命令;JDBC/ODBC便于与Java应用集成,WebUI则提供可视化操作界面。元数据存储:数据字典的核心

元数据(表结构、分区信息、存储路径等)默认存储于Derby数据库,生产环境通常采用MySQL。元数据服务(Metastore)负责管理这些信息,确保Hive能正确解析数据结构。驱动器:HQL的翻译与执行中枢

包含解析器(将HQL转为抽象语法树)、编译器(生成逻辑执行计划)、优化器(优化执行计划)和执行器(生成物理计划并提交任务),实现HQL到分布式计算任务的转换。Hive工作流程:从查询到结果

用户提交HQL后,驱动器借助元数据解析查询,生成优化后的执行计划,交由MapReduce等引擎在Hadoop集群执行,最终将结果返回给用户,整个过程透明化分布式计算细节。Hive与传统数据库的区别数据存储位置Hive数据存储在Hadoop分布式文件系统(HDFS)上,利用分布式集群存储海量数据;传统数据库则将数据存储在本地文件系统或专用存储设备中。计算引擎Hive默认使用MapReduce作为计算引擎,也可配置为Tez或Spark,适合大规模数据的离线批处理;传统数据库使用自身优化的执行引擎,适用于单机或小集群的在线事务处理。查询延迟Hive查询延迟较高,通常为分钟级甚至小时级,适合离线数据分析;传统数据库查询延迟低,一般为毫秒至秒级,满足实时查询需求。数据更新支持Hive主要支持数据追加写入,不支持行级别的插入、更新和删除操作;传统数据库支持完整的CRUD(创建、读取、更新、删除)操作,满足事务性需求。索引机制Hive默认不创建索引,需手动创建位图索引等特殊索引类型;传统数据库支持B树、哈希等多种索引,可显著提升查询效率。适用场景Hive适用于大数据集的离线批处理分析,如日志分析、数据仓库统计;传统数据库适用于在线业务系统,如电商交易、金融转账等实时数据处理场景。05Hive环境搭建MySQL元数据库配置

01元数据库准备登录MySQL数据库,执行CREATEDATABASEhiveCHARACTERSETlatin1;创建Hive元数据库,用于存储表结构、分区信息等元数据。

02用户授权通过CREATEUSER'hive'@'%'IDENTIFIEDBY'password';及GRANTALLPRIVILEGESONhive.*TO'hive'@'%';命令,为Hive创建专用数据库用户并授权。

03Hive配置文件修改编辑hive-site.xml,配置javax.jdo.option.ConnectionURL(如jdbc:mysql://localhost:3306/hive?useSSL=false)、ConnectionDriverName(com.mysql.jdbc.Driver)等MySQL连接参数。

04驱动包部署将mysql-connector-java-x.x.xx.jar驱动包复制到Hive安装目录的lib文件夹下,确保Hive能与MySQL正常通信。

05元数据库初始化执行schematool-initSchema-dbTypemysql命令,初始化Hive元数据库表结构,完成后即可启动Hive服务。Hive安装与环境变量配置01Hive安装包下载与解压从ApacheHive官网下载指定版本安装包(如apache-hive-3.1.3-bin.tar.gz),通过tar命令解压至指定目录,例如:tar-zxvfapache-hive-3.1.3-bin.tar.gz-C/opt/servers/。02环境变量配置编辑/etc/profile文件,添加HIVE_HOME环境变量,如:exportHIVE_HOME=/opt/servers/hive-3.1.3,同时将$HIVE_HOME/bin添加至PATH变量,执行source/etc/profile使配置生效。03Hive配置文件修改进入Hive安装目录的conf文件夹,复制模板文件生成hive-env.sh和hive-site.xml,在hive-env.sh中配置HADOOP_HOME路径,在hive-site.xml中配置元数据库连接信息等关键参数。04MySQL驱动包添加将MySQLJDBC驱动(如mysql-connector-java-5.1.46.jar)复制到Hive的lib目录下,确保Hive能够正常连接MySQL元数据库。Hive服务启动与验证启动前环境检查确保Hadoop集群(HDFS、YARN)已正常启动,可通过jps命令查看NameNode、DataNode等进程;MySQL服务处于运行状态,使用systemctlstatusmysqld确认。Hive元数据服务启动执行命令:nohuphive--servicemetastore>>metastore.log2>&1&启动元数据服务,后台运行并将日志输出至metastore.log文件,支持多用户并发访问。HiveServer2服务启动执行命令:nohuphive--servicehiveserver2>>hiveserver2.log2>&1&启动HiveServer2,通过Thrift协议提供JDBC/ODBC接口,默认端口10000,用于客户端远程连接。客户端连接与验证使用Beeline客户端连接:beeline-ujdbc:hive2://localhost:10000,输入SQL命令如"SHOWDATABASES;",若返回默认数据库列表则启动成功;也可通过HiveCLI直接输入hive命令进入交互模式。元数据验证登录MySQL,查询Hive元数据库(如hive)中的DBS表和TBLS表,确认元数据存储正常,例如执行"SELECT*FROMDBS;"可查看Hive中的数据库信息。06Hive数据类型与基本操作Hive数据类型详解

基本数据类型Hive支持多种基本数据类型,包括整型(TINYINT、SMALLINT、INT、BIGINT)、浮点型(FLOAT、DOUBLE、DECIMAL)、字符型(STRING、VARCHAR、CHAR)、日期时间型(DATE、TIMESTAMP)、布尔型(BOOLEAN)和二进制型(BINARY)。例如,INT对应32位有符号整数,STRING可存储变长字符串。

复合数据类型Hive提供三种复合数据类型:ARRAY(数组,如array<STRING>存储多个同类型元素,通过下标访问)、MAP(映射,如map<STRING,INT>存储键值对,通过键访问值)、STRUCT(结构体,如struct<name:STRING,age:INT>存储不同类型字段,通过点符号访问)。

数据类型对比与使用场景与MySQL相比,Hive的STRING类型无长度限制,适合存储非结构化文本;复合类型适合处理嵌套数据,如用户标签(ARRAY)、商品属性(MAP)。例如,电商日志中可使用STRUCT存储用户基本信息(id:INT,name:STRING,phone:STRING)。数据库与表的DDL操作

数据库基本操作创建数据库:使用CREATEDATABASE[IFNOTEXISTS]database_name;语法,例如CREATEDATABASEIFNOTEXISTStest_db;。删除数据库:使用DROPDATABASE[IFEXISTS]database_name;语法。切换数据库:使用USEdatabase_name;命令。查看数据库列表:使用SHOWDATABASES;命令。内部表与外部表创建内部表(托管表):CREATETABLE[IFNOTEXISTS]table_name(col_namedata_type,...);数据由Hive管理,删除表时数据一同删除。外部表:CREATEEXTERNALTABLE[IFNOTEXISTS]table_name(col_namedata_type,...)LOCATION'hdfs_path';数据存储在指定HDFS路径,删除表时数据不删除。表结构定义与修改定义表结构需指定列名、数据类型(如INT、STRING、DOUBLE)及分隔符(如ROWFORMATDELIMITEDFIELDSTERMINATEDBY',')。修改表:ALTERTABLEtable_nameRENAMETOnew_name;添加列:ALTERTABLEtable_nameADDCOLUMNS(new_coldata_type);修改列:ALTERTABLEtable_nameCHANGECOLUMNold_colnew_colnew_data_type;分区表与分桶表创建分区表:按指定列分区存储,语法为CREATETABLEtable_name(...)PARTITIONEDBY(partition_coldata_type);可提高查询效率。分桶表:基于列的哈希值将数据分桶,语法为CREATETABLEtable_name(...)CLUSTEREDBY(bucket_col)INTOnum_bucketsBUCKETS;适用于抽样查询和高效JOIN。表删除与清空操作删除表:DROPTABLE[IFEXISTS]table_name;内部表数据会被删除,外部表数据保留。清空表数据:TRUNCATETABLEtable_name;仅适用于内部表,快速删除表中所有数据但保留表结构。数据加载与导出DML操作数据加载:从本地文件系统加载使用LOADDATALOCALINPATH命令,可将本地文件系统中的数据加载到Hive表中。例如:LOADDATALOCALINPATH'/home/user/data.txt'INTOTABLEstudent;此操作会将本地文件复制到Hive表对应的HDFS目录。数据加载:从HDFS加载通过LOADDATAINPATH命令加载HDFS上的数据,如:LOADDATAINPATH'/user/hive/input/data.csv'INTOTABLEemployee;注意HDFS路径需是Hive有权限访问的,且加载后原文件会被移动到表目录。数据导出:导出到本地文件系统利用INSERTOVERWRITELOCALDIRECTORY语句,将查询结果导出到本地,例如:INSERTOVERWRITELOCALDIRECTORY'/tmp/output'SELECTid,nameFROMstudent;导出文件默认以制表符分隔。数据导出:导出到HDFS使用INSERTOVERWRITEDIRECTORY命令导出数据至HDFS,如:INSERTOVERWRITEDIRECTORY'/user/hive/output'ROWFORMATDELIMITEDFIELDSTERMINATEDBY','SELECT*FROMemployee;可指定分隔符等格式。数据追加:向表中追加数据通过INSERTINTO语句实现数据追加,例如:INSERTINTOTABLElogsSELECT*FROMnew_logs;适用于增量数据更新场景,不会覆盖表中已有数据。07Hive查询与分析SELECT基础查询使用SELECT语句提取数据,支持指定列或全部列(*),如SELECTid,nameFROMuser_info;或SELECT*FROMuser_info;WHERE条件过滤通过WHERE子句筛选符合条件的数据,支持比较运算符(=、<、>)和逻辑运算符(AND、OR),如SELECT*FROMuser_infoWHEREage>20ANDcountry='China';ORDERBY排序对查询结果按指定列排序,默认升序(ASC),可指定降序(DESC),如SELECTname,ageFROMuser_infoORDERBYageDESC;LIMIT限制返回行数使用LIMIT控制结果集数量,适合大数据量查询,如SELECT*FROMuser_infoLIMIT10;返回前10条记录。HQL基础查询语法分组聚合与多表关联

分组聚合:数据统计的核心操作分组聚合通过GROUPBY子句将数据按指定列分组,结合聚合函数(如COUNT、SUM、AVG)实现数据汇总。例如,统计不同省份的订单总金额:SELECTprovince,SUM(amount)FROMordersGROUPBYprovince;

常用聚合函数与应用场景Hive支持多种聚合函数:COUNT(*)统计记录数,SUM(column)计算总和,AVG(column)求平均值,MAX/MIN获取最大/最小值。适用于用户行为分析、销售报表生成等场景。

多表关联:JOIN操作详解多表关联通过JOIN关键字组合多个表的数据,常见类型包括内连接(INNERJOIN)、左连接(LEFTJOIN)、右连接(RIGHTJOIN)。例如,关联订单表与用户表获取用户购买信息:SELECTo.order_id,u.usernameFROMordersoINNERJOINusersuONo.user_id=u.id;

关联优化:提升查询效率的关键多表关联时需注意表的连接顺序(小表在前)、使用分区表过滤数据、避免笛卡尔积。例如,先过滤分区表数据再关联:SELECT*FROMorder_partitionpJOINuser_infouONp.user_id=u.idWHEREp.dt='2024-01-01';分区表与分桶表应用

分区表:按业务维度划分数据分区表通过指定列(如日期、地区)将数据划分为多个子目录,优化查询效率。例如按日期分区存储日志数据,查询特定日期数据时仅扫描对应分区,避免全表扫描。

分桶表:按哈希规则细分数据分桶表基于指定列的哈希值将数据拆分为固定数量的文件,适合高基数列的抽样查询和JOIN优化。如用户表按user_id分桶,可加速用户行为数据关联分析。

分区表与分桶表的创建语法分区表创建:CREATETABLElogs(idINT,content

温馨提示

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

评论

0/150

提交评论