Hive Getting Started补充

配置管理概述

  • Hive从<install-dir>/conf/hive-default.xml中读取它的默认配置
  • Hive配置目录的位置可以通过设置HIVE_CONF_DIR环境变量的值来改变
  • 配置变量可以被改变,通过<install-dir>/conf/hive-site.xml中重新定义(PS:意思就是可以hive-site.xml中的配置项可以覆盖hive-default.xml中同名的配置)
  • Log4j配置存储在<install-dir>/conf/hive-log4j.properties
  • Hive配置默认继承Hadoop配置变量
  • 在hive-site.xml中可以定义任何你需要的配置变量,包括hadoop中的配置变量也是可以定义在这里面的

Hive日志

Hive用log4j记录日志,默认情况下通过命令行操作的日志会输出到控制台。默认的日志级别是INFO。

日志文件存放的目录是/tmp/<user.name>:

  • /tmp/<user.name>/hive.log

通过在$HIVE_HOME/conf/hive-log4j.properties中设置hive.log.dir可以改变日志存放的目录,务必确保该目录的权限是1777

DDL操作

创建Hive表

创建一个表,名字叫做pokes,它有两列,第一列是integer类型,第二列是string类型

创建一个表,名字叫invites。它有两个列和一个名字叫ds的分区列。这个分区列是一个虚的列,它不是表数据的的一部分,它在将一个特别的数据集加载到分区的时候很有用。

DML操作

加载一个文件到pokes表,这个文件有两列,列用ctrl-a分隔。'LOCAL'表示输入文件在本地文件系统,如果'LOCAL'被省略的话,将从HDFS中查找文件。

关键'OVERWRITE'表示如何表中存在数据则会被删除。如果'OVERWRITE'关键字被省略,那么数据文件则会被追加到已有的数据后面。

注意:

  • 通过加装命令加装数据的时候不会验证数据是否违背schema
  • 如果文件在HDFS中,那么将被移动到Hive所控制的命名空间中
  • Hive数据的根目录是在hive-default.xml中hive.metastore.warehouse.dir指定的

上面的两条加载语句分别加载数据到invites表的不同分区中。表invites在创建的时候必须被分区,并且分区的名字叫ds。

上面这条命令从HDFS中加载数据到表中。

注意,从HDFS中加载数据的结果就是移动文件或目录,因此,这个操作非常快。

 

posted @ 2017-12-28 11:08  废物大师兄  阅读(419)  评论(0编辑  收藏  举报