Hive应用开发

  1. 了解Hive的基本架构原理
  2. 掌握JDBC客户端开发流程
  3. 了解ODBC客户端的开发流程
  4. 了解python客户端的开发流程
  5. 了解Hcatalog/webHcat开发接口
  6. 掌握Hive开发规则

1. 了解Hive的基本架构原理
守护进程:

  1. HiveServer(Thrift/Compiler)
  2. webHcat
  3. MetaStore

Hive的应用场景

  1. 数据挖掘
  2. 非实时分析
  3. 数据汇总
  4. 作为数据仓库

2. 掌握JDBC客户端开发流程
JDBC开发-参数初始化

  1. 设置ZooKeeper地址
  2. krb5文件路径
  3. 设置JAAS配置
  4. 配置ZooKeeper Principal
  5. 执行登陆

JDBC开发-拼接URL

  1. JDBC前缀设置
  2. 服务发现模式
  3. 安全配置:qop.auth.principal
  4. 非安全配置

JDBC开发-执行SQL

  1. 加载驱动类
  2. 建立连接
  3. 执行SQL
  4. 关闭连接

JDBC开发-SQL实现

  1. 创建preparedStatement
  2. 执行statement
  3. 关闭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.

FusionInsight大数据开发---Hive应用开发的更多相关文章

  1. FusionInsight大数据开发学习总结(1)

    FusionInsight大数据开发 FusionInsight HD是一个大数据全栈商用平台,支持各种通用大数据应用场景. 技能需求 扎实的编程基础 Java/Scala/python/SQL/sh ...

  2. 大数据全栈式开发语言 – Python

    前段时间,ThoughtWorks在深圳举办一次社区活动上,有一个演讲主题叫做“Fullstack JavaScript”,是关于用JavaScript进行前端.服务器端,甚至数据库(MongoDB) ...

  3. 为什么说Python 是大数据全栈式开发语言

    欢迎大家访问我的个人网站<刘江的博客和教程>:www.liujiangblog.com 主要分享Python 及Django教程以及相关的博客 交流QQ群:453131687 原文链接 h ...

  4. 大数据平台Hive数据迁移至阿里云ODPS平台流程与问题记录

    一.背景介绍 最近几天,接到公司的一个将当前大数据平台数据全部迁移到阿里云ODPS平台上的任务.而申请的这个ODPS平台是属于政务内网的,因考虑到安全问题当前的大数据平台与阿里云ODPS的网络是不通的 ...

  5. FusionInsight大数据开发---MapReduce与YARN应用开发

    MapReduce MapReduce的基本定义及过程 搭建开发环境 代码实例及运行程序 MapReduce开发接口介绍 1. MapReduce的基本定义及过程 MapReduce是面向大数据并行处 ...

  6. FusionInsight大数据开发---HDFS应用开发

    HDFS应用开发 HDFS(Dadoop Distributed File System) HDFS概述 高容错性 高吞吐量 大文件存储 HDFS架构包含三部分 Name Node DataNode ...

  7. FusionInsight大数据开发---Redis应用开发

    Redis应用开发 要求: 了解Redis应用场景 掌握Redis二次开发环境搭建 掌握Redis业务开发 Redis简介 Redis是一个基于网络的,高性能key-value内存数据库 Redis根 ...

  8. 一文总结高并发大数据量下MySQL开发规范【军规】

    在互联网公司中,MySQL是使用最多的数据库,那么在并发量大.数据量大的互联网业务中,如果高效的使用MySQL才能保证服务的稳定呢?根据本人多年运维管理经验的总结,梳理了一些核心的开发规范,希望能给大 ...

  9. 大数据利器Hive

    序言:在大数据领域存在一个现象,那就是组件繁多,粗略估计一下轻松超过20种.如果你是初学者,瞬间就会蒙圈,不知道力往哪里使.那么,为什么会出现这种现象呢?在本文的开头笔者就简单的阐述一下这种现象出现的 ...

随机推荐

  1. SQL报错注入

    0x00:前言 sqli-libs第11关的报错注入,之前没有具体学习了解过,所以单独学习一下. 0x01:例子 uname=1&passwd=1' union select count(*) ...

  2. sigprocmask阻塞信号

    有时候不希望在接到信号时就立即停止当前执行,去处理信号,同时也不希望忽略该信号,而是延时一段时间去调用信号处理函数 1. 信号阻塞和忽略信号的区别 操作系统在信号被进程解除阻塞之前不会将信号传递出去, ...

  3. Go 语言基础语法-Go

    Go 标记 Go 程序可以由多个标记组成,可以是关键字,标识符,常量,字符串,符号.如以下 GO 语句由 6 个标记组成: fmt.Println("Hello, World!") ...

  4. poi坑点(springboot)

    工作上需要写了一个将数据库数据生成excel表的接口,在此过程中遇到了一些坑点,现在此纪录 PS:一部分可能是因为我没用明白 1. 样式问题 自动调整尽量不要使用,部分列留白过多,空列列宽过窄,可能是 ...

  5. 并发编程(五)--GIL、死锁现象与递归锁、信号量、Event事件、线程queue

    一.GIL全局解释器锁 1.什么是全局解释器锁 GIL本质就是一把互斥锁,相当于执行权限,每个进程内都会存在一把GIL,同一进程内的多个线程,必须抢到GIL之后才能使用Cpython解释器来执行自己的 ...

  6. 第05节-BLE协议物理层(PHY)

    对于软件的人来说,物理层关注的内容会少一点.在前面的博客中,我们以快递员类比物理层,对于快递员来说,道路千万条,这条不通换另外一条.对于物理层来说也是一样的,它有很多频率,这个频率有冲突了,将会切到另 ...

  7. 前端(5)之jQuery

    前端(5)之jQuery jQuery介绍 1.jQuery是一个轻量级的,兼容多浏览器的JavaScript库. 2.jQuery使用户能够更方便地处理HTML Document.Events.实现 ...

  8. pypi 打包分发

    打包Python项目 本教程将指导您如何打包一个简单的Python项目.它将向您展示如何添加必要的文件和结构来创建包,如何构建包以及如何将其上载到Python包索引. 一个简单的项目 本教程使用一个名 ...

  9. windows 上robot framework 读取sqlite3提示:OperationalError: unable to open database file错误

    原因:路径写的不正确. 正确的写法:'D:/Python27/163/demo.db' 或者 r 'E:\\rf-demos-master\\DatabaseDemo\\demo.db' Connec ...

  10. Scikit-learn Preprocessing 预处理

    本文主要是对照scikit-learn的preprocessing章节结合代码简单的回顾下预处理技术的几种方法,主要包括标准化.数据最大最小缩放处理.正则化.特征二值化和数据缺失值处理. 数学基础 均 ...