书本第二章的一些知识点,在cloudera-quickstart-vm-5.8.0-0上进行操作。

  • 配置文件

    配置在/etc/hive/conf/hive-site.xml文件里面,采用mysql作为metastore。"hive.metastore.warehouse.dir"这个属性没有在文件中进行配置,因此采用默认值/user/hive/warehouse作为Hive的默认路径。
[cloudera@quickstart ~]$ hdfs dfs -ls /user/hive/warehouse
Found 9 items
drwxrwxrwx - cloudera supergroup 0 2016-08-27 02:34 /user/hive/warehouse/categories
drwxrwxrwx - cloudera supergroup 0 2016-08-27 02:37 /user/hive/warehouse/customers
drwxrwxrwx - cloudera supergroup 0 2016-08-27 02:39 /user/hive/warehouse/departments
drwxrwxrwx - cloudera supergroup 0 2016-08-27 02:42 /user/hive/warehouse/order_items
drwxrwxrwx - cloudera supergroup 0 2016-08-27 02:44 /user/hive/warehouse/orders
drwxr-xr-x - hdfs supergroup 0 2016-12-27 00:34 /user/hive/warehouse/original_access_logs
drwxrwxrwx - cloudera supergroup 0 2016-08-27 02:46 /user/hive/warehouse/products
drwxrwxrwx - cloudera supergroup 0 2016-12-27 05:52 /user/hive/warehouse/tokenized_access_logs
drwxrwxrwx - cloudera supergroup 0 2016-09-04 02:09 /user/hive/warehouse/userinfo
  • 进入CLI

    $ hive

    使用set可以查看配置信息hive> set;

  • 临时变量赋值和查看

hive> set foo;
foo=bar
hive> set hivevar:foo
> ;
hivevar:foo=bar

define的变量只在当前会话有效,define中赋值的变量在hivevar命名空间。

  • hiveconf命名空间变量
[cloudera@quickstart ~]$ hive --hiveconf hive.cli.print.current.db=true

Logging initialized using configuration in file:/etc/hive/conf.dist/hive-log4j.properties
WARNING: Hive CLI is deprecated and migration to Beeline is recommended.
hive (default)> set hiveconf:hive.cli.print.current.db=false;
hive> set hiveconf:hive.cli.print.current.db=true;
hive (default)>

同时,我们也可以在hiveconf中增加新的变量。

[cloudera@quickstart ~]$ hive --hiveconf y=5

Logging initialized using configuration in file:/etc/hive/conf.dist/hive-log4j.properties
WARNING: Hive CLI is deprecated and migration to Beeline is recommended.
hive> set y;
y=5
  • system命名空间

    用于访问Java系统属性,system命名空间下的变量也可以读写。
hive> set system:user.name;
system:user.name=cloudera
hive> set system:user.name=camash
> ;
hive> set system:user.name;
system:user.name=camash
hive> set env:HOMJE;
env:HOME=/home/cloudera
  • 获得所有定义的表
hive> show tables like '*';
OK
categories
customers
departments
intermediate_access_logs
order_items
orders
products
tokenized_access_logs
userinfo
Time taken: 0.065 seconds, Fetched: 9 row(s)
  • 单次执行hive命令

    在shell中单次执行,打印结果在shell窗口。
[cloudera@quickstart ~]$ hive -e "select * from userinfo limit 3";

Logging initialized using configuration in file:/etc/hive/conf.dist/hive-log4j.properties
OK
root x 0 0 root /root /bin/bash
bin x 1 1 bin /bin /sbin/nologin
daemon x 2 2 daemon /sbin /sbin/nologin
Time taken: 2.049 seconds, Fetched: 3 row(s)

使用-S命令减少查询过程信息,从而可以将查询结果放至文件。

[cloudera@quickstart ~]$ hive -S -e "select * from userinfo limit 3"; > /tmp/myquery
[cloudera@quickstart ~]$ cat /tmp/myquery

同时方便执行set命令

[cloudera@quickstart ~]$ hive -S -e "set" | grep warehouse
hive.metastore.warehouse.dir=/user/hive/warehouse
hive.warehouse.subdir.inherit.perms=true
  • 从文件中执行

第一种方式使用hive -f命令,第二种方式hive对话框中使用source命令。

[cloudera@quickstart ~]$ hive -f filequery.hql 

Logging initialized using configuration in file:/etc/hive/conf.dist/hive-log4j.properties
OK
root x 0 0 root /root /bin/bash
bin x 1 1 bin /bin /sbin/nologin
daemon x 2 2 daemon /sbin /sbin/nologin
Time taken: 2.504 seconds, Fetched: 3 row(s)
[cloudera@quickstart ~]$ cat filequery.hql
select * from userinfo limit 3;
hive> source /home/cloudera/filequery.shql
> ;
OK
root x 0 0 root /root /bin/bash
bin x 1 1 bin /bin /sbin/nologin
daemon x 2 2 daemon /sbin /sbin/nologin
Time taken: 1.648 seconds, Fetched: 3 row(s)
  • 在hive会话中执行shell命令
