FusionInsight大数据开发---Hive应用开发
Hive应用开发
- 了解Hive的基本架构原理
- 掌握JDBC客户端开发流程
- 了解ODBC客户端的开发流程
- 了解python客户端的开发流程
- 了解Hcatalog/webHcat开发接口
- 掌握Hive开发规则
1. 了解Hive的基本架构原理
守护进程:
- HiveServer(Thrift/Compiler)
- webHcat
- MetaStore
Hive的应用场景
- 数据挖掘
- 非实时分析
- 数据汇总
- 作为数据仓库
2. 掌握JDBC客户端开发流程
JDBC开发-参数初始化
- 设置ZooKeeper地址
- krb5文件路径
- 设置JAAS配置
- 配置ZooKeeper Principal
- 执行登陆
JDBC开发-拼接URL
- JDBC前缀设置
- 服务发现模式
- 安全配置:qop.auth.principal
- 非安全配置
JDBC开发-执行SQL
- 加载驱动类
- 建立连接
- 执行SQL
- 关闭连接
JDBC开发-SQL实现
- 创建preparedStatement
- 执行statement
- 关闭statement
规则建议:
开发调式:在开发程序时,可通过使用Hive的客户端Beeline先进行调试,检验语句与结果正确性,再部署基于JDBC等的应用程序。
获取数据库连接:Hive的数据库URL再拼接时已经经过安全认证,所以Hive数据库的用户名和密码为null或空 。
JDBC超时限制:Hive提供的JDBC实现的超时限制,默认是5分钟。
执行HQL:再JAVA JDBC应用开发中,拼装HQL语句,注意HQL语句不能以“;“结尾。
HQL语法规则之判空:判断字段为空使用:”is null“,判断不为空,即有值,使用:"is not null"
UDF的管理:建议由管理员创建永久UDF,避免每次使用时都去add jar,和重新定义UDF。
UDF的注解:Hive的UDF会有一些默认属性。@UDFType(deterministic = false)
使用分区表:当数据量较大时,且经常需要按天统计时,建议使用分区表,按天存放数据。
动态分区表:为了避免插入动态分区数据过程中,产生过多的小文件,在执行插入时,在分区字段上加distribut by。
文件格式选择:Hive支持多种存储格式,比如TextFile,RCFile,ORC,Sequence,Parquet.
愿路途漫长,以后莫失莫忘。 愿你不骄不躁,安稳顺心。
作者:菜鸟-传奇
本文版权归作者和博客园共有,重在学习交流,不以任何盈利为目的,欢迎转载。
敲敲小黑板:《刑法》第二百八十五条 【非法侵入计算机信息系统罪;非法获取计算机信息系统数据、非法控制计算机信息系统罪】违反国家规定,侵入国家事务、国防建设、尖端科学技术领域的计算机信息系统的,处三年以下有期徒刑或者拘役。违反国家规定,侵入前款规定以外的计算机信息系统或者采用其他技术手段,获取该计算机信息系统中存储、处理或者传输的数据,或者对该计算机信息系统实施非法控制,情节严重的,处三年以下有期徒刑或者拘役,并处或者单处罚金;情节特别严重的,处三年以上七年以下有期徒刑,并处罚金。