Hive建表:

CREATE TABLE records (year STRING,temperature INT, quality INT)

ROW FORMAT DELIMITED

FIELDS TERMINATED BY '\t';

每行三列数据通过tab分隔,数据如果是以tab分隔的可被hive直接识别。

查看表结构信息:

desc records;

加载数据:

LOAD DATA LOCAL INPATH'/home/data/sample.txt'

OVERWRITE INTO TABLE records;

将linux本地的文本数据导入到hive的数据仓库目录(/user/hive/warehouse/records)

该命令会覆盖掉数据,准确说,它会先删除目录里的老文件,添加新的文件。

原始数据:

导入到hive里的数据:

存数据的表在hive里是个文件,存在仓库里,仓库目录由hive.metastore.warehouse.dir属性控制。

执行查询:

hive> SELECT year, MAX(temperature) FROMrecords WHERE temperature <> 9999 AND quality IN (0, 1, 4, 5, 9) GROUP BYyear;

Hive 里的不等于不支持!=,其正确的表达式应该为<>。

Hive配置设置:

% hive --config /Users/tom/dev/hive-conf

指定hive在不同的目录里hive-site.xml配置文件以针对不同的集群。

% hive -hiveconffs.defaultFS=hdfs://localhost \

-hiveconf mapreduce.framework.name=yarn \

-hiveconfyarn.resourcemanager.address=localhost:8032

设置会话期间的属性。

% hadoop fs -mkdir /tmp

% hadoop fs -chmod a+w /tmp

% hadoop fs -mkdir -p /user/hive/warehouse

% hadoop fs -chmod a+w /user/hive/warehouse

给hive所有用户写权限。

hive> SET hive.enforce.bucketing=true;

可以在会话期间改变设置。之后又恢复。

Hive执行引擎:

Hive默认的执行引擎是MR,现在支持Tez和Spark。

Tez和spark可以避免中间结果输出到HDFS,甚至是存储在内存中的开销。

SET hive.execution.engine=tez; 设置执行引擎为Tez。

日志路径设置:

% hive -hiveconfhive.log.dir='/tmp/${user.name}'

日志级别,输出位置

% hive -hiveconfhive.root.logger=DEBUG,console

Hive架构:


Metastore  configurations:

最常用的选择是用MySQL。

设置:配置文件

javax.jdo.option.ConnectionURL : jdbc:mysql://host/dbname?createDataba

seIfNotExist=true

javax.jdo.option.ConnectionDriverName  :com.mysql.jdbc.Driver

用户名和密码也得设置。MySQL 驱动放置Hive的lib目录下。

Hive的替代物:

Cloudera Impala  交互式查询,性能比Hive有数量级地提升。

Presto from Facebook

Apache Drill

Spark SQL

Apache Phoenix  底层是HBase

Hive基本数据类型:

BOOLEAN        TINYINT,SMALLINT, INT, and BIGINT   FLOAT and DOUBLE

DECIMAL 可以设置精度DECIMAL(5,2) 精度值最大为38

STRING 理论上可以存储2G的数据,实际可能达不到这个值

VARCHAR :VARCHAR(100)    CHAR:CHAR(100) 固定长度的字符串,如果有必要会有空格填充。

BINARY 存储可变长度的二进制数据

TIMESTAMP   DATE年月日

复杂数据类型:

ARRAY, MAP, STRUCT, and UNION

STRUCT:类型组合

UNION:类型里选择一种类型

CREATE TABLE complex (

c1 ARRAY<INT>,

c2 MAP<STRING, INT>,

c3 STRUCT<a:STRING, b:INT, c:DOUBLE>,

c4 UNION<STRING, INT>

)

操作和功能:

SHOW FUNCTIONS 列出hive支持功能

hive> DESCRIBE FUNCTION length;   功能的具体描述

length(str | binary) - Returns the lengthof str or number of bytes in binary

data

外部表和内部表:

CREATE TABLE managed_table (dummy STRING);

LOAD DATA INPATH '/user/tom/data.txt' INTOtable managed_table;

移动hdfs://user/tom/data.txt 到hive的数据仓库目录下。

删除表:DROP TABLE managed_table;

外部表:

CREATE EXTERNAL TABLE external_table (dummy STRING)

LOCATION '/user/tom/external_table';

LOAD DATA INPATH'/user/tom/data.txt' INTO TABLE external_table;

外部表可以指定数据存储的路径。EXTERNAL关键字下,hive不检查在定义的时的外部位置是否存在,意味着可以先创建表在创建这些数据。

删除外部表仅删除元数据信息,数据还存在。

 

