
hive
大数据之hive
赶路人儿
一个十年以上编程人员,擅长使用java、python、C++等语言,具有广告投放、个性化推荐引擎等超大规模系统开发经验。
展开
-
hive partition维护
在创建hive表时,可以指定分区,如下创建了一个按天、小时分区的表:CREATE EXTERNAL TABLE `test`( `name` string, `uri` string, `reqMethod` string, `status` int) PARTITIONED by ( `dt` string, `hour` string) LOCATION '/data/test'接下来,我们在hdfs上按照如下目录结构写入数据:hadoop fs -ls /原创 2020-08-20 14:29:37 · 1099 阅读 · 0 评论 -
Hive分区修复命令MSCK介绍与使用
我们在使用Hive的时候肯定遇到过建立了一张分区表,然后手动(比如使用 cp 或者 mv )将分区数据拷贝到刚刚新建的表作为数据初始化的手段;但是对于分区表我们需要在hive里面手动将刚刚初始化的数据分区加入到hive里面,这样才能供我们查询使用,我们一般会想到使用 alter table add partition 命令手动添加分区,但是如果初始化的分区太多,这样一条一条地手动添加分区不免过于麻转载 2017-12-07 11:38:52 · 2862 阅读 · 0 评论 -
hive报错:Execution failed with exit status: 3
在hive上执行了一个join的sql,运行时报如下错误:2016-07-06 05:35:32 Processing rows: 1400000 Hashtable size: 1399999 Memory usage: 203699304 percentage: 0.3962016-07-06 05:35:32 Processing转载 2017-12-07 11:33:07 · 1888 阅读 · 0 评论 -
hive mapjoin 使用 和个人理解
1、遇到一个hive的问题,如下hive sql:select t1.a,t1.b from table t1 join table2 t2 on ( t1.a=t2.a and t1.datecol=20110802)该语句中B表有30亿行记录,t1表只有100行记录,而且t2表中数据倾斜特别严重,有一个key上有15亿行记录,在运行过程中特别的慢,而且在reduece的过程中遇有内存转载 2017-12-07 11:12:43 · 7818 阅读 · 0 评论 -
Hive Streaming 追加 ORC 文件
1.概述 在存储业务数据的时候,随着业务的增长,Hive 表存储在 HDFS 的上的数据会随时间的增加而增加,而以 Text 文本格式存储在 HDFS 上,所消耗的容量资源巨大。那么,我们需要有一种方式来减少容量的成本。而在 Hive 中,有一种 ORC 文件格式可以极大的减少存储的容量成本。今天,笔者就为大家分享如何实现流式数据追加到 Hive ORC 表中。2.内容2转载 2017-11-24 09:43:17 · 1102 阅读 · 0 评论 -
Java API 读取Hive Orc文件
Orc是Hive特有的一种列式存储的文件格式,它有着非常高的压缩比和读取效率,因此很快取代了之前的RCFile,成为Hive中非常常用的一种文件格式。在实际业务场景中,可能需要使用Java API,或者MapReduce读写Orc文件。本文先介绍使用Java API读取Hive Orc文件。在Hive中已有一张Orc格式存储的表lxw1234:该表有四个字段:url转载 2017-11-23 19:16:21 · 4025 阅读 · 1 评论 -
MapReduce 读取ORC格式文件
1、创建orc格式hive表:create table test_orc(name string,age int) stored as orc2、查看表结构:show create table test_orcCREATE TABLE `test_orc`( `name` string, `age` int)ROW FORMAT SERDE 'org.apache.ha转载 2017-11-23 18:39:30 · 5914 阅读 · 0 评论 -
Java API 写 Hive Orc文件
下面的代码将三行数据:张三,20李四,22王五,30写入HDFS上的/tmp/lxw1234/orcoutput/lxw1234.com.orc文件中。package com.lxw1234.test; import java.io.DataInput;import java.io.DataOutput;import java.io.IOExcept转载 2017-11-23 18:28:22 · 4670 阅读 · 0 评论 -
hive 分区表使用的一些注意事项
hive 外表数据读取:1、hive非分区普通表:1)建立外表:CREATE EXTERNAL TABLE `test_liu`( `a` string, `b` string, `c` string)ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' STORED AS INPUTFORMAT '原创 2017-11-02 12:18:34 · 2508 阅读 · 0 评论 -
Flume使用Hive作为Sink总结
项目中打算使用Flume把数据直接传到Hive表而不是HDFS上。使用hive作为Sink,Flume版本为1.7.0。开始时候遇到Failed connecting to EndPoint错误,Caused by: org.apache.hive.hcatalog.streaming.StreamingException: Cannot stream to table that has no转载 2017-08-29 22:36:38 · 4767 阅读 · 1 评论 -
hive size计算数组长度的一个坑
hive上有个表,其中某列p_9的数据格式是用逗号分隔的字符串。通过下面的方式计算p_9列使用逗号分隔后元素的长度。select rg,sum(size(split(p_9,","))) from ttengine_api_data where dt='2017-08-07' group by rg;OK0 1376831 150155如果p_9列不为空,那么计算是没问题的。如果原创 2017-08-09 11:40:44 · 31759 阅读 · 0 评论 -
tez安装、配置
hive on tez 的方式有两种安装配置方式: ● 在hadoop中配置 ● 在hive中配置比较: 当已经有了稳定的hadoop集群,而不想动这个集群时,可以考虑采用第二种方式配置,第二种方式配置后只有hive的程序可以动态的切换执行引擎:set hive.execution.engine=mr;// tez/mr ;而其他的mapreduce程序只能在yarn上运行;原创 2017-04-25 10:23:54 · 5621 阅读 · 1 评论 -
SQuirrel连接hive配置
熟悉了Sqlserver的sqlserver management studio、Oracle的PL/SQL可视化数据库查询分析工具,在刚开始使用hive、phoenix等类sql组件时,一直在苦苦搜寻是否也有类似的工具,不负所望,SQuirrel Sql client 可视化数据库工具基本可满足要求。 SQuirrel Sql client是一个用Java写的数据库客户端,用JDBC统一数据库访转载 2017-04-18 12:13:06 · 2302 阅读 · 0 评论 -
hive中order by,sort by, distribute by, cluster by作用以及用法
1. order by Hive中的order by跟传统的sql语言中的order by作用是一样的,会对查询的结果做一次全局排序,所以说,只有hive的sql中制定了order by所有的数据都会到同一个reducer进行处理(不管有多少map,也不管文件有多少的block只会启动一个reducer)。但是对于大量数据这将会消耗很长的时间去执行。 这里跟传统的sql还有一点转载 2017-04-18 10:13:23 · 551 阅读 · 0 评论 -
hive 分区表
hive中创建分区表没有什么复杂的分区类型(范围分区、列表分区、hash分区、混合分区等)。分区列也不是表中的一个实际的字段,而是一个或者多个伪列。意思是说在表的数据文件中实际上并不保存分区列的信息与数据。下面的语句创建了一个简单的分区表:create table partition_test(member_id string,name string)partitioned by转载 2017-04-17 18:46:30 · 791 阅读 · 0 评论 -
hive集群部署
Hive是基于Hadoop构建的一套数据仓库分析系统,它提供了丰富的SQL查询方式来分析存储在Hadoop 分布式文件系统中的数据。其在Hadoop的架构体系中承担了一个SQL解析的过程,它提供了对外的入口来获取用户的指令然后对指令进行分析,解析出一个MapReduce程序组成可执行计划,并按照该计划生成对应的MapReduce任务提交给Hadoop集群处理,获取最终的结果。元数据——如表模式——原创 2017-04-14 17:53:53 · 3242 阅读 · 0 评论 -
udf开发——解hive外表中的pb二进制数据
目标:hbase中有一张表,为了提高存储效率使用pb的二进制方式存储;现在hive上建了一个外表,需要写一个udf解pb的二进制数据。 一、hbase中存储的数据先用pb生成二进制,转成string后再使用base64编码:1、在hive中创建外表,结构如下:create external table ext_toutiao_feed_incr (f_id string,tagP...原创 2017-04-12 09:40:51 · 3757 阅读 · 2 评论 -
hive数据类型
Hive的内置数据类型可以分为两大类:基础数据类型; 复杂数据类型;1、基础数据类型包括: 数据类型 所占字节 开始支持版本 TINYINT 1byte,-128 ~ 127 SMALLINT 2byte,-32,768 ~ 3...原创 2017-04-09 14:23:06 · 988 阅读 · 0 评论 -
Hive中数据的加载和导出
关于 Hive DML 语法,你可以参考 apache 官方文档的说明:Hive Data Manipulation Language。apache的hive版本现在应该是 0.13.0,而我使用的 hadoop 版本是 CDH5.0.1,其对应的 hive 版本是 0.12.0。故只能参考apache官方文档来看 cdh5.0.1 实现了哪些特性。因为 hive 版本会持续升级,转载 2017-04-09 13:17:35 · 818 阅读 · 0 评论 -
hive与hbase关联表
hive创建 关联hbase表有2种形式:一、建立hive内表,指向hbase:(数据是存在hbase中的)通过下面的方式创建hive的内表,这种情况是hbase本来没有这张表,创建后会在hbase中同样创建一张表,将来数据也是存放在hbase中的;hdfs的hive表目录有hive文件夹,但是里面没有数据。create tablehive_hbase_test(id string,n原创 2017-04-09 13:01:43 · 12481 阅读 · 4 评论 -
Hive中不走MapReduce的查询
在Hive中查询语句往往都要被解析成MapReduce的job进行计算,但是有两个查询语句是不走MapReduce的,如下:1.查询某张表的所有数据[java] view plain copyselect * from employees; 结果显示如下:[java] view plain copy原创 2017-04-08 14:24:33 · 7667 阅读 · 0 评论 -
hive-列转行和行转列
1. 假设我们在Hive中有两张表,其中一张表是存用户基本信息,另一张表是存用户的地址信息等,表数据假设如下:user_basic_info:idname1a2b3c4duser_address;nameaddressaadd1aa转载 2017-04-08 12:59:02 · 1068 阅读 · 0 评论 -
hive DDL语法汇总
hive DDL语法汇总1、对表重命名hive> ALTER TABLE table_name RENAME TO new_table_name; 2、修改表备注hive> ALTER TABLE table_name SET TBLPROPERTIES ('comment' = new_comment); 3、添加表分区hi转载 2017-03-30 19:00:40 · 986 阅读 · 0 评论 -
hive函数大全
wiki:https://cwiki.apache.org/confluence/display/Hive/LanguageManual+UDFmap,array: https://cwiki.apache.org/Hive/languagemanual-lateralview.html doc下载:http://ishare.iask.sina.com.cn/f/25020082转载 2017-03-12 17:20:59 · 820 阅读 · 0 评论 -
hive时间戳格式化
1、from_unixtime()函数:语法:from_unixtime(t1,'yyyy-MM-dd HH:mm:ss')其中t1是10位的时间戳值,即1970-1-1至今的秒,而13位的所谓毫秒的是不可以的。对于13位时间戳,需要截取,然后转换成bigint类型,因为from_unixtime类第一个参数只接受bigint类型。例如:select from_unixtime(c原创 2017-03-09 12:03:33 · 15566 阅读 · 0 评论 -
hive的数据类型与null的用法
hive的使用中不可避免对null、‘’的判断识别。但是hive区别与传统的数据库。下面一一说明1、数据类型:int与string的存储。null默认的存储都是\N。 string的数据如果为""。存储才是""。另外往int类型的字段插入数据“”.结果还是\N[hadoop@nn1 ~]$ hadoop fs -cat /user/hive/warehouse/原创 2017-03-08 19:22:56 · 2903 阅读 · 0 评论 -
Hive用户接口(一)—Hive Web接口HWI的操作及使用
Hive提供了三种用户接口:CLI、HWI和客户端方式。其中最常用的的就是CLI,CLI启动的时候,会同时启动一个Hive副本。Client是Hive的客户端,用户连接至Hive Server。在启动 Client模式的时候,需要指出Hive Server所在节点,并且在该节点启动Hive Server。 HWI是通过浏览器访问Hive。本文介绍Hive Web访问接口。启动 hwi原创 2016-11-26 18:54:22 · 3127 阅读 · 0 评论 -
hive 日志存放路径
日志记录了程序运行的过程,是一种查找问题的利器。Hive中的日志分为两种1. 系统日志,记录了hive的运行情况,错误状况。2. Job 日志,记录了Hive 中job的执行的历史过程。系统日志存储在什么地方呢 ?在hive/conf/ hive-log4j.properties 文件中记录了Hive日志的存储情况,默认的存储情况:hive.root.log转载 2016-11-26 17:16:20 · 6107 阅读 · 0 评论 -
eclipse上运行hive查询
环境:hadoop:2.5.2,hive:1.2.11、pom文件: org.apache.hadoop hadoop-common 2.5.2 provided org.apache.hive hive-jdbc 1.2.1 2、java代码package cn.edu.nuc.转载 2016-11-26 17:09:30 · 1314 阅读 · 0 评论 -
hive 配置参数说明
hive.exec.mode.local.auto 决定 Hive 是否应该自动地根据输入文件大小,在本地运行(在GateWay运行) true hive.exec.mode.local.auto.inputbytes.max 如果 hive.exec.mode.local.auto 为 true,当输入文件大小小于此阈值时可以自动在本地模式运行,默转载 2016-11-26 15:54:58 · 817 阅读 · 0 评论 -
hive 三种启动方式及用途
1, hive 命令行模式,直接输入/hive/bin/hive的执行程序,或者输入 hive –service cli 用于linux平台命令行查询,查询语句基本跟mysql查询语句类似 2, hive web界面的启动方式,hive –service hwi 用于通过浏览器来访问hive,感觉没多大用途3, hive 远程服务 (转载 2016-11-20 22:18:07 · 5257 阅读 · 0 评论 -
hive列转行 (collect_all()/collect_list() 不去重)
collect_all() hive 0.12collect_list() hive 0.13一、问题hive如何将a b1a b2a b2c d1c d1d d2变为:a ["b1","b2","b2"]c转载 2016-11-17 20:26:51 · 10060 阅读 · 0 评论 -
hive-1.2.1安装
Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。 其优点是学习成本低,可以通过类SQL语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用,十分适合数据仓库的统计分析。 Hive是由Facebook贡献给Apache的开源项目,这原创 2016-11-16 18:38:22 · 752 阅读 · 0 评论 -
hive本地模式和远程模式
1.内嵌模式,特点是:hive服务和metastore服务运行在同一个进程中,derby服务也运行在该进程中。该模式无需特殊配置,参见老虎ppt即可。2.本地模式,特点是:hive服务和metastore服务运行在同一个进程中,mysql是单独的进程,可以在同一台机器上,也可以在远程机器上。该模式只需将hive-site.xml中的ConnectionURL指向mysql,并配原创 2016-11-16 18:27:52 · 3393 阅读 · 0 评论