hive的介绍
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
20
使用(二)
插入数据 Load LOAD DATA [LOCAL] INPATH 'filepath' [OVERWRITE] INTO TABLE tablename [PARTITION (partcol1=val1, partcol2=val2 ...)]; Inserting data INSERT OVERWRITE|INTO TABLE tablename1 [PARTITION (partcol1=val1, partcol2=val2 ...) [IF NOT EXISTS]] select_statement1 FROM from_statement; 数据查询 SELECT [ALL | DISTINCT] select_expr, select_expr, ...FROM table_reference[WHERE where_condition][GROUP BY col_list][CLUSTER BY col_list | [DISTRIBUTE BY col_list] [SORT BY col_list]][LIMIT number] 删除表 drop table taleName;
置为false。
17
配置(2)
远程数据库配置 <property> <name>hive.metastore.uris</name> <value>thrift://172.21.3.171:9083</value> <description>Thrift uri for the remote metastore. Used by metastore client to connect to remote metastore.</description> </property>
动hwi服务。
7
Hive执行流程
8
Hive的SQL用MR实现
pv_users
pageid 1 2 1 age 25 25 32 pageid 1 2 1 age 25 25 32 count 1 2 1
2
25
Select pageid,age,count(1) from pv_users group by pageid,id;
15
配置(1)
元数据配置 Hive的meta数据支持三种存储方式:本地derby存储、本地mysql存储、 远程mysql存储。 本地数据库配置 <property> <name>javax.jdo.option.ConnectionURL</name> <value> jdbc:mysql://*.*.*.*:port/metadb</value> </property> <property> <name>javax.jdo.option.ConnectionDriverName</name> <value>com.mysql.jdbc.Driver</value> </property>
6
客户端组件
CLI:command line interface,命令行接口。 Thrift客户端:上面的架构图里没有写上Thrift客户端,但是hive架构的 许多客户端接口是建立在thrift客户端之上,包括JDBC和ODBC接口。 WEBGUI:hive客户端提供了一种通过网页的方式访问hive所提供的服 务。这个接口对应hive的hwi组件(hive web interface),使用前要启
其他
系统配置
14
安装
将安装程序hive-0.10.0-cdh4.3.0.tar.gz拷贝到对应的一台主机如170 的/chunk1/demo目录下 使用tar zxvf hive-0.10.0-cdh4.3.0.tar.gz命令进行解压。 重命名文件 mv hive-0.10.0-cdh4.3.0 hive
16
配置
<property> <name>javax.jdo.option.ConnectionUserName</name> <value>username</value> </property> <property> <name>javax.jdo.option.ConnectionPassword</name> <value>password</value> </property> <property> <name>datanucleus.autoCreateSchema</name> <value>false</value> </property> 注:datanucleus.autoCreateSchema首次执行配置成true,创建元数据表后,
9
MR实现过程
geid
age
key <1,25> <2,25> map
value 1 1 Shuffer Sort
key <1,25> <1,32>
value 1 1 reduce
key 1 1
value 25 32
cou
1
25 25
1
2
1
geid
age 32 25
key <1,32> <2,25>
HIVE的介绍
目录
1 2 3 4
Hive简介 结构与功能介绍 适用场景 部署与简单操作 问题指南 2 4 11 13 22
5
2
Hale Waihona Puke Baidu
Hive 简介 hive是一个基于Hadoop的数据仓库系统,能够很方便 地对存储于Hadoop兼容文件系统中的大数据集进行简单地 数据汇总、即席查询、分析等处理。hive提供了一种机制, 使用一种类似于SQL的语言(称为HiveQL)来组织数据和 对数据进行查询。 同时,这种语言也允许传统的 map/reduce程序员以插件的形式编写自定义的mapper和 reducer来处理用HiveQL不方便或无法编写的逻辑。
3
目录
1 2 3 4
Hive简介 结构与功能介绍 适用场景 部署与简单操作 问题指南 2 4 13 40 22
5
4
Hive的技术架构
5
服务端组件
Driver组件:该组件包括Complier、Optimizer和Executor,它的作用是 将我们写的HiveQL(类SQL)语句进行解析、编译优化,生成执行计 划,然后调用底层的mapreduce计算框架。 Metastore组件:元数据服务组件,这个组件存储hive的元数据,hive 的元数据存储在关系数据库里,hive支持的关系数据库有derby、 mysql。元数据对于hive十分重要,因此hive支持把metastore服务独立 出来,安装到远程的服务器集群里,从而解耦hive服务和metastore服 务,保证hive运行的健壮性,这个方面的知识,我会在后面的 metastore小节里做详细的讲解。 Thrift服务:thrift是facebook开发的一个软件框架,它用来进行可扩展 且跨语言的服务的开发,hive集成了该服务,能让不同的编程语言调 用hive的接口。
18
配置(3)
<property> <name>hive.hwi.war.file</name> <value>lib/hive-hwi-0.10.0cdh4.3.0.war</value> <description>This sets the path to the HWI war file, relative to ${HIVE_HOME}. </description> </property> <property> <name>hive.hwi.listen.host</name> <value>0.0.0.0</value> <description>This is the host address the Hive Web Interface will listen on</description> </property> <property> <name>hive.hwi.listen.port</name> <value>9999</value> <description>This is the port the Hive Web Interface will listen on</description> </property>
12
目录
1 2 3 4 5
13
Hive简介 结构与功能介绍
2 4
适用场景
部署与简单操作 问题指南
11
13 22
前提条件
支持的操作系统
Red Hat:64-bit:RHEL5.7, CentOS 5.7,Oracle Linux 5.6 (UEK), RHEL6.2,CentOS6.2;32-bit:RHEL 6.2,CentOS 6.2 SUSE:64-bit:SLES 11 Ubuntu:64-bit:LTS releases Lucid(10.04) and Precise (12.04) Debian:64-bit:Squeeze(6.0.3) oracle jdk1.6 以上版本(配置好环境变量) ssh(各个主机之间配置好无密码访问) 集群间各主机已关闭防火墙和selinux。 集群间启动ntp服务,定时同步集群间主机时间。 集群使用相同用户(相同组和user id),相同目录部署 数据节点挂载目录不做raid,可挂载多个文件系统 集群间主机名不重复,均应加入到所有主机/etc/hosts文件中 更改系统资源配置:open files (65535),stack size (5120), max user
21
目录
1 2 3 4 5
22
Hive简介 结构与功能介绍
2 4
适用场景
部署与简单操作 问题指南
11
13 22
运行指南-运行报错
问题描述 Job Submission failed with exception 'java.lang.reflect.UndeclaredThrowableException(null)' 解决方法 启动hadoop的hdfs进程
19
使用(一)
建表 CREATE [EXTERNAL] TABLE [IF NOT EXISTS] [db_name.]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] | STORED BY 'storage.handler.class.name' [WITH SERDEPROPERTIES (...)] ] [LOCATION hdfs_path] [TBLPROPERTIES (property_name=property_value, ...)] [AS select_statement] ;
23
运行指南-建表失败
问题描述 Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Specified key was too long; max key length is 767 bytes 解决方法 数据库存储字段有误,在数据库中执行:alter database hivedb character set latin1;
value 1 1
key <2,25> <2,25>
value 1 1
1
key 2
value 25
coun 2
2
10
目录
1 2 3 4 5
11
Hive简介 结构与功能介绍
2 4
适用场景
部署与简单操作 问题指南
11
13 22
适用场景
业务场景 非结构化数据的的离线分析统计。 场景技术特点 为超大数据集设计的计算、扩展能力。 支持SQL like 查询语言。 多表的join操作。 支持非结构化数据的查询、计算。 提供对数据存取的编程接口,支持jdbc、odbc。
使用(二)
插入数据 Load LOAD DATA [LOCAL] INPATH 'filepath' [OVERWRITE] INTO TABLE tablename [PARTITION (partcol1=val1, partcol2=val2 ...)]; Inserting data INSERT OVERWRITE|INTO TABLE tablename1 [PARTITION (partcol1=val1, partcol2=val2 ...) [IF NOT EXISTS]] select_statement1 FROM from_statement; 数据查询 SELECT [ALL | DISTINCT] select_expr, select_expr, ...FROM table_reference[WHERE where_condition][GROUP BY col_list][CLUSTER BY col_list | [DISTRIBUTE BY col_list] [SORT BY col_list]][LIMIT number] 删除表 drop table taleName;
置为false。
17
配置(2)
远程数据库配置 <property> <name>hive.metastore.uris</name> <value>thrift://172.21.3.171:9083</value> <description>Thrift uri for the remote metastore. Used by metastore client to connect to remote metastore.</description> </property>
动hwi服务。
7
Hive执行流程
8
Hive的SQL用MR实现
pv_users
pageid 1 2 1 age 25 25 32 pageid 1 2 1 age 25 25 32 count 1 2 1
2
25
Select pageid,age,count(1) from pv_users group by pageid,id;
15
配置(1)
元数据配置 Hive的meta数据支持三种存储方式:本地derby存储、本地mysql存储、 远程mysql存储。 本地数据库配置 <property> <name>javax.jdo.option.ConnectionURL</name> <value> jdbc:mysql://*.*.*.*:port/metadb</value> </property> <property> <name>javax.jdo.option.ConnectionDriverName</name> <value>com.mysql.jdbc.Driver</value> </property>
6
客户端组件
CLI:command line interface,命令行接口。 Thrift客户端:上面的架构图里没有写上Thrift客户端,但是hive架构的 许多客户端接口是建立在thrift客户端之上,包括JDBC和ODBC接口。 WEBGUI:hive客户端提供了一种通过网页的方式访问hive所提供的服 务。这个接口对应hive的hwi组件(hive web interface),使用前要启
其他
系统配置
14
安装
将安装程序hive-0.10.0-cdh4.3.0.tar.gz拷贝到对应的一台主机如170 的/chunk1/demo目录下 使用tar zxvf hive-0.10.0-cdh4.3.0.tar.gz命令进行解压。 重命名文件 mv hive-0.10.0-cdh4.3.0 hive
16
配置
<property> <name>javax.jdo.option.ConnectionUserName</name> <value>username</value> </property> <property> <name>javax.jdo.option.ConnectionPassword</name> <value>password</value> </property> <property> <name>datanucleus.autoCreateSchema</name> <value>false</value> </property> 注:datanucleus.autoCreateSchema首次执行配置成true,创建元数据表后,
9
MR实现过程
geid
age
key <1,25> <2,25> map
value 1 1 Shuffer Sort
key <1,25> <1,32>
value 1 1 reduce
key 1 1
value 25 32
cou
1
25 25
1
2
1
geid
age 32 25
key <1,32> <2,25>
HIVE的介绍
目录
1 2 3 4
Hive简介 结构与功能介绍 适用场景 部署与简单操作 问题指南 2 4 11 13 22
5
2
Hale Waihona Puke Baidu
Hive 简介 hive是一个基于Hadoop的数据仓库系统,能够很方便 地对存储于Hadoop兼容文件系统中的大数据集进行简单地 数据汇总、即席查询、分析等处理。hive提供了一种机制, 使用一种类似于SQL的语言(称为HiveQL)来组织数据和 对数据进行查询。 同时,这种语言也允许传统的 map/reduce程序员以插件的形式编写自定义的mapper和 reducer来处理用HiveQL不方便或无法编写的逻辑。
3
目录
1 2 3 4
Hive简介 结构与功能介绍 适用场景 部署与简单操作 问题指南 2 4 13 40 22
5
4
Hive的技术架构
5
服务端组件
Driver组件:该组件包括Complier、Optimizer和Executor,它的作用是 将我们写的HiveQL(类SQL)语句进行解析、编译优化,生成执行计 划,然后调用底层的mapreduce计算框架。 Metastore组件:元数据服务组件,这个组件存储hive的元数据,hive 的元数据存储在关系数据库里,hive支持的关系数据库有derby、 mysql。元数据对于hive十分重要,因此hive支持把metastore服务独立 出来,安装到远程的服务器集群里,从而解耦hive服务和metastore服 务,保证hive运行的健壮性,这个方面的知识,我会在后面的 metastore小节里做详细的讲解。 Thrift服务:thrift是facebook开发的一个软件框架,它用来进行可扩展 且跨语言的服务的开发,hive集成了该服务,能让不同的编程语言调 用hive的接口。
18
配置(3)
<property> <name>hive.hwi.war.file</name> <value>lib/hive-hwi-0.10.0cdh4.3.0.war</value> <description>This sets the path to the HWI war file, relative to ${HIVE_HOME}. </description> </property> <property> <name>hive.hwi.listen.host</name> <value>0.0.0.0</value> <description>This is the host address the Hive Web Interface will listen on</description> </property> <property> <name>hive.hwi.listen.port</name> <value>9999</value> <description>This is the port the Hive Web Interface will listen on</description> </property>
12
目录
1 2 3 4 5
13
Hive简介 结构与功能介绍
2 4
适用场景
部署与简单操作 问题指南
11
13 22
前提条件
支持的操作系统
Red Hat:64-bit:RHEL5.7, CentOS 5.7,Oracle Linux 5.6 (UEK), RHEL6.2,CentOS6.2;32-bit:RHEL 6.2,CentOS 6.2 SUSE:64-bit:SLES 11 Ubuntu:64-bit:LTS releases Lucid(10.04) and Precise (12.04) Debian:64-bit:Squeeze(6.0.3) oracle jdk1.6 以上版本(配置好环境变量) ssh(各个主机之间配置好无密码访问) 集群间各主机已关闭防火墙和selinux。 集群间启动ntp服务,定时同步集群间主机时间。 集群使用相同用户(相同组和user id),相同目录部署 数据节点挂载目录不做raid,可挂载多个文件系统 集群间主机名不重复,均应加入到所有主机/etc/hosts文件中 更改系统资源配置:open files (65535),stack size (5120), max user
21
目录
1 2 3 4 5
22
Hive简介 结构与功能介绍
2 4
适用场景
部署与简单操作 问题指南
11
13 22
运行指南-运行报错
问题描述 Job Submission failed with exception 'java.lang.reflect.UndeclaredThrowableException(null)' 解决方法 启动hadoop的hdfs进程
19
使用(一)
建表 CREATE [EXTERNAL] TABLE [IF NOT EXISTS] [db_name.]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] | STORED BY 'storage.handler.class.name' [WITH SERDEPROPERTIES (...)] ] [LOCATION hdfs_path] [TBLPROPERTIES (property_name=property_value, ...)] [AS select_statement] ;
23
运行指南-建表失败
问题描述 Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Specified key was too long; max key length is 767 bytes 解决方法 数据库存储字段有误,在数据库中执行:alter database hivedb character set latin1;
value 1 1
key <2,25> <2,25>
value 1 1
1
key 2
value 25
coun 2
2
10
目录
1 2 3 4 5
11
Hive简介 结构与功能介绍
2 4
适用场景
部署与简单操作 问题指南
11
13 22
适用场景
业务场景 非结构化数据的的离线分析统计。 场景技术特点 为超大数据集设计的计算、扩展能力。 支持SQL like 查询语言。 多表的join操作。 支持非结构化数据的查询、计算。 提供对数据存取的编程接口,支持jdbc、odbc。