hive (一) ----- hive的安装和使用

一、hive安装

1.下载hive2.1-tar.gz

2.解压

tar -zxf hive-2.1.0.tar.gz -C /opt
cd /opt
ln -s hive-2.1.0 hive    

3.配置环境变量

[/etc/profile]
HIVE_HOME=/soft/hive
PATH=...:$HIVE_HOME/bin

测试:

hive --version
hive --help

4.复制mysql驱动程序到hive的lib目录下。

5.配置hive

1)复制hive-default.xml.template为hive-site.xml

2)将${system:...字样替换成具体路径。

3)<property>

javax.jdo.option.ConnectionPassword -> mysql
javax.jdo.option.ConnectionUserName -> root
javax.jdo.option.ConnectionURL -> jdbc:mysql://192.168.137.101:3306/hive
javax.jdo.option.ConnectionDriverName -> com.mysql.jdbc.Driver
hive.server2.enable.doAs -> false

6.在msyql中创建存放hive信息的数据库

mysql>create database hive;

7.初始化hive的元数据(表结构)到mysql中。

cd /soft/hive/bin
schematool -dbType mysql -initSchema

二、hive命令行操作

1.创建hive的数据库

$hive>create database mydb ;           //默认存储路径/user/hive/warehouse
$hive>show databases ;
$hive>use mydb ;
$hive>create table t(id int,name string,age int);
$hive>insert into t(id,name,age) values(1,‘tom‘,12);
$hive>select * from t ;
$hive>drop table t ;
$hive>exit ;

2.hive中表可以在mysql中查看

select * from DBS;
select * from TBLS;

3.内部表外部表

1).managed table

删除表时,数据也删除了。

2).external table

删除表时,数据不删。

三、启动hiveserver2服务

1. hive == hive --service cli

2.启动hiveservice2

1).启动hiveserver2服务器,监听端口10000

hive --service hiveserver2 &

2).通过beeline命令行连接到hiveserver2

$>beeline                //进入beeline命令行(于hive --service beeline)
$beeline>!help                //查看帮助
$beeline>!quit                //退出
$beeline>!connect jdbc:hive2://localhost:10000/mydb2              //连接到hibve数据
$beeline>show databases ;
$beeline>use mydb2 ;
$beeline>show tables;            //显式表

四、java api方式访问hiveserver2

1.创建java模块

2.引入maven

3.添加hive-jdbc依赖

<dependency>
    <groupId>org.apache.hive</groupId>
    <artifactId>hive-jdbc</artifactId>
    <version>2.1.0</version>
</dependency>

4.App

使用jdbc方式连接到hive数据仓库,数据仓库需要开启hiveserver2服务。

public class App {
    public static void main(String[] args) throws  Exception {
        Class.forName("org.apache.hive.jdbc.HiveDriver");
        Connection conn = DriverManager.getConnection("jdbc:hive2://192.168.137.101:10000/testdb1");
        Statement st = conn.createStatement();
        ResultSet rs = st.executeQuery("select id , name ,age from t");
        while(rs.next()){
            System.out.println(rs.getInt(1) + "," + rs.getString(2)) ;
        }
        rs.close();
        st.close();
        conn.close();
    }
}

五、hive命令

1.创建表,external 外部表

$hive>CREATE external TABLE IF NOT EXISTS t2(id int,name string,age int)
COMMENT ‘xx‘ ROW FORMAT DELIMITED FIELDS TERMINATED BY ‘,‘ STORED AS TEXTFILE ; 

2.查看表数据

$hive>desc t2 ;
$hive>desc formatted t2 ;

3.加载数据到hive表

$hive>load data local inpath ‘/home/centos/customers.txt‘ into table t2 ;    //local上传文件
$hive>load data inpath ‘/user/centos/customers.txt‘ [overwrite] into table t2 ;    //移动文件

4.复制表

mysql>create table tt as select * from users ;        //携带数据和表结构
mysql>create table tt like users ;            //不带数据,只有表结构

hive>create table tt as select * from users ;
hive>create table tt like users ;    

5.count()查询要转成mr

$hive>select count(*) from t2 ;
$hive>select id,name from t2 ;
$hive>select * from t2 order by id desc ;                //MR

6.启用/禁用表

$hive>ALTER TABLE t2 ENABLE NO_DROP;    //不允许删除
$hive>ALTER TABLE t2 DISABLE NO_DROP;    //允许删除

7.分区表,优化手段之一,从目录的层面控制搜索数据的范围。

创建分区表.

CREATE TABLE t3(id int,name string,age int) PARTITIONED BY (Year INT, Month INT) ROW FORMAT DELIMITED FIELDS TERMINATED BY ‘,‘ ;

显式表的分区信息

SHOW PARTITIONS t3;

添加分区,创建目录

alter table t3 add partition (year=2014, month=12);

删除分区

ALTER TABLE employee_partitioned DROP IF EXISTS PARTITION (year=2014, month=11)

加载数据到分区表

load data local inpath ‘/home/centos/customers.txt‘ into table t3 partition(year=2014,month=11);

8.创建桶表

CREATE TABLE t4(id int,name string,age int) CLUSTERED BY (id) INTO 3 BUCKETS ROW FORMAT DELIMITED FIELDS TERMINATED BY ‘,‘ ;

加载数据不会进行分桶操作

load data local inpath ‘/home/centos/customers.txt‘ into table t4 ;

查询t3表数据插入到t4中。

insert into t4 select id,name,age from t3 ;

评估数据量,保证每个桶的数据量block的2倍大小。

9.连接查询

$hive>CREATE TABLE customers(id int,name string,age int) ROW FORMAT DELIMITED FIELDS TERMINATED BY ‘,‘ ;
$hive>CREATE TABLE orders(id int,orderno string,price float,cid int) ROW FORMAT DELIMITED FIELDS TERMINATED BY ‘,‘ ;

