Hive
韩王-信
无成有终含章可贞
展开
-
hive上删除列
hive上删除列 很简单 replace 就好,但是只是在元数据中删除了而已,其实并没有改动hdfs上的数据文件hive> select * from product;OKid name1 apple2 samsung3 moto1 apple执行删除列:hive> alter table p原创 2013-09-05 14:51:30 · 36775 阅读 · 1 评论 -
hive 优化笔记
第一部分:Hadoop 计算框架的特性 什么是数据倾斜 •由于数据的不均衡原因,导致数据分布不均匀,造成数据大量的集中到一点,造成数据热点 Hadoop框架的特性 •不怕数据大,怕数据倾斜 •jobs数比较多的作业运行效率相对比较低,比如即使有几百行的表,如果多次关联多次汇总,产生十几个jobs,耗时很长。原因是map reduce作业初始化的时间是比较长的转载 2013-12-19 15:10:41 · 612 阅读 · 0 评论 -
hive sql 优化
Hive是将符合SQL语法的字符串解析生成可以在Hadoop上执行的MapReduce的工具。使用Hive尽量按照分布式计算的一些特点来设计sql,和传统关系型数据库有区别,所以需要去掉原有关系型数据库下开发的一些固有思维。 基本原则:1:尽量尽早地过滤数据,减少每个阶段的数据量,对于分区表要加分区,同时只选择需要使用到的字段select ... from A join转载 2013-12-19 15:05:31 · 675 阅读 · 0 评论 -
hive数据倾斜总结
在做Shuffle阶段的优化过程中,遇到了数据倾斜的问题,造成了对一些情况下优化效果不明显。主要是因为在Job完成后的所得到的Counters是整个Job的总和,优化是基于这些Counters得出的平均值,而由于数据倾斜的原因造成map处理数据量的差异过大,使得这些平均值能代表的价值降低。Hive的执行是分阶段的,map处理数据量的差异取决于上一个stage的reduce输出,所以如何将数据均匀的转载 2013-12-19 14:45:43 · 629 阅读 · 0 评论 -
hive recover partition
在hive中表的分区是以子目录的形式存在的,而分区表的信息会存储到hive的元数据库中,但是如果是在HDFS 中hive目录下的某张表的目录下直接建立一个目录作为分区,则需要运行以下命令来让hive发现这个分区以更新元数据库MSCK REPAIR TABLE table_name;原创 2013-12-18 15:16:14 · 1232 阅读 · 0 评论 -
hive 维度表更新
因为hadoop/hive本质上不支持更新,所以hive不能够采用update行级别的维度数据的更新。可以采用的变通的方式我总结有以下三种。hive和hbase结合我认为这是首选的方式,hbase本质上也是不支持行级更新,只不过是追加行加上时间戳,然后取最新的时间戳的数据而已,但是对于我们来说是透明的。可以在hbase中建立一张表,然后在hive中也建立这张维度表,再hive中将这原创 2013-12-19 10:41:19 · 4459 阅读 · 0 评论 -
Hive优化
hive.optimize.cp=true:列裁剪hive.optimize.prunner:分区裁剪hive.limit.optimize.enable=true:优化LIMIT n语句hive.limit.row.max.size=1000000:hive.limit.optimize.limit.file=10:最大文件数1. 本地模式(小任务):需要满足以下条件:转载 2013-12-18 13:59:38 · 611 阅读 · 0 评论 -
hive 影响reduce 个数的参数
[root@hadoop ~]# hive -e "set" | grep reduceLogging initialized using configuration in jar:file:/usr/hadoop/hive-0.11.0/lib/hive-common-0.11.0.jar!/hive-log4j.propertiesHive history file=/tmp/ro原创 2013-10-24 15:13:44 · 1684 阅读 · 0 评论 -
Hive权限控制
关于hive的权限控制,有些建议的做法是为不同的user建立不同的conf目录配置不同metastore,而后不同的user使用hive时就能达到很好的数据隔离的目的,但是这样有一个严重的问题,假如一个超级user要操作的tables存在不同的metastore下那就很难在一个metastore下去调去另一个metastore的table。还不清楚权限控制这块在未来版本中有无比较好的改进,个人认为原创 2013-08-31 17:01:41 · 1023 阅读 · 0 评论 -
hive 类型转换
hive> select cast(19 as string) from org limit 1;原创 2013-09-02 09:33:10 · 3042 阅读 · 0 评论 -
hive 加载数据后在HDFS上的文件及其整合
.建一个表,没有任何数据,在hdfs 上也没有对应的数据文件hive> select * from product;OKid nameTime taken: 0.104 secondshive> dfs -ls /user/hive/warehouse/psi.db/product;hive>从本地加载一个文件到该表:hive> l原创 2013-09-05 14:45:26 · 4987 阅读 · 0 评论 -
hive 从输出流load文件
cat ts1 ts2 ts3 | hadoop fs -put - /user/leo/test123原创 2013-08-31 17:01:29 · 783 阅读 · 0 评论 -
hive 变量
1. 变量空间:hiveconf, system, and env. ,通常默认引用为 hiveconf hive> set a=weihongrao;hive> set a;a=weihongraohive> set hiveconf:a;hiveconf:a=weihongrao2. 通过shell变量传递:[leo@hadoop ~]$ a="'test*'"原创 2013-09-01 14:07:09 · 1234 阅读 · 0 评论 -
hive 检索表
我要搜索表名为test开头的表:有如下方法:1. 使用HQL 和shell[leo@hadoop ~]$ hive -e "use psi;show tables"|grep "^test"WARNING: org.apache.hadoop.metrics.jvm.EventCounter is deprecated. Please use org.apache.hadoop.log原创 2013-09-01 14:07:16 · 1003 阅读 · 0 评论 -
hive reduce 个数
hive在执行一个HQL产生的MR JOB的时候默认是以以下方式决定reducer的个数的,N=min(参数2,总输入数据量/参数1)第一个参数 默认为1000^3 : hive.exec.reducers.bytes.per.reducer第二个参数 默认为999 :hive.exec.reducers.max(默认为999)可以手动设置这个值set mapred.reduc原创 2013-12-27 10:27:24 · 760 阅读 · 0 评论