Hadoop之Hive 命令

Hive 简介:  1.Hive 是SQL解析引擎,它将SQL语句转译成M/R Job 然后在Hadoop执行

2.Hive 的表其实就是HDFS的目录,按表名把文件夹分开。如果是分区表,则分区值是子文件夹,可以直接在M/R job里使用这些数据。

3.HIve相当于hadoop的客户端工具,部署时不一定放在集群节点中,可以放在某个节点上。

Hive 数据存储:

1.Hive 的数据存储基于hadoop fs

2.hive 没有专门的存储格式

3.存储结构主要包括:数据库、文件、表、视图、索引

4.Hive默认可以直接加载文本文件(textfiel),还支持 SequenceFile,RCfile

5.创建表是,指定Hive数据的列分割付与行分隔符,Hive 即可解析数据。

Hive的系统架构:

1.用户接口有3个:CLI,JDBC/ODBC,webUI

2.Hive 将元数据存储在数据库中(metastore),目前只支持mysql、derby。hive 中的元数据包括表的名字,标的列和分区及其属性,表的属性(是否为外部表),表的数据所在的目录等。

3.解释器、编译器、优化器、完成HQL查询语句从词法分析、语法分析、编译、优化以及查询计划(plan)的生成。生成的查询计划存储在HDFS中,并在后由 Mapredcue 调用执行。

4.Hive的数据存储在HDFS中,大部分的查询由MAPRECUDE 完成(包含*的查询,比如select * from table 不会生成MapReduce任务)

Hive 的metastroe

1.metastore是 hive 元数据的集中存放地

2.metastore 默认使用内嵌的derby数据库作为存储引擎

3.derby 引擎的缺点:一次只能打开一个会话

4.使用mysql作为外置存储引擎,多用户同时访问。

Hive 与Hadoop 的调用关系

图:

CSV 逗号分隔值 或字符分隔值~

 

 

hive使用方式分为 命令行方式CLI,脚本文件方式,JDBC方式,web GUI接口 hwi方式

一、命令行方式

1.直接输入 hive –service cli (hive/bin/hive)

show tables;

create tables test(id int,name string);

quit;

2.hive的脚本执行

hive -e ""

hive -e "">aaa

hive -S -e "">aaa

hive -f file

hive -i /home/my/hive-init.sql

source file

3.hive与外部资源的交互

与linux交互命令!

!ls

!pwd

与hdfs交互命令

dfs -ls /

dfs -mkdir /hive

4.hive的JDBC模式

产看hive /bin的目录下 hiveserver2是否存在

hive - - service hiveserver2

启动服务后会停留在如下图示:

image

5.hive web界面模式

web界面安装

a. 下载apache-hive-0.14.0-src.tar.gz

b.制作war包放到HIVE_HOME/lib/:hwi/web/*里面所有文件打成war包  (压缩直接改名)

c.复制 tools.jar(jdk的lib包下面的jar包) 到 hive/lib下

d.修改hive-site.xml

<property>
    <name>hive.hwi.listen.host</name>
    <value>0.0.0.0</value>
    </property>
  <property>
    <name>hive.hwi.listen.port</name>
    <value>9999</value>
    </property>
  <property>
    <name>hive.hwi.war.file</name>
    <value>lib/hive-hwi-0.14.0.war</value>
</property>
e.hive web界面的 (端口号9999) 启动方式

hive --service hwi &

用于通过浏览器来访问hive

http://192.168.0.142:9999/hwi/

6.set命令使用

hive控制台set命令:

set hive.cli.print.current.db=true;

set hive.metastore.warehouse.dir=/hive

hive参数初始化配置set命令:

~/.hiverc

补充:

hive历史操作命令集

~/.hivehistory

----------------------------------bug--------------------

1. 启动hive hwi服务时出现 HWI WAR file not found错误

hwi.HWIServer: HWI WAR file not found at /usr/local/hive/usr/local/hive/lib/hive-hwi-0.12.0-SNAPSHOT.war

解决方案:

将hive-default.xml中关于 hwi的设置拷贝到hive-site.xml中即可

再次运行上面的命令

2. No Java compiler available

Problem accessing /hwi/. Reason:

No Java compiler available

解决方案:
 

现在要做的就是添加apache ant的编译工具,不安装则会报错

安装方法不做介绍了,网上很多。

安装完后需要设置path:

设置ANT_LIB路径

            export ANT_LIB=/usr/lib/apache-ant-1.9.0/lib

,但是这个方法不好使,需要把

  • ant-launcher.jar
  • ant.jar

这两个jar包拷贝到$HIVE_HOME/lib下,才能使用。

OK 成功解决

岁月里,寒暑交替。人世间,北来南往。铭心的,云烟的。都付往事,不念,不问。
原文地址:https://www.cnblogs.com/chaoren399/p/2854885.html