一,hive的介绍
什么是hive?
hive是基于Hadoop的一个数据仓库工具,用来进行数据提取,转化,加载。它是一种可以存储,查询和分析存储Hadoop中的大规模数据的机制。hive数据仓库工具能将结构化的数据文件映射为一张数据库表,并提供SQL查询功能,能将SQL语句转变为mapreduce任务来执行。hive的有点事学习成本低,可以通过类似sql语句实现快速mapreduce实现快速mapreduce统计,使mapreduce变得更加简单。
hive的优势和缺点?
hive提供了一个简单的优化模型
hql类sql语法,简化mr开发
支持在不同的计算框架上运行
支持在hdfs和和hbase上临时查询数据
支持用户自定义函数,格式
成熟的jdbc和odbc驱动程序,用于etl和bi
稳定可靠的批处理
有庞大活跃的社区
hive元数据管理
hive元数据存在数据库中,在数据库中会有一个hive库,存放相应的表
hive相关的源数据表
ods层:
数据来源及建模方式:各业务系统的源数据,物理模型与业务模型一致;
服务领域: 为其它逻辑层提供数据;
数据ETL过程描述:把业务数据抽取落地成文本文件,再装载到数据仓库ods层,不做清洗转化。
功能:
1)ods是数仓准备区
2)为dwd提供原始数据
3)减少对业务系统影响
建模方式及原则:
数据保留时间根据实现业务需求而定;
可以分表进行周期性存储,存储周期不长;
从业务系统以增量方式抽取加载到ods;
数据模型与粒度与业务系统一致(3NF)。
dwd层:
数据来源及建模方式:数据来自于ods层,是DW明细事实层,数据模型与ods层一致;
服务领域:为edw提供各主题业务明细数据;
数据ETL过程描述:根据ods增量数据和前一天DWD相关表进行merge生成全量数据,不做清洗转化,保留原始全量数据。
功能:
1)为DW层提供来源明细数据
2)为未来分析类需求的扩展提供历史数据支持。
建模方式及原则:
为支持数据重跑可额外增加数据业务日期字段;
可按天月年进行分表;
dw层:
数据来源及建模方式:数据来自dwd层,是DW事实层,采用维度建模,星型架构,这一层可细分为dwb与dws;
服务领域:为EDS提供各主题业务明细;
数据ETL过程描述:从dwd层进行轻度清洗,转化,汇总生成dw层数据,如字符合并,email,证件号,日期,手机号转换合并;按各个维度进行聚合汇总。
dm层:
数据来源及建模方式:数据来自dw层,采用维度建模,星型架构;
服务领域:数据挖掘,自定义查询,应用集市;
数据ETL过程描述:从dw层进行粗粒度聚合汇总,按业务需求对事实进行拉宽形成宽表。
st层:
数据来源及建模方式:数据来自dw层,采用维度建模,星型架构;
服务领域:前端报表展示,主题分析,kpi报表;
数据ETL过程描述:从dw层进行粗粒度聚合汇总,如按年、月、季、天对一些维度进行聚合生成业务需求的事实数据。
hive数据类型-原始类型
类似于sql数据类型。
数据表
分为内部表和外部表
内部表:hdfs中为所属数据库目录下的子文件夹,数据完全由hive管理,删除表(元数据)会删除数据
外部表i(external tables):数据保存在指定位置的hdfs中,hive不完全管理数据,删除表(元数据)不会删除数据。
二,hive和zookeeper的配置和安装
1,首先从window下将解压包拖进linux下的指定文件夹中。
2.解压两个压缩包:tar -zxf hive-1.1.0-cdh5.14.2.tar.gz
tar -zxf zookeeper-3.4.5-cdh5.14.2.tar.gz
解压完成后将两个文件夹放到soft文件夹并且改名:mv hive-1.1.0-cdh5.14.2/ soft/hive110
mv zookeeper-3.4.5-cdh5.14.2/ soft/zk345
3,配置zookeeper
进入zookeeper文件夹中的conf文件夹中进行配置,cd soft/zk345/conf
先先试一下文件夹中有哪些内容,ls
拷贝zoo_sample.cfg到zoo.cfg中:cp oo_sample.cfg zoo.cfg
接着开始配置zoo.cfg配置
找到datadir,输入自己zookeeper中tmp路径
然后再末尾输入ip节点:
service.1=192.168.56.101:2287:3387
配置zookeeper的环境变量
vi /etc/profile
输入zookeeper的环境配置:
export ZOOKEEPER_HOME=/opt/soft/zk345
export PATH=
P
A
T
H
:
PATH:
PATH:ZOOKEEPER_HOME/bin
保存退出并且激活:source /etc/profile
4,配置hive
首先需要创建一个hive配置的文件进行配置:vi hive-site.xml
放用户数据信息。
判断元数据是不是本地,true是本地,false是远程
远程IP地址,如果没有发现数据,就会创建一个
这三个配置表示权限配置:不用权限 | 第三方服务:给用户名和密码。 启动beeline
所以再hive-site.xml配置为:
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <?xml-stylesheet type="text/xsl" href="configuration.xsl"?> hive.metastore.warehouse.dir /usr/hive/warehouse hive.metastore.local false javax.jdo.option.ConnectionURL jdbc:mysql://192.168.56.101:3306/hive?createDatabaseIfNotExist=true javax.jdo.option.ConnectionDriverName com.mysql.jdbc.Driver javax.jdo.option.ConnectionUserName root javax.jdo.option.ConnectionPassword ok hive.server2.authentication NONE hive.server2.thrift.client.user root hive.server2.thrift.client.password root保存退出。
配置hive的环境变量:
vi /etc/profile
export HIVE_HOME=/opt/soft/hive110
export PATH=
P
A
T
H
:
PATH:
PATH:HIVE_HOME/bin
保存退出并且激活。
两个软件配置完之后导入驱动包,连接数据库。
将window下的此驱动包移动到linux下。
五,启动。
首先启动Hadoop:start-all.sh
五个内容都成功显示出来启动zookeeper:zkServer.sh.start,
五个内容下面出现QuorumPeerMain 说明zookeeper启动成功。
hive初始化命令
schematool -dbType mysql -initSchema
启动完之后,再另一个操作界面打开hive:输入hive启动
最后再另一个操作界面启动beeline第二个服务:hiveserver2