`

hive基础

 
阅读更多

Hive安装:

JDK1.6以上

Hadoop要启动

Hive下载:http://apache.cs.utah.edu/hive/hive-0.11.0/

HIve解压:

hive-0.11.0.tar.gz解压到/home/hive路径下

tar -zxvf hive-0.11.0.tar.gz

产生hive的安装目录/home/hive/hive-0.11.0

配置环境变量:

sudo vi /etc/profile

export HIVE_HOME=/home/hive/hive-0.11.0

export PATH=$HIVE_HOME/bin:$PATH

执行./etc/profilesource /etc/profile

启动hive

hive

show databases;//查看有哪些数据库

use mytest;//使用数据库

show tables;//显示所有的表

 

Hive HA原理:

将若干hive实例纳入一个资源池,然后对外提供一个唯一的接口,进行proxyrelay

对于程序开发人员,就把它认为是一台超强hive就可以了,每次它接收到一个HIVE查询连接后,都会轮询资源池里可用的hive资源。用HAProxy实现。

 

Hive的元数据存储到Mysql

Hive的默认元数据信息存在Derby里面,内置的Derby是单session的。即一次只能连接一个客户端。

Mysql配置:

hive-site.xml文件:

<configuration>

         <property>

<name>javax.jdo.option.ConnectionURL</name>

<value>jdbc.mysql://192.168.1.45:3306/hive?characterEncoding=UTF-8</value>

</property>

<property>

<name>javax.jdo.option.ConnectionDriverName</name>

<value>com.mysql.jdbc.Driver</value>

</property>

<property>

<name>javax.jdo.option.ConnectionUserName</name>

<value>root</value>

</property>

<property>

<name>javax.jdo.option.ConnectionPassword</name>

<value>root</value>

</property>

</configuration>

 

Hive数据类型:

基本数据类型:

TINYINT1个字节(8位)有符号整数

SMALLINT2个字节有符号整数

INT4个字节有符号整数

BIGINT8个字节有符号整数

FLOAT4个字节单精度浮点数

DOUBLE8个字节双精度浮点数

BOOLEANtrue/false

STRING:字符串

 

复合数据类型:

ARRAY:一组有序字段,字段的类型必须相同 Array(1,2)

MAP:一组无序的键值对,键的类型必须是原子的,值可以是任何类型,同一个映射键的类型必须相同,值的类型也必须相同。 Map('a',1,'b',2)

STRUCT:一组命名的字段,字段类型可以不同 Struct('a',1,2,0)

 

创建Hive表:

create [External] Table [if not exits] table_name

[{col_name datatype[comment col_comment],...}]

[COMMENT table_comment]

[PARTITIONED by (colname datatype[comment col_ment],...)]

[CLUSTERED BY (colname,colname,...)[SORTED BY (colname[ASC|SESC],...)] INTO num_buckets BUCKETS]

[ROW FORMAT row_format]

[STORED as file_format]

[LOCATION hdfs_path]

内部表:

create table test_table(

id int,

name string,

num int) row format delimited fields terminated by ','

stored as textfile

外部表:

create external table test_table(

id int,

name string,

num int) row format delimited fields terminated by ','

stored as textfile;

 

加载数据:

本地加载数据:

load data local inpath '/tmp/20150525/stu.txt' [overwrite] into table hive_test

HDFS加载数据:

load data inpath '路径' [overwrite] into table 表名

 

HiveSQL的对比:

               hive                   sql

数据插入         支持批量插入          支持单条和批量导入

数据更新    不支持                支持

索引        支持                  支持

分区        支持                  支持

执行延迟                           

扩展性                          有限

 

Hive的访问方式:

1.客户端

2.hwi

hive --service hwi

3.hive server 远程访问

hive --service hiveserver &

创建一个java项目

class HiveJDBCConnection{

         private static String driverName="org.apache.hadoop.hive.jdbc.HiveDriver";

         private static String url = "jdbc:hive://192.168.1.45:10000/test";

         private static String userName="root";

         private static String password="root";

 

         private static String sql="";

 

         public static void main(String[] args){

         try{

                   Class.forName(driverName);

         Connection conn = DriverManager.getConnection(url,uerName,password);

         Statement stmt = conn.createStatement();

         //system.out.prinln(stmt);

        

         //创建一个表,如果存在了就删除

         String tableName = "jdbc_table";

         sql = "drop table "+tableName;

         stmt.execute (sql);

         //创建表

         sql = "create table "+tableName+

                   " (key String,value String) row format delimited fields terminated by ','";

         stmt.execute(sql);

 

         //load数据到jdbc_table表中

         String path = "/home/sml/hive_test.txt";

         sql = "load data local inpath '"+path+"' into table "+tableName;

         stmt.execute();

 

         //查询jdbc_table中的数据

         sql ="select * from "+tableName;

         ResultSet rs = stmt.executeQuery(sql);

         while(rs.next()){

                   String result = rs.getString(1)+"\t"+rs.getString(2);

                   System.out.println(result)

         }

         }catchh(Exception e){

                   System.out.println("没有找到驱动!");

                   e.printStackTrace();

         }

}

        

}

 

Hive常用功能:

参数:

YEAR=2015 hive-e "select * from table where yaer=${env:YEAR}"

Hive 的一次命令

hive -e "select * from table limit 3"

Hive的结果存到本地

hive -S -e "select* from table limit 3" >> /tmp/mydata

Hive查找

hive -S -e "set"|grep warehouse

执行hive文件

hive -f /path/to/file/mydata.sql

查看当前路径

! PWD

hive里面执行shell命令

! /bin/echo "helloWorld"

查看HDFS

dfs -ls /tmp

 

 

分享到:
评论

相关推荐

    hive基础知识总结

    ### Hive基础知识总结 #### 一、Hive服务 Hive是一个建立在Hadoop之上的数据仓库工具,主要用于处理大量结构化数据集。它提供了类似SQL的查询语言(HiveQL)来简化数据处理任务。Hive的核心服务主要包括CLI、...

    Hive基础介绍(201804).pptx

    HIVE基础入门资料,主要目录包含Hive概述、HIve SQL基础、常见问题及规范 和HIVE SQL优化。 1、适合学习对象: 数据仓库IT人员 数据分析人员 对Hive及分布式系统有一定基础的学员 2、课程目标: 希望授课对象...

    hive基础查询文档上传

    ### Hive基础查询知识点详解 #### 一、Hive概述与基本操作 - **Hive简介**:Apache Hive 是一个建立在 Hadoop 上的数据仓库工具,主要用于对存储在 Hadoop 文件系统中的各种数据集进行数据整理、特殊查询和分析...

    hive基础知识复习笔记.zip

    以下是对Hive基础知识的详细阐述: 1. **Hive架构**: Hive的核心组件包括:Hive Metastore、Driver、Compiler、Executor和HDFS。Metastore存储元数据,如表结构、分区信息等;Driver接收查询,编译HQL为执行计划...

    Hive简介、Hive基础语法、Hive编程

    Hive简介,包括Hive的来源,系统的架构 Hive基础语法,包括 Hive各种函数 Hive编程,导入、导出、建表、分区、自定义函数

    Hive基础,详解介绍HIVESQL中的语法

    Hive基础,详解介绍HIVESQL中的语法

    hive基础语法

    Hive作为一款基于Hadoop的数据仓库工具,为用户提供了一种类似SQL的查询语言——HiveQL,使得数据分析师能用熟悉的SQL语言去操作存储在Hadoop文件系统中的大数据。HiveQL支持绝大部分标准SQL语法,其中包括DDL(数据...

    hive基础文档

    hive基础文档入门,安装配置创建删除表。hive.创建删除

    HIVE基础培训PPT

    HVIE 基础入门培训,深入浅出讲解了HIVE搭建,自定义函数等等开发方案

    数据分析+hive基础及进阶SQL练习题+面试

    (1)HiveSQL基础SQL练习50题 (2)HiveSQL业务强化练习30题 (3)Hive进阶六大场景题目分析 1)求单月访问次数和总访问次数 2)HiveSQL影评分析案例 3)学生课程成绩 4)求每一年最大气温的那一天+温度 5)求学生...

    Hive基础入门与实战.doc

    Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供类SQL查询功能。

    hive-part1-基础知识.pdf

    Hive基础知识包括了Hive的基本概念、环境搭建、以及基本使用等方面的知识。下面我会根据文件提供的内容详细解释这些知识点。 首先,Hive简介部分提到了Hive是什么,为什么需要使用Hive以及Hive的主要特点。Hive是...

    hive基础ppt

    hive入门

    大数据技术之Hive-01(基础).pdf

    标题所指向的文档是关于Hive基础的,Hive是一个由Facebook开源的大数据处理工具,它被设计用于对海量的结构化日志数据进行统计分析。Hive作为一个数据仓库工具,能够将存储在Hadoop分布式文件系统(HDFS)中的结构化...

    《Hive数据仓库案例教程》教学大纲.pdf

    3. **Hive基础**:本章涉及Hive的数据类型、运算符、数据存储方式和存储格式,以及常用的交互命令。学习者需要掌握不同数据类型的操作,理解Hive的数据存储机制,如TextFile、SequenceFile、Orc和Parquet等。 4. **...

    hive面试题

    ### Hive基础知识及面试要点 #### 一、Hive概述与架构 **1.1 Hive是什么?** Hive是一个构建在Hadoop之上的数据仓库架构,它提供了一系列工具用于数据提取、转换、加载(ETL)。Hive使得用户能够对存储在Hadoop中...

    华为大数据认证: Hive分布式数据仓库.pptx

    在FusionInsight HD中,Hive组件在社区版本Hive基础上,加入了众多企业级定制化特性,如Colocation建表、列加密、语法增强等特性。整个产品在高可靠、高容错、可扩展性以及性能等各方面较社区版本有巨大提升。 华为...

    Apache-Hive-Cookbook

    1. **Hive基础**:介绍Hive的基本概念,包括安装和配置Hive环境,理解Hive架构,以及创建和管理Hive表。 2. **HQL语法**:详细解析HQL,包括DML(数据操纵语言)如INSERT, UPDATE, DELETE操作,DDL(数据定义语言)...

    Hive编程指南 PDF 中文高清版

    ### Hive基础知识 **Hive** 是一个基于Hadoop的数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的SQL查询功能,使不熟悉MapReduce的用户可以使用SQL语句快速实现简单的MapReduce统计,极大地...

Global site tag (gtag.js) - Google Analytics