
大数据存储-结构化数据仓库——Hive.pptx
87页单击此处编辑母版标题样式,单击此处编辑母版文本样,结构化数据仓库,Hive,信息时代的来临使得企业营销焦点从以产品中心转变为以客户为中心,客户关系管理成为企业的核心问题客户关系管理的关键问题是客户分类,通过客户分类,可以得到不同价值的客户,从而采取个性化服务方案,将有限营销资源集中于高价值客户,实现企业利润最大化目标国内某航空公司面临着常旅客流失,竞争力下降和航空资源未充分利用等经营危机目前该航空公司已积累了大量的会员档案信息和其乘坐航班记录,数据字段及其说明如右表所示实现航空公司客户价值分析首先需要对航空客户数据进行探索分析和处理,考虑到数据量、数据类型的问题,将使用,Hive,数据仓库工具对航空客户数据进行数据存储、探索分析和处理项目描述,项目背景,字段名称,字段说明,客户基本信息,MEMBER_NO,会员卡号,FFP_DATE,入会时间,FIRST_FLIGHT_DATE,第一次飞行日期,GENDER,性别,FFP_TIER,会员卡级别,WORK_CITY,工作地城市,WORK_PROVINCE,工作地所在省份,WORK_COUNTRY,工作地所在国家,AGE,年龄,乘机信息,FLIGHT_COUNT,观测窗口内的飞行次数,LOAD_TIME,观测窗口的结束时间,LAST_TO_END,最后一次乘机时间至观测窗口结束时长,AVG_DISCOUNT,平均折扣率,SUM_YR,观测窗口的票价收入,SEG_KM_SUM,观测窗口的总飞行公里数,LAST_FLIGHT_DATE,末次飞行日期,AVG_INTERVAL,平均乘机时间间隔,MAX_INTERVAL,最大乘机间隔,积分信息,EXCHANGE_COUNT,积分兑换次数,EP_SUM,总精英积分,PROMOPTIVE_SUM,促销积分,PARTNER_SUM,合作伙伴积分,POINTS_SUM,总累计积分,本项目将对,Hive,的架构原理、安装流程进行介绍,结合航空公司客户价值分析实例,详细介绍,Hive,的基本操作,并使用,Hive,实现航空公司客户价值分析建模的特征数据的构建。
项目描述,项目目标,学习,Hive,的架构原理及集群搭建过程,根据航空公司客户价值分析的业务需求安装配置,Hive,集群学习,Hive,表创建、管理与表数据的导入导出操作,在,Hive,中创建航空客户信息表,并导入航空客户数据至,Hive,表中学习,Hive,的,SELECT,基础查询语句,对航空客户数据字段进行描述性统计,查询数据字段的空值、最大值和最小值,对航空客户数据的质量有一定了解学习,HiveQL,子查询语句与自定义,UDF,函数,并对航空客户数据进行基础探索,统计客户的会员级别和入会时长对航空客户数据进行业务探索,并构建适合用于航空客户价值分析建模的特征数据项目描述,项目分析,1,安装配置,Hive,目录,了解,Hive,的架构原理,2,创建航空客户信息表,3,导入航空客户数据到航空客户信息表,4,查询航空客户信息表数据空值记录数,5,Hive,数据仓库基于,Hadoop,开发,是,Hadoop,生态圈组件之一,具备海量数据存储和处理能力,是大数据领域离线批量处理数据的常用工具本小节的任务是了解,Hive,的起源、特点及其架构,这是学习与掌握,Hive,海量数据存储计算的第一步。
任务描述,Hive,起源于,Facebook,(脸书)的杰夫,汉姆贝彻的团队,,Facebook,是美国的一个社交网站,主要创始人是马克,扎克伯格2008,年,3,月,,Facebook,每天产生,200GB,的评价数据2008,年,10,月,每天产生的数据经压缩后已经超过了,2TB,面对越来越大的数据规模,传统的数据库已经无法满足数据的管理和分析的需求,为了解决这一问题,,Facebook,自主研发出一款数据管理规模远超传统数据库的新产品,Hive,认识,Hive,1.Hive,的简介,Hive,是基于,HDFS,和,MapReduce,的分布式数据仓库传统的数据库主要应用于基本的、日常的事务处理,如银行转账数据仓库侧重决策支持,提供直观的查询结果,主要用于数据分析Hive,与传统数据库(,RDBMS,)之间的对比如下表所示认识,Hive,对比项,Hive,RDBMS,查询语言,HQL,SQL,数据存储,HDFS,本地文件系统,执行,MapReduce,执行引擎,执行延迟,高,低,处理数据规模,大,小,数据更新,不支持,支持,模式,读模式,写模式,Hive,具有可伸缩、可扩展、高容错的特点。
可伸缩:,Hive,为超大数据集设计了计算和扩展能力(,MapReduce,作为计算引擎,,HDFS,作为存储系统)一般情况下,不需要重启服务,Hive,就可以自由的扩展集群的规模可扩展:除了,HQL,自身提供的能力,用户还可以自定义数据类型、也可以用任何语言自定义,Mapper,和,Reducer,脚本,还可以自定义函数(普通函数、聚集函数)等,这赋予了,Hive,极大的可扩展性高容错:,Hive,本身并没有执行机制,用户查询的执行是通过,MapReduce,框架实现的,由于,MapReduce,框架本身具有高容错的特点,所以,Hive,也相应具有高容错的特点认识,Hive,2.Hive,的特点,Hive,相较于传统的数据库,,Hive,结构更为简单,处理数据的规模更为庞大,但,Hive,不支持数据更新,有较高的延迟,并且,Hive,在作业提交和调度的时候需要大量的开销Hive,并不能够在大规模数据集上实现低延迟快速的查询Hive,主要适用于日志分析、多维度数据分析,海量结构化数据离线分析等场景认识,Hive,Hive,架构由用户接口、元数据库、解析器、,Hadoop,集群组成了解,Hive,的架构,用户接口:用于连接访问,Hive,,包括命令行接口(,CLI,)、,JDBC/ODBC,和,HWI,(,Hive Web Interface,),3,种方式。
Hive,元数据库(,MetaStore,):,Hive,数据包括数据文件和元数据,数据文件存储在,HDFS,,元数据信息存储在数据库中,如,Derby,(,Hive,默认数据库)、,MySQL,,,Hive,中的元数据信息包括表的名字、表的列和分区、表的属性、表的数据所在的目录等Hive,解析器(驱动,Driver,):,Hive,解析器的核心功能是根据用户编写的,SQL,语法匹配出相应的,MapReduce,模板,并形成对应的,MapReduce job,进行执行,,Hive,中的解析器在运行时会读取元数据库,MetaStore,中的相关信息了解,Hive,的架构,Hadoop,集群:,Hive,用,HDFS,进行存储,用,MapReduce,进行计算,,Hive,数据仓库的数据存储在,HDFS,中,业务实际分析计算是利用,MapReduce,执行的了解,Hive,的架构,从,Hive,架构图可以看出,,Hive,本质上可以理解为一个客户端工具,或是一个将,SQL,语句解析成,MapReduce,作业的引擎Hive,本身不存储和计算数据,它完全依赖于,HDFS,和,MapReduce,。
1,安装配置,Hive,目录,了解,Hive,的架构原理,2,创建航空客户信息表,3,导入航空客户数据到航空客户信息表,4,查询航空客户信息表数据空值记录数,5,对,Hive,有了初步了解后,还需要安装,Hive,组件,这是学习,Hive,的前提条件Hive,使用,Hadoop,的,MapReduce,作为执行引擎,使用,HDFS,作为底层存储,因此安装,Hive,之前需要先搭建,Hadoop,集群环境本小节的任务是搭建,Hadoop,集群和,Hive,工具任务描述,由于,Hive,完全依赖于,Hadoop,的,HDFS,和,MapReduce,,所以在安装配置,Hive,前需要先搭建好,Hadoop,集群在本文中采用的分布式,Hadoop,集群版本为,2.6.4,,共有,4,个节点,包括,1,个主节点和,3,个子节点,主节点主机名为,master,子节点分别为,slave1,、,slave2,和,slave3,每个节点都采用一个单核处理器,内存最大值均为,1024MB,,操作系统为,Centos,版本的,Linux,操作系统搭建,Hadoop,集群,在,Linux,系统主节点,master,下启动集群,在,master,、,slave1,、,slave2,和,slave3,上分别执行命令“,jps”,,若出现右图所示的信息,则说明集群启动成功。
集群节点均配置了主机名与,IP,地址的映射,因此在,Hive,的配置过程中,会直接使用主机名代替,IP,地址搭建,Hadoop,集群,Hive,会将表中的元数据信息存储在数据库中,但,Hive,的默认数据库,Derby,存在并发性能差的问题,在实际生产环境中适用性较差,因此在实际生产中常常会使用其他数据库作为元数据库以满足实际需求MySQL,是一个开源的关系型数据库管理系统,由瑞典,MySQL AB,公司开发,属于,Oracle,旗下产品MySQL,是最流行的关系型数据库管理系统之一,它具有体积小、速度快、成本低等特点,适合作为存储,Hive,元数据的数据库安装,MySQL,后,在命令行输入“,mysql-u root-p123456”,(根据安装时所示的设置,用户名为,root,,密码为,123456,)命令登录,MySQL,,,MySQL,设置远程访问权限命令配置,MySQL,数据库,完成,Hadoop,集群准备以及,MySQL,的配置后,可以开始安装并配置,Hive,,安装配置,Hive,需要以下,3,个文件MySQL,驱动包:,mysql-connector-java-5.1.42-bin.jar,。
Hive,安装包:,apache-hive-1.2.1-bin.tar.gz,配置文件:,hive-site.xml,在,Linux,系统中,,Hive,的安装配置步骤如下将准备的文件上传至,Linux,系统的,/usr/local/src,目录下在命令行输入“,cd/usr/local/src”,命令切换至,/usr/local/src,目录,再输入“,tar-xzvf apache-hive-1.2.1-bin.tar.gz-C/usr/local/”,命令,解压,apache-hive-1.2.1-bin.tar.gz,文件至,/usr/local/,目录下在命令行输入“,mv/usr/local/apache-hive-1.2.1-bin hive”,命令,修改,apache-hive-1.2.1-bin,名称为,hive,配置,Hive,数据仓库,Hive,安装完成后,输入“,ls-l./”,命令,查看,/usr/local/src,目录的上一级目录(即,/usr/local,)包含的详细信息,可在,/usr/local/,目录下看见,Hive,的安装目录“,hive”,,如下图所示。
配置,Hive,数据仓库,接着,Hive,的安装配置进入到,/usr/local/hive/conf,目录下,执行“,cp hive-env.sh.template hive-env.sh,”命令复制,hive-env.sh.template,文件并重命名为,hive-env.sh,,然后执行“,vi hive-env.sh,”命令编辑,hive-env.sh,配置文件,在文件末尾添加,Hadoop,安装目录的路径,执行“,vi/etc/profile,”命令编辑,/etc/profile,文件,配置,Hive,的环境变量,执行“,source/etc/profile,”命令使配置生效在,/usr/local/hive。
