Hive
黑猴子的家
https://www.atguigu.com/ 拥有技术,便拥有自由
VX: LJJ18513485652 晶晶老师,提峰吉有优惠
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
黑猴子的家:Hive 数据导入
1、向表中装载数据(Load)1)语法hive>load data [local] inpath '/opt/module/datas/student.txt' [overwrite] into table student [partition (partcol1=val1,…)];(1)load data:表示加载数据(2)local:表示从本地加载数据到hive表;否...原创 2018-09-29 10:23:00 · 144 阅读 · 0 评论 -
黑猴子的家:Hive 的数据类型
1、基本数据类型数据类型 长度 例子 TINYINT 1byte有符号整数 20 SMALINT 2byte有符号整数 20 INT 4byte有符号整数 20 BIGINT 8byte有符号整数 20 BOOLEAN 布尔类型,true或者false TRUE FALSE FLOAT 单精度...原创 2018-09-28 11:39:00 · 135 阅读 · 0 评论 -
黑猴子的家:Hive 的数据组织
1、Hive 的存储结构包括数据库、表、视图、分区和表数据等。数据库,表,分区等等都对 应 HDFS 上的一个目录。表数据对应 HDFS 对应目录下的文件。2、Hive数据存储Hive 中所有的数据都存储在 HDFS 中,没有专门的数据存储格式,因为 Hive 是读模式 (Schema On Read),可支持 TextFile,SequenceFile,RCFile 或者自定义格式等...原创 2018-09-28 11:49:00 · 146 阅读 · 0 评论 -
黑猴子的家:Hive 创建数据库
1、创建一个数据库数据库在HDFS上的默认存储路径是/user/hive/warehouse/*.dbhive (default)> create database db_hive;2、避免要创建的数据库已经存在错误,增加if not exists判断。(标准写法)hive> create database db_hive;FAILED: Execution E...原创 2018-09-28 12:51:00 · 224 阅读 · 0 评论 -
黑猴子的家:Hive 修改数据库
用户可以使用 alter database命令为某个数据库的dbproperties设置键-值对属性值,来描述这个数据库的属性信息。数据库的其他元数据信息都是不可更改的,包括数据库名和数据库所在的目录位置。hive (default)> alter database db_hive set dbproperties('createtime'='20180928');查看修改结果...原创 2018-09-28 12:54:00 · 2551 阅读 · 0 评论 -
黑猴子的家:Hive 查询数据库
1、显示数据库1)显示数据库hive> show databases;2)过滤显示查询的数据库hive> show databases like 'db_hive*';OKdb_hivedb_hive_12、显示数据库信息1)显示数据库信息hive> desc database db_hive;OKdb_hive hdfs:...原创 2018-09-28 12:58:00 · 142 阅读 · 0 评论 -
黑猴子的家:Hive 删除数据库
1、删除空数据库hive>drop database db_hive2;2、如果删除的数据库不存在,最好采用 if exists判断数据库是否存在hive> drop database db_hive2;FAILED: SemanticException [Error 10072]: Database does not exist: db_hive标准写法...原创 2018-09-28 13:03:00 · 195 阅读 · 0 评论 -
黑猴子的家:Hive查询之排序
1、全局排序(Order By)1)使用 ORDER BY 子句排序ASC(ascend): 升序(默认)DESC(descend): 降序2)ORDER BY 子句在SELECT语句的结尾案例查询员工信息按工资升序排列hive (default)> select * from emp order by sal;查询员工信息按工资降序排列hive ...原创 2018-09-29 11:44:00 · 180 阅读 · 0 评论 -
黑猴子的家:什么是Hive?
Hive由Facebook开源用于解决海量结构化日志的数据统计。Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张表,并提供类SQL查询功能。本质是:将HQL转化成MapReduce程序1)Hive处理的数据存储在HDFS2)Hive分析数据底层的实现是MapReduce3)执行程序运行在YARN上在简单点说,Hive 依赖于 HDFS 存储数据,Hi...原创 2018-09-28 10:03:00 · 218 阅读 · 0 评论 -
黑猴子的家:为什么使用Hive ?
1、直接使用 MapReduce 所面临的问题 1、人员学习成本太高 2、项目周期要求太短 3、MapReduce实现复杂查询逻辑开发难度太大2、使用 Hive的好处 1、更友好的接口:操作接口采用类 SQL 的语法,提供快速开发的能力 2、更低的学习成本:避免了写 MapReduce,减少开发人员的学习成本 3、更好的扩展性:可自由扩展集群规模而无需重启服务...原创 2018-09-28 10:08:00 · 152 阅读 · 0 评论 -
黑猴子的家:Hive 表的优化之 大表 Join 大表
1、空KEY过滤有时join超时是因为某些key对应的数据太多,而相同key对应的数据都会发送到相同的reducer上,从而导致内存不够。此时我们应该仔细分析这些异常的key,很多情况下,这些key对应的数据是异常数据,我们需要在SQL语句中进行过滤。例如key对应的字段为空,操作如下案例实操(1)配置历史服务器配置mapred-site.xml<property>...原创 2018-09-29 13:30:00 · 1490 阅读 · 1 评论 -
黑猴子的家:Hive 表的优化之 小表 Join 大表
将key相对分散,并且数据量小的表放在join的左边,这样可以有效减少内存溢出错误发生的几率;再进一步,可以使用Group让小的维度表(1000条以下的记录条数)先进内存。在map端完成reduce。实际测试发现:新版的hive已经对小表JOIN大表和大表JOIN小表进行了优化。小表放在左边和右边已经没有明显区别。案例实操测试大表JOIN小表和小表JOIN大表的效率1、建大表、小表和...原创 2018-09-29 13:13:00 · 1075 阅读 · 0 评论 -
黑猴子的家:Hive 本地模式
大多数的Hadoop Job是需要Hadoop提供的完整的可扩展性来处理大数据集的。不过,有时Hive的输入数据量是非常小的。在这种情况下,为查询触发执行任务时消耗可能会比实际job的执行时间要多的多。对于大多数这种情况,Hive可以通过本地模式在单台机器上处理所有的任务。对于小数据集,执行时间可以明显被缩短。用户可以通过设置hive.exec.mode.local.auto的值为true,来...原创 2018-09-29 13:08:00 · 157 阅读 · 1 评论 -
黑猴子的家:Hive 数据导出
1、insert导出1)将查询的结果导出到本地hive (default)> insert overwrite local directory '/opt/module/datas/export/student'select * from student;2)将查询的结果格式化导出到本地hive (default)> insert overwrite local...原创 2018-09-29 10:33:00 · 138 阅读 · 0 评论 -
黑猴子的家:Hive 清除表中数据(truncate)
清除表中数据(truncate)hive (default)> truncate table student;尖叫提示:Truncate只能删除管理表(内部表),不能删除外部表中数据原创 2018-09-29 10:41:00 · 907 阅读 · 0 评论 -
黑猴子的家:Hive 基本查询(SELECT…FROM)
1、全表和特定字段查询1)全表查询hive (default)> select * from emp;2)选择特定列查询hive (default)> select empno, ename from emp;注意:(1)SQL 语言大小写不敏感。(2)SQL 可以写在一行或者多行(3)关键字不能被缩写也不能分行(4)各子句一般要分行写。(5)使用...原创 2018-09-29 10:49:00 · 452 阅读 · 0 评论 -
黑猴子的家:Hive 查询之 where 语句
1、where 语句1)使用WHERE 子句,将不满足条件的行过滤掉。2)WHERE 子句紧随 FROM 子句。3)案例hive (default)> select * from emp where sal > 1000;2、比较运算符(BETWEEN/IN/ IS NULL)1)下面表中描述了谓词操作符,这些操作符同样可以用于JOIN…ON和HAVING语...原创 2018-09-29 11:24:00 · 1880 阅读 · 0 评论 -
黑猴子的家:Hive 查询之分组
1、GROUP BY语句GROUP BY语句通常会和聚合函数一起使用,按照一个或者多个列队结果进行分组,然后对每个组执行聚合操作。案例计算emp表每个部门的平均工资hive (default)> select t.deptno, avg(t.sal) avg_sal from emp t group by t.deptno;计算emp每个部门中每个岗位的最高薪水...原创 2018-09-29 11:29:00 · 316 阅读 · 1 评论 -
黑猴子的家:Hive查询之 JOIN 语句
1、等值JOINHive支持通常的SQL JOIN语句,但是只支持等值连接,不支持非等值连接。案例根据员工表和部门表中的部门编号相等,查询员工编号、员工名称和部门编号;hive (default)> select e.empno, e.ename, d.deptno, d.dname from emp e join dept d on e.deptno = d.deptn...原创 2018-09-29 11:37:00 · 209 阅读 · 1 评论 -
黑猴子的家:Hive 分桶及分桶抽样查询
1、分桶表数据存储概念分区针对的是数据的存储路径,分桶针对的是数据文件。分区提供一个隔离数据和优化查询的便利方式。不过,并非所有的数据集都可形成合理的分区,特别是之前所提到过的要确定合适的划分大小这个疑虑。分桶是将数据集分解成更容易管理的若干部分的另一个技术。方式一:先创建分桶表,通过直接导入数据文件的方式(1)数据准备student.txt1001 ss110...原创 2018-09-29 11:51:00 · 300 阅读 · 0 评论 -
黑猴子的家:Hive 函数
1、 系统自带的函数1)查看系统自带的函数[victor@node1 hive]$ bin/hivehive> show functions;2)显示自带的函数的用法hive> desc function upper;3)详细显示自带的函数的用法hive> desc function extended upper;2、自定义函数描述1...原创 2018-09-29 11:57:00 · 139 阅读 · 0 评论 -
黑猴子的家:Hive Fetch抓取(Hive可以避免进行MapReduce)
Hive中对某些情况的查询可以不必使用MapReduce计算。例如:SELECT * FROM employees;在这种情况下,Hive可以简单地读取employee对应的存储目录下的文件,然后输出查询结果到控制台。在hive-default.xml.template文件中hive.fetch.task.conversion默认是more,老版本hive默认是minimal,该属性修改为mo...原创 2018-09-29 13:05:00 · 823 阅读 · 0 评论 -
黑猴子的家:Hive 架构概述
1、用户接口: shell/CLI, jdbc/odbc, webui Command Line InterfaceCLI,Shell 终端命令行(Command Line Interface),采用交互形式使用 Hive 命令行与 Hive 进行交互,最常用(学习,调试,生产)JDBC/ODBC,是 Hive 的基于 JDBC 操作提供的客户端,用户(开发员,运维人员)通过 这连...原创 2018-09-28 10:16:00 · 185 阅读 · 0 评论 -
黑猴子的家:Hive 的特点
1、优点(1)操作接口采用类SQL语法,提供快速开发的能力(简单、容易上手)(2)避免了去写MapReduce,减少开发人员的学习成本。(3)Hive支持用户自定义函数,用户可以根据自己的需求来实现自己的函数。(4)可扩展性,横向扩展,Hive 可以自由的扩展集群的规模,一般情况下不需要重启服务 横向扩展:通过分担压力的方式扩展集群的规模 纵向扩展:一台服务器cpu i7-6700...原创 2018-09-28 10:22:00 · 479 阅读 · 0 评论 -
黑猴子的家:Sqoop 公用参数:hive
序号 参数 说明 1 --hive-delims-replacement <arg> 用自定义的字符串替换掉数据中的\r\n和\013 \010等字符 2 --hive-drop-import-delims 在导入数据到hive时,去掉数据中的\r\n\013\010这样的字符 3 --map-column-hive <arg...原创 2018-09-09 07:46:00 · 331 阅读 · 0 评论 -
黑猴子的家:Hive和HBase整合集成
1、HBase Jar包拷贝到Hive/lib目录下因为在操作Hive的同时对HBase也会产生影响,所以Hive需要持有操作HBase的Jar包,那么接下来拷贝Hive所依赖的Jar包(或者使用软连接的形式)[victor@node1 ~]$ ln -s $HBASE_HOME/lib/hbase-common-1.2.5.jar $HIVE_HOME/lib/hbase-commo...原创 2018-09-07 21:48:00 · 180 阅读 · 0 评论 -
黑猴子的家:Hive与HBase集成测试案例一
创建Hive表的同时创建HBase表,插入数据到Hive表的同时能够影响HBase表1、emp.txt数据https://www.jianshu.com/p/1d1ecf881a722、在Hive中创建表同时关联HBasehive> create table hive_hbase_emp_table(empno int,ename string,job string,...原创 2018-09-07 21:55:00 · 205 阅读 · 0 评论 -
黑猴子的家:Hive与HBase集成测试案例二
在HBase中已经存储了某一张表hbase_emp_table,然后在Hive中创建一个外部表来关联HBase中的hbase_emp_table这张表,使之可以借助Hive来分析HBase这张表中的数据注:该案例2紧跟案例1的脚步,所以完成此案例前,请先完成案例11、HBase已有表,在Hive中创建外部表hive> create external table relevance...原创 2018-09-07 22:01:00 · 146 阅读 · 0 评论 -
黑猴子的家:Hive下载地址
1、Hive官网地址http://hive.apache.org/2、文档查看地址https://cwiki.apache.org/confluence/display/Hive/GettingStarted3、下载地址包含历史版本http://archive.apache.org/dist/hive/4、github地址https://github.com/apach...原创 2018-09-07 15:48:00 · 557 阅读 · 0 评论 -
黑猴子的家:Hive安装部署
1、解压apache-hive-1.2.1-bin.tar.gz到/opt/module/目录下面[victor@node1 software]$ tar -xzvf apache-hive-1.2.1-bin.tar.gz -C /opt/module/2、添加apache-hive-1.2.1-bin 软连接[victor@node1 ~]$ cd /opt/module[...原创 2018-09-07 15:51:00 · 140 阅读 · 0 评论 -
黑猴子的家:Hive 基本Shell操作
1、启动hive[victor@node1 hive]$ bin/hive2、查看数据库hive>show databases;3、打开默认数据库hive>use default;4、显示default数据库中的表hive>show tables;5、创建一张表hive> create table student(id ...原创 2018-09-07 15:54:00 · 321 阅读 · 0 评论 -
黑猴子的家:将本地文件导入Hive的基础demo
将本地student.txt这个目录下的数据导入到hive的student(id int, name string)表中1、数据准备(1)在/opt/module/目录下创建datas[victor@node1 module]$ mkdir datas(2)在/opt/module/datas/目录下创建student.txt文件并添加数据[victor@node1 da...原创 2018-09-07 16:01:00 · 217 阅读 · 0 评论 -
黑猴子的家:重新编译hive/lib/hive-hbase-handler-1.2.1.jar
HBase与Hive的集成在最新的两个版本中无法兼容。所以,我们只能含着泪勇敢的重新编译:hive-hbase-handler-1.2.1.jar1、下载Hive源码地址http://archive.apache.org/dist/hive/hive-1.2.1/2、解压Hive源码3、进入Hive源码,把hbase-handler模块引入Eclipse项目中4...原创 2018-09-07 21:45:00 · 2435 阅读 · 1 评论 -
黑猴子的家:Sqoop HIVE/HDFS到RDBMS
[victor@node1 sqoop-1.4.7]$ bin/sqoop export \--connect jdbc:mysql://node1:3306/company \--username root \--password 000000 \--table staff \--num-mappers 1 \--export-dir /user/hive/warehouse/st...原创 2018-09-09 07:26:00 · 233 阅读 · 0 评论 -
黑猴子的家:Sqoop RDBMS到Hive
1、mysql 导入hive[victor@node1 sqoop-1.4.7]$ bin/sqoop import \--connect jdbc:mysql://node1:3306/company \--username root \--password 000000 \--table staff \--num-mappers 1 \--hive-import \--fi...原创 2018-09-09 07:14:00 · 882 阅读 · 0 评论 -
黑猴子的家:Sqoop 命令&参数:create-hive-table
** 生成与关系数据库表结构对应的hive表结构。**1、命令案列[victor@node1 sqoop-1.4.7]$ bin/sqoop create-hive-table \--connect jdbc:mysql://node1:3306/company \--username root \--password 000000 \--table staff \--hive...原创 2018-09-09 08:38:00 · 4274 阅读 · 0 评论 -
黑猴子的家:Hive和数据库(RDBMS )比较
由于 Hive 采用了类似SQL 的查询语言 HQL(hive query language),因此很容易将 Hive 理解为数据库。其实从结构上来看,Hive 和数据库除了拥有类似的查询语言,再无类似之处。本文将从多个方面来阐述 Hive 和数据库的差异。数据库可以用在 Online 的应用中,但是Hive 是为数据仓库而设计的,清楚这一点,有助于从应用角度理解 Hive 的特性。对比项 ...原创 2018-09-28 10:33:00 · 968 阅读 · 0 评论 -
黑猴子的家:初次启动 Hive Error解决
1、异常重现[victor@hadoop102 hive]$ bin/hive shellls: cannot access /home/hadoop/spark-2.2.0-bin-hadoop2.6/lib/spark-assembly-*.jar: No such file or directorywhich: no hbase in (/home/hadoop/hive110/...原创 2018-09-28 10:48:00 · 590 阅读 · 0 评论 -
黑猴子的家:Hive 其它命令操作
1、退出hive窗口hive(default)> exit;hive(default)> quit;尖叫提示:在新版中没区别,在以前的版本有区别,exit:先隐性提交数据,再退出,quit:不提交数据,退出2、在hive cli命令窗口中如何查看hdfs文件系统hive(default)> dfs -lsr /;3、在hive cli命令窗口中如何查...原创 2018-09-28 11:18:00 · 175 阅读 · 0 评论 -
黑猴子的家:Hive 数据仓库位置配置
1、Default数据仓库Default数据仓库的最原始位置是在hdfs上的 /user/hive/warehouse路径下2、库表关系在仓库目录下,没有对默认的数据库default创建文件夹。如果某张表属于default数据库,直接在数据仓库目录下创建一个文件夹。3、修改default数据仓库原始位置(将hive-default.xml.template如下配置信息拷贝到hi...原创 2018-09-28 11:23:00 · 1133 阅读 · 0 评论
分享