hive> ! pwd
> ;
/home/cloudera

《ProgrammingHive》阅读笔记-第二章的更多相关文章

  1. 深入理解 C 指针阅读笔记 -- 第二章

    Chapter2.h #ifndef __CHAPTER_2_ #define __CHAPTER_2_ /*<深入理解C指针>学习笔记 -- 第二章*/ /* 内存泄露的两种形式 1.忘 ...

  2. 《图解HTTP》阅读笔记--第二章 简单的HTTP协议--第三章 HTTP报文信息

     第二章.简单的HTTP协议HTTP协议:HTTP协议用于客户端(请求资源的一端)和服务器端(响应回复提供资源的一端)的通信,是一种无状态协议HTTP1.1默认TCP持久连接,管线化发送(并行发送多个 ...

  3. 《Interest Rate Risk Modeling》阅读笔记——第二章:债券价格、久期与凸性

    目录 第二章:债券价格.久期与凸性 思维导图 瞬时回报率-收益率的例子 第二章:债券价格.久期与凸性 思维导图 瞬时回报率-收益率的例子

  4. Redis实战阅读笔记——第二章

    在性能的要求下,如何获取重构之前的构件

  5. Redis实战阅读笔记——第二章(redis重构web)

    在性能的要求下,如何用redis重构已有的已有的部分,其实整个例子背后的思路挺好的.在应用缓存的过程中,还有一指标个需要考虑,读写比.

  6. Android群英传笔记——第二章:Android开发工具新接触

    Android群英传笔记--第二章:Android开发工具新接触 其实这一章并没什么可讲的,前面的安装Android studio的我们可以直接跳过,如果有兴趣的,可以去看看Google主推-Andr ...

  7. 《DOM Scripting》学习笔记-——第二章 js语法

    <Dom Scripting>学习笔记 第二章 Javascript语法 本章内容: 1.语句. 2.变量和数组. 3.运算符. 4.条件语句和循环语句. 5.函数和对象. 语句(stat ...

  8. The Road to learn React书籍学习笔记(第二章)

    The Road to learn React书籍学习笔记(第二章) 组件的内部状态 组件的内部状态也称为局部状态,允许保存.修改和删除在组件内部的属性,使用ES6类组件可以在构造函数中初始化组件的状 ...

  9. [HeadFrist-HTMLCSS学习笔记]第二章深入了解超文本:认识HTML中的“HT”

    [HeadFrist-HTMLCSS学习笔记]第二章深入了解超文本:认识HTML中的"HT" 敲黑板!!! 创建HTML超链接 <a>链接文本(此处会有下划线,可以单击 ...

随机推荐

  1. topcoder srm 590 div1 (max_flow_template)

    problem1 link 对于每一个,找到其在目标串中的位置,判断能不能移动即可. problem2 link 如果最后的$limit$为$11=(1011)_{2}$,那么可以分别计算值为$(10 ...

  2. topcoder srm 570 div1

    problem1 link 找到周期,每个周期的增量是相同的. problem2 link 对于分给某一个公司的有$c$个联通分量,其中$k$个联通分量只有1个节点,$c$个联通分量一共有$x$个节点 ...

  3. Learning-Python【27】:异常处理

    一.错误与异常 程序中难免会出现错误,而错误分为两种 1.语法错误:这种错误,根本过不了 Python 解释器的语法检测,必须在程序执行前就改正 2.逻辑错误:比如用户输入的不合适等一系列错误 那什么 ...

  4. STL.vector.iterator的序号

    ZC:网上查到,使用vector时,只要将 find到的iterator(itX)减去vector::begin() 就可以得到itX的序号. 1.需求:得到 某个 iterator在 vector中 ...

  5. 一招破解 Java 集合类面试题

    今日招式:Java集合类面试题 Java集合类绝对是我们的老朋友了,Java技术江湖里,谁人不知,谁人不晓,它的使用率非常高,使用难度却也不大,这也导致了很多人对它不屑一顾,殊不知其中却暗藏玄机,今天 ...

  6. 天地图常用WMTS配置参数

    wmts常用参数 var matrixIds = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', ...

  7. Django 编写模板并渲染的示例

    >>> from django.template import Template, Context >>> raw_template = ""& ...

  8. Web版记账本开发记录(五)

    今天是第五天,不过今天有点事什么都没做,只是看了看一些教学视频, 今天家里有事, 还没来得及实践,等明天再实践,然后再完善完善.

  9. 加快Gradle的构建过程

    Gradle配置文件中加入守护进程 org.gradle.daemon=true 这个守护进程是在第一次编译时才开启进程进行编译,之后的编译将不再开启进程重新编译,这样以减小编译的速度

  10. Set集合中的treeSet问题:cannot be cast to java.lang.Comparable;

    使用TreeSet保存自定义对象时, 必须让定义对象的类实现Comparable接口,并重写compareTo()方法 否则报 实体类User:cannot be cast to java.lang. ...