加载数据到表
内连接查询
hive>select a.*,b.* from customers a , orders b where a.id = b.cid ;
左外
hive>select a.*,b.* from customers a left outer join orders b on a.id = b.cid ;
hive>select a.*,b.* from customers a right outer join orders b on a.id = b.cid ;
hive>select a.*,b.* from customers a full outer join orders b on a.id = b.cid ;

原文地址:https://www.cnblogs.com/water-sky/p/10221238.html

时间: 2024-08-12 14:50:41

hive (一) ----- hive的安装和使用的相关文章

Hive的三种安装方式(内嵌模式,本地模式远程模式)

一.安装模式介绍:     Hive官网上介绍了Hive的3种安装方式,分别对应不同的应用场景.     1.内嵌模式(元数据保村在内嵌的derby种,允许一个会话链接,尝试多个会话链接时会报错)     2.本地模式(本地安装mysql 替代derby存储元数据)     3.远程模式(远程安装mysql 替代derby存储元数据) 二.安装环境以及前提说明:     首先,Hive是依赖于hadoop系统的,因此在运行Hive之前需要保证已经搭建好hadoop集群环境.     本文中使用的

吴超老师课程--Hive的介绍和安装

1.Hive1.1在hadoop生态圈中属于数据仓库的角色.他能够管理hadoop中的数据,同时可以查询hadoop中的数据.  本质上讲,hive是一个SQL解析引擎.Hive可以把SQL查询转换为MapReduce中的job来运行.  hive有一套映射工具,可以把SQL转换为MapReduce中的job,可以把SQL中的表.字段转换为HDFS中的文件(夹)以及文件中的列.  这套映射工具称之为metastore,一般存放在derby.mysql中. 1.2 hive在hdfs中的默认位置是

HIVE 0.14.0安装

本文原文出处: http://blog.csdn.net/bluishglc/article/details/41652111 严禁任何形式的转载,否则将委托CSDN官方维护权益! 0. 前置条件    1. 集群已经安装好Hadoop    2. 本次安装使用/usr/local作为安装目录    3. 专门为HIVE建立用户和用户组:hive:hive1.安装 从官网下载apache-hive-0.14.0-bin.tar.gz以及apache-hive-0.14.0-src.tar.gz,

hive 与mysql集成安装

Hive集成Mysql作为元数据 默认情况下,Hive元数据保存在内嵌的 Derby 数据库中,只能允许一个会话连接,只适合简单的测试.为了支持多用户多会话,则需要一个独立的元数据库,我们使用 MySQL 作为元数据库,Hive 内部对 MySQL 提供了很好的支持,配置一个独立的元数据库需要增加以下几步骤: 第一步:安装MySQL服务器端和MySQL客户端,并启动MySQL服务.此步省略,具体请看http://www.cnblogs.com/linjiqin/archive/2013/03/0

详解Hive的架构及安装步骤

一.Hive是什么? Hive 是基于 Hadoop 构建的一套数据仓库分析系统,它提供了丰富的 SQL 查询方式来分析存储在 Hadoop 分布式文件系统中的数据, 可以将结构化的数据文件映射为一张数据库表,并提供完整的 SQL 查询功能,可以将 SQL 语句转换为 MapReduce 任务进行运行,通过自己的 SQL 去 查询分析需要的内容,这套 SQL 简称 Hive SQL. 二.理解Hive 架构 Hive 架构可以分为四部分. 用户接口 Hive 对外提供了三种服务模式,即 Hive

Hive/Hbase/Sqoop的安装教程

Hive/Hbase/Sqoop的安装教程 HIVE INSTALL 1.下载安装包:https://mirrors.tuna.tsinghua.edu.cn/apache/hive/hive-2.3.3/2.上传到Linux指定目录,解压: mkdir hive mv apache-hive-2.3.3-bin.tar.gz hive tar -zxvf apache-hive-2.3.3-bin.tar.gz mv apache-hive-2.3.3-bin apache-hive-2.3.

Hive 2.1.1安装配置

##前期工作 安装JDK 安装Hadoop 安装MySQL ##安装Hive ###下载Hive安装包 可以从 Apache 其中一个镜像站点中下载最新稳定版的 Hive, apache-hive-2.1.1-bin.tar.gz. 解压安装Hive 使用以下命令安装 Hive: sudo mv apache-hive-2.1.1-bin.tar.gz /opt cd /opt sudo tar -xzvf apache-hive-2.1.1-bin.tar.gz ##解压 sudo ln -s

Hive初步使用、安装MySQL 、Hive配置MetaStore、配置Hive日志《二》

一.Hive的简单使用 基本的命令和MySQL的命令差不多 首先在 /opt/datas 下创建数据  students.txt 1001 zhangsan 1002 lisi 1003 wangwu 显示有多少数据库: show databases; 使用某个数据库: use 数据库名称; 显示当前数据库下的表: show tables; 创建数据表 : create table student (id int,name string) ROW FORMAT DELIMITED FIELDS

阿里云ECS服务器部署HADOOP集群(四):Hive本地模式的安装

本篇将在阿里云ECS服务器部署HADOOP集群(一):Hadoop完全分布式集群环境搭建的基础上搭建. 本地模式需要采用MySQL数据库存储数据. 1 环境介绍 一台阿里云ECS服务器:master 操作系统:CentOS 7.3 Hadoop:hadoop-2.7.3.tar.gz Java: jdk-8u77-linux-x64.tar.gz Hive:apache-hive-2.3.6-bin.tar.gz Mysql: Mysql 5.7 MySQL Connector-J:mysql-