`
dajuezhao
  • 浏览: 59350 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Hive使用杂记

    博客分类:
  • hive
阅读更多

一、环境描述

1、Hadoop版本0.20.2,操作系统Linux、JDK 1.6

2、Hive版本0.5.0

二、元数据的存储

1、如果之前进行了建表操作,但是后来对hdfs format后,通过Hive的cli来输入指令show tables查看表,表结构依然存在,但是hdfs文件系统中对应的目录却不存在。那是因为hive的元数据还存在原因导致。元数据默认存放在metastore_db中,删除这个文件夹,再使用show tables命令来查看,表结构自然不存在。由此可以看出metastore_db就是Hive默认存储元数据的地方。

2、对于Hive元数据的存储,默认采用derby。

3、一共有三种元数据的存储方式:

Single User Mode: 此模式连接到一个 In-memory 的数据库 Derby,一般用于 Unit Test。

Multi User Mode:通过网络连接到一个数据库中,是最经常使用到的模式。

Remote Server Mode:用于非 Java 客户端访问元数据库,在服务器端启动一个 MetaStoreServer,客户端利用 Thrift 协议通过MetaStoreServer 访问元数据。

三、Hive Web Interface的启动

1、安装完成Hive 0.5.0之后,如果想使用web操作,可以使用hwi。

2、控制台执行:hive --service hwi > /dev/null 2> /dev/null &

3、web输入http://IP地址:9999/hwi/

4、如果想修改端口和制定的hwi的war包,可以修改一下配置项:
<property>
<name>hive.hwi.war.file</name>
<value>lib/hive-hwi-0.5.0.war</value>
<description>This sets the path to the HWI war file, relative to ${HIVE_HOME}. </description>
</property>

<property>
<name>hive.hwi.listen.port</name>
<value>9999</value>
<description>This is the port the Hive Web Interface will listen on</description>
</property>
四、Hive查询
1、创建表
检查表创建和输入的数据文件是否对应,可以通过做查询来检查。例如:如果建了一张表叫user_info,里面含有3个字段,以\t划分,一行一条数据,脚本如下:
CREATE TABLE USER_INFO(
ACC STRING,
PWD STRING,
AGE STRING
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '\t'
LINES TERMINATED BY '\n'
STORED AS TEXTFILE;

输入数据文件格式如下:
dajuezhao 123456 1
huaguniang 654321 0
supermen 78908 0

实例分析:

A、如果输入文有4个字段,但建表却只定义了3个字段,这个时候,如果使用“select * from user_info limit 1”将只会显示前3个字段值。

B、反之,如果建表4个字段,输入文本只有3个字段,那么使用“select * from user_info limit 1”时最后一个字段显示为NULL。

C、如果建表的字段定义类型和文本文件的字段值类型不符合,那么即使是字段的数量对应,使用查询语句,在错误字段也将返回NULL。

总结:

如果在执行“select * from user_info limit 1”之后后控制台显示最后的字段为NULL,至少说明表字段数量多于文本的字段数量或者是最后一个字段的类型对应不上。如果是中间字段出现NULL,说明是字段类型对应不上。(但是如果字段是数字类型,且该字段为空,那么在select的时候返回的也是NULL。这个是需要注意的)

2、如果想把查询的结果集合出到本地,可采用以下格式:

INSERT OVERWRITE LOCAL DIRECTORY '/jz/hive/result' select * from user_info limit 1;

需要注意的是,指定的目录必须是上一级存在的,如上例:/jz/hive是必须存在(hive不会自动创建该目录),result目录会自动创建。

如果result目录下有内容,将会覆盖。

3、如果是返回多个字段结果,可采用以下方式查看:

INSERT OVERWRITE LOCAL DIRECTORY '/jz/hive/result' select acc,pwd from user_info limit 1;

查看结果文件,内容的分割符号为“\001”,输入命令查看“awk -F '\001' '{print $1, $2}' attempt_200806210422_0011_r_000000_0”

分享到:
评论

相关推荐

    Hive使用手册Hive使用手册

    目录 1 Hive 概念与连接使用: 2 2 Hive支持的数据类型: 2 2.1原子数据类型: 2 2.2复杂数据类型: 2 2.3 Hive类型转换: 3 3 Hive创建/删除数据库 3 3.1创建数据库: 3 ...12 Hive使用注意点: 6 13 Hive优化 9

    云计算HIVE使用.docx

    云计算HIVE使用 云计算HIVE使用云计算HIVE使用云计算HIVE使用云计算HIVE使用云计算HIVE使用云计算HIVE使用云计算HIVE使用

    presto和hive的使用区别

    Hive是把一个查询转化成多个MapReduce任务,然后一个接一个执行。执行的中间结果通过对磁盘的读写来同步。然而,Presto没有使用MapReduce,它是通过一个定制的查询和执行引擎来完成的。它的所有的查询处理是在内存中...

    Hive3.1.2编译源码

    使用hive3.1.2和spark3.0.0配置hive on spark的时候,发现官方下载的hive3.1.2和spark3.0.0不兼容,hive3.1.2对应的版本是spark2.3.0,而spark3.0.0对应的hadoop版本是hadoop2.6或hadoop2.7。 所以,如果想要使用高...

    hive

    hive hive hive hive hive hive hive hive hive hive hive hive

    hive搭建及使用入门简介(内含PPT、各种表创建sql及hive搭建使用笔记)

    适用人群:hive学习童鞋,hive方面从业人员 从hive的搭建 到 hive的分区表/内部表/外部表/分桶等sql讲解

    hive metastore java api使用

    使用 import org.apache.hadoop.hive.conf.HiveConf; import org.apache.hadoop.hive.metastore.HiveMetaStoreClient; import org.apache.hadoop.hive.metastore.api.FieldSchema; import org.apache.ha

    hive-jdbc hive jdbc驱动

    hive-jdbc

    Hive开发规范及要点

    Hive开发规范及要点,hql 开发基础知识,规范

    利用Hive进行复杂用户行为大数据分析及优化案例

    04_HIve中的case when、cast及unix_timestamp的使用 05_复杂日志分析-需求分析 06_复杂日志分析-需求字段讲解及过滤 07_复杂日志分析-字段提取及临时表的创建 08_复杂日志分析-指标结果的分析实现 09_Hive中数据文件...

    Hive表生成工具,Hive表生成工具Hive表生成工具

    Hive表生成工具,Hive表生成工具Hive表生成工具

    《Hive数据仓库案例教程》教学课件 第5章 Hive数据操作.pdf

    《Hive数据仓库案例教程》教学课件 第5章 Hive数据操作.pdf《Hive数据仓库案例教程》教学课件 第5章 Hive数据操作.pdf《Hive数据仓库案例教程》教学课件 第5章 Hive数据操作.pdf《Hive数据仓库案例教程》教学课件 第...

    Hive总结.docx

    Hive原理/Hive SQL/Hive 函数/数据仓库分层和建模/Hive sql优化/数据倾斜

    hive实验报告.docx

    完成Hive工具的安装和配置 Hive工具能够正常启动运行 Hive控制台命令能够正常使用 够正常操作数据库,表,数据

    Hive用户指南(Hive_user_guide)_中文版.pdf

    熟悉 SQL 开发的开发者可以很方便的使用 Hive 进行开 发。 2. 数据存储位置。 Hive 是建立在 Hadoop 之上的,所有 Hive 的数据都是存储在 HDFS 中 的。而数据库则可以将数据保存在块设备或者本地文件系统中。 3....

    hivesql语句练习

    Hive几种使用方式: 1.Hive交互shell bin/hive 2.Hive JDBC服务(参考java jdbc连接mysql) 3.hive启动为一个服务器,来对外提供服务 bin/hiveserver2 nohup bin/hiveserver2 1&gt;/var/log/hiveserver.log 2&gt;/...

    连接Hive相关Jar包(DBeaver和JDBC均可使用)

    DBeaver连接Hive的Jar包,通过Java JDBC连接Hive同样可以使用。 DBeaver连接Hive的Jar包,通过Java JDBC连接Hive同样可以使用。

    Hive使用手册1

    Hive 使用手册内部技术文档 2015 年夏版本修改历史版本作者描述日期丁晔磊第一版目录Hive 基本概念 4HDFS 基本配置 5Yarn 基本配置 6Ya

    hive-3.1.1安装包

    Hive是一个基于Hadoop的数据仓库工具,它本身并不存储数据,部署在Hadoop集群上,数据是存储在HDFS上的. Hive所建的表在HDFS上对应的是一个文件夹,表的内容对应的是一个文件。它不仅可以存储大量的数据而且可以对...

Global site tag (gtag.js) - Google Analytics