Hive数据仓库笔记(一)的更多相关文章

  1. Hive数据仓库笔记(三)

    Joins: Inner  joins: hive> SELECT * FROM sales; Joe 2 Hank 4 Ali 0 Eve 3 Hank 2 hive> SELECT * ...

  2. Hive数据仓库笔记(二)

    分区和桶:   分区:可以提高查询的效率,只扫描固定范围数据,不用全部扫描 CREATE TABLE logs (ts BIGINT, lineSTRING) PARTITIONED BY (dt S ...

  3. hive学习笔记之一:基本数据类型

    欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...

  4. Hive数据仓库工具安装

    一.Hive介绍 Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单SQL查询功能,SQL语句转换为MapReduce任务进行运行. 优点是可以通过类S ...

  5. 【大数据】Hive学习笔记

    第1章 Hive基本概念 1.1 什么是Hive Hive:由Facebook开源用于解决海量结构化日志的数据统计. Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张表, ...

  6. Hive—学习笔记(一)

    主要内容: 1.Hive的基本工能机制和概念 2.hive的安装和基本使用 3.HQL 4.hive的脚本化运行使用方式 5.hive的基本语法--建表语法 6.hive的基本语法--内部表和外部表. ...

  7. HIVE—数据仓库

    1. hive是什么? Hive是基于 Hadoop 的一个数据仓库工具: 1.       hive本身不提供数据存储功能,使用HDFS做数据存储: 2.       hive也不分布式计算框架,h ...

  8. hive数据仓库建设

    hive数据仓库建设 1.设计原生日志表 原生日志表用来存放上报的原始日志,数据经过清洗加工后会进入到各个日志表中. 1.1 创建数据库 #创建数据库 $hive>create database ...

  9. 高速查询hive数据仓库表中的总条数

    Author: kwu 高速查询hive数据仓库中的条数.在查询hive表的条数,通常使用count(*).可是数据量大的时候,mr跑count(*)往往须要几分钟的时间. 1.传统方式获得总条数例如 ...

随机推荐

  1. 读《Linux Shell脚本攻略》(第2版) 总结

    前段时间读完了<Linux Shell脚本攻略>(第2版)这本书,给部分想读这本书的人分享下个人感受. 说下这本书的难度吧.纯新手或者只懂少部分编程知识的人,读起来还是有很大难度的.以我为 ...

  2. Android浏览器访问java web的方法

    以前自己也做过Android程序,可以和服务器通信,通过json来存取数据,当时是在APP中直接存取数据的,而这次我打算在手机浏览器中获得服务器传过来的Json参数,后来才发现其实很简单的,首先需要手 ...

  3. BUNOJ 1011

    字符串处理的题.原题链接 AC代码: #include<cstring> #include<cstdio> #include<string> #include< ...

  4. hadoop配置遇到问题的解决

    1. ssh localhost: 不能登陆:将错误提示中的文件全部删除.原因:登陆过远程主机 2. 问题: 伪分布式datanode启动不了:在datanode的log日志文件出现以下错误提示:   ...

  5. csrf

    什么是CSRF: CSRF(Cross-site request forgery),中文名称:跨站请求伪造 攻击者盗用了你的身份,以你的名义发送恶意请求.CSRF能够做的事情包括:以你名义发送邮件,发 ...

  6. 支付宝wap支付调起客户端

    https://mclient.alipay.com/home/exterfaceAssign.htm?alipay_exterface_invoke_assign_client_ip=183.15. ...

  7. python函数式编程之装饰器(二)

    以前用装饰器,都是定义好了装饰器后,使用@装饰器名的方法写入被装饰函数的正上方 在这里,定义的装饰器都是没有参数的 在定义装饰器的函数的时候,没有在括号里定义参数,这就叫做无参装饰器 既然有无参装饰器 ...

  8. XAF_GS_02_创建第一个XAF项目

    上一节我们讲解了如何安装XAF环境,这次我们要开始创建一个自己的XAF项目. Setp 1 第一步打开你的Visual Studio,新建项目,如下图所示,选择DevExpress XAF,选择好你的 ...

  9. 多线程实现之Java

    关于Java线程的生命周期,请看下面这张图: 新建状态(New):当线程对象创建后,即进入了新建状态,如:Thread t = new MyThread(); 就绪状态(Runnable):当调用线程 ...

  10. windows 7蓝屏解决办法

    1.通过工具打开出现蓝屏原因的dmp文件,找到原因 Unable to load image \SystemRoot\system32\ntkrnlpa.exe, Win32 error 0n2 2. ...