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/profile或source /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数据类型:
基本数据类型:
TINYINT:1个字节(8位)有符号整数
SMALLINT:2个字节有符号整数
INT:4个字节有符号整数
BIGINT:8个字节有符号整数
FLOAT:4个字节单精度浮点数
DOUBLE:8个字节双精度浮点数
BOOLEAN:true/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 表名
Hive与SQL的对比:
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是一个建立在Hadoop之上的数据仓库工具,主要用于处理大量结构化数据集。它提供了类似SQL的查询语言(HiveQL)来简化数据处理任务。Hive的核心服务主要包括CLI、...
HIVE基础入门资料,主要目录包含Hive概述、HIve SQL基础、常见问题及规范 和HIVE SQL优化。 1、适合学习对象: 数据仓库IT人员 数据分析人员 对Hive及分布式系统有一定基础的学员 2、课程目标: 希望授课对象...
### Hive基础查询知识点详解 #### 一、Hive概述与基本操作 - **Hive简介**:Apache Hive 是一个建立在 Hadoop 上的数据仓库工具,主要用于对存储在 Hadoop 文件系统中的各种数据集进行数据整理、特殊查询和分析...
以下是对Hive基础知识的详细阐述: 1. **Hive架构**: Hive的核心组件包括:Hive Metastore、Driver、Compiler、Executor和HDFS。Metastore存储元数据,如表结构、分区信息等;Driver接收查询,编译HQL为执行计划...
Hive简介,包括Hive的来源,系统的架构 Hive基础语法,包括 Hive各种函数 Hive编程,导入、导出、建表、分区、自定义函数
Hive基础,详解介绍HIVESQL中的语法
Hive作为一款基于Hadoop的数据仓库工具,为用户提供了一种类似SQL的查询语言——HiveQL,使得数据分析师能用熟悉的SQL语言去操作存储在Hadoop文件系统中的大数据。HiveQL支持绝大部分标准SQL语法,其中包括DDL(数据...
hive基础文档入门,安装配置创建删除表。hive.创建删除
HVIE 基础入门培训,深入浅出讲解了HIVE搭建,自定义函数等等开发方案
(1)HiveSQL基础SQL练习50题 (2)HiveSQL业务强化练习30题 (3)Hive进阶六大场景题目分析 1)求单月访问次数和总访问次数 2)HiveSQL影评分析案例 3)学生课程成绩 4)求每一年最大气温的那一天+温度 5)求学生...
Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供类SQL查询功能。
Hive基础知识包括了Hive的基本概念、环境搭建、以及基本使用等方面的知识。下面我会根据文件提供的内容详细解释这些知识点。 首先,Hive简介部分提到了Hive是什么,为什么需要使用Hive以及Hive的主要特点。Hive是...
hive入门
标题所指向的文档是关于Hive基础的,Hive是一个由Facebook开源的大数据处理工具,它被设计用于对海量的结构化日志数据进行统计分析。Hive作为一个数据仓库工具,能够将存储在Hadoop分布式文件系统(HDFS)中的结构化...
3. **Hive基础**:本章涉及Hive的数据类型、运算符、数据存储方式和存储格式,以及常用的交互命令。学习者需要掌握不同数据类型的操作,理解Hive的数据存储机制,如TextFile、SequenceFile、Orc和Parquet等。 4. **...
### Hive基础知识及面试要点 #### 一、Hive概述与架构 **1.1 Hive是什么?** Hive是一个构建在Hadoop之上的数据仓库架构,它提供了一系列工具用于数据提取、转换、加载(ETL)。Hive使得用户能够对存储在Hadoop中...
在FusionInsight HD中,Hive组件在社区版本Hive基础上,加入了众多企业级定制化特性,如Colocation建表、列加密、语法增强等特性。整个产品在高可靠、高容错、可扩展性以及性能等各方面较社区版本有巨大提升。 华为...
1. **Hive基础**:介绍Hive的基本概念,包括安装和配置Hive环境,理解Hive架构,以及创建和管理Hive表。 2. **HQL语法**:详细解析HQL,包括DML(数据操纵语言)如INSERT, UPDATE, DELETE操作,DDL(数据定义语言)...
### Hive基础知识 **Hive** 是一个基于Hadoop的数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的SQL查询功能,使不熟悉MapReduce的用户可以使用SQL语句快速实现简单的MapReduce统计,极大地...