• Hive编程指南学习笔记


    0512

    与sql区别

    hive不支持in,需要左半开连接。
    LEFT SEMI JOIN
    左边的一条记录,一旦在右边找到匹配的记录,就停了下来。左边的一条记录,一旦在右边找到匹配的记录,就停了下来。

    严格模式限制

    1.不能使用笛卡尔积join
    2.ORDER BY操作必须要有LIMIT语句进行限制

    记录

    ORDER BY(使用一个reducer,耗时很慢)
    SORT BY:部分有序,可以提高全局排序的效率

    0615


    第1章 基础知识

    第2章 基础操作

    2.3Hive内部是什么

    Hive有一个内置Derby数据库,使用时,不可以并发打开两个Hive CLI

    2.4启动Hive

    2.5配置Hadoop环境

    2.5.1本地模式配置

    2.5.2分布式模式和伪分布式模式配置

    2.5.3使用JDBC连接元数据

    2.6Hive命令

    命令选项
    hive --help可以提示很多命令选项。

    2.7命令行界面

    2.7.1CLI选项

    hive --help --service cli

    2.7.2变量和属性

    hive --define key=value
    hive --hivevar key=value
    set k
    --define key=value和--hivevar key=value 是等价的,可以让用户在命令行定义用户自定义变量以便在Hive脚本中引用。
    当用户使用时,会将这些值放到hivevar命名空间。

    命名空间 使用权限 描述
    hivevar 可读/可写 用户自定义变量
    hiveconf 可读/可写 Hive相关的配置属性
    system 可读/可写 Java定义的配置属性
    env 只可读 Shell环境定义的环境变量

    Hive变量内部都是以Java字符串的方式存储的
    hiveconf是可选的,用户必须使用system:或者env:

    2.7.3 Hive中“一次使用”命令

    hive -e "select ";
    -S选项可以开启静默模式
    可以将查询结果重定向,保存到文件中。

    2.7.4 从文件中执行Hive查询

    使用-f 文件名,执行文件中的一个或多个查询语句,惯例,文件是以.hql或.q结尾的
    Hive -f [文件名.hql或者.q]
    也可以在hive cli中执行source 文件名

    source 文件名.hql;
    

    2.7.5 hiverc文件

    hive -i [文件名]
    允许用户执行一个文件,当CLI启动时,在提示符出现前会先执行这个文件。Hive会自动在HOME目录下寻找名为.hiverc的文件,而且会自动执行这个文件中的命令(如果存在)。
    在设置系统属性,或增加自定义扩展Java包时,比较常用。

    【警告】——每行结尾要记得加分号

    2.7.6 使用Hive CLI的更多介绍

    自动补全功能
    Tab键

    笔者亲测,在beeline的时候好像不是那么灵活。

    2.7.7 查看操作命令历史

    Hive会将最近的100,00行命令记录到$HOME/.hivehistory

    2.7.8 执行shell命令

    hive> ! /bin/echo xxxxx;
    在hive命令行前加感叹号,末尾加分号。
    不过,不能使用交互式命令,而且不支持管道功能和自动补全功能,也不支持通配符。

    2.7.9 在hive内使用Hadoop的dfs命令

    在hadoop dfs中,直接去掉hadoop,然后以分号结尾
    hive>dfs --help;

    2.7.10 Hive脚本中如何进行注释

    可以用--开头的字符串表示注释,而且注释只能放在脚本,通过hive -f script_name执行

    2.7.11 显示字段名称

    通过hiveconf配置项hive.cli.print.header为true
    set hive.cli.print.header=true;
    添加到$HOME/.hiverc文件中

  • 相关阅读:
    vm centos 网络配置
    js数组键入值push和 arr[i]区别
    linux云服务器mysql ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/tmp/mysql.sock’
    表单提交验证提交数据代码
    memcache原理、简单使用、分布式实现方案
    WAMPSERVER PHP版本5.3的降到 5.2?
    Java之 Servlet
    java之 动态代理
    java之 属性集 & 缓冲流 & 序列化流
    java之 File类 & 字节流(byte)
  • 原文地址:https://www.cnblogs.com/xinlingyue-blog/p/5488201.html
Copyright © 2020-2023  润新知