- 浏览: 111875 次
- 性别:
- 来自: 深圳
最新评论
-
土豆蛋儿:
我想读取一个外部文件,以什么方式好了? 文件内容经常编辑
flume 自定义source -
土豆蛋儿:
大神,您好。
flume 自定义source
文章列表
环境配置:
hadoop-2.0.0-cdh4.3.0 (4 nodes, 24G mem/node)
hbase-0.94.6-cdh4.3.0 (4 nodes,maxHeapMB=9973/node)
hive-0.10.0-cdh4.3.0
一、查询性能比较:
query1:
select count(1) from on_hdfs;
select count(1) from on_hbase;
query2(根据key过滤)
select * from on_hdfs
where ...
hbase 布隆过滤器
- 博客分类:
- hbase
布隆过滤器:
1.原理?
数据块索引提供了一个有效的方法,在访问一个特定的行时用来查找应该读取的HFile的数据块。但是它的效用是有限的。HFile数据块的默认大小是64KB,这个大小不能调整太多。
如果你要查找一个短行,只在整个数据块的起始行键上建立索引无法给你细粒度的索引信息。例如,如果你的行占用100字节存储空间,一个64KB的数据块包含(64 * 1024)/100 = 655.53 = ~700行,而你只能把起始行放在索引位上。你要查找的行可能落在特定数据块上的行区间里,
但也不是肯定存放在那个数据块上。这有多种情况的可能,或者该行在表里不存在,或者存放在另一个HFile里 ...
hbase 自定义filter
- 博客分类:
- hbase
base自带的filter已经很多了,按照RK,CF,CQ过滤的都有
我最常用的PrefixFilter,按照rk前缀
RowFilter,按照rk比较
ColumnPrefixFilter,按照cq前缀
QualifierFilter,按照cq比较
hbase还有一堆WritableByteArrayComparable,可以满足各种比较
比如RegexStringComparator可以使用正则
但是在实际业务中,因为需求对数据要求是多样,对维度的,且数据是冗余,残缺,不可靠,不能枚举的。
所以自定义的Filter还是有用的,而且选择正确的方法继承,查询效率也可以 ...
HBase性能优化方法总结(四):数据计算
- 博客分类:
- hbase
HBase性能优化方法总结(四):数据计算
本文主要是从HBase应用程序设计与开发的角度,总结几种常用的性能优化方法。有关HBase系统配置级别的优化,可参考:淘宝Ken Wu同学的博客。
下面是本文总结的第四部分内容:数据计算相关的优化方法。
4. 数据计算
4.1 服务端计算
Coprocessor运行于HBase RegionServer服务端,各个Regions保持对与其相关的coprocessor实现类的引用,coprocessor类可以通过RegionServer上classpath中的本地jar或HDFS的classloader进行加载。
目前,已提供有几种coproce ...
HBase性能优化方法总结(三):读表操作
- 博客分类:
- hbase
HBase性能优化方法总结(三):读表操作
本文主要是从HBase应用程序设计与开发的角度,总结几种常用的性能优化方法。有关HBase系统配置级别的优化,可参考:淘宝Ken Wu同学的博客。
下面是本文总结的第三部分内容:读表操作相关的优化方法。
3. 读表操作
3.1 多HTable并发读
创建多个HTable客户端用于读操作,提高读数据的吞吐量,一个例子:
复制代码
static final Configuration conf = HBaseConfiguration.create();
static final String table_log_name = “user_log” ...
HBase性能优化方法总结(二):写表操作
- 博客分类:
- hbase
HBase性能优化方法总结(二):写表操作
本文主要是从HBase应用程序设计与开发的角度,总结几种常用的性能优化方法。有关HBase系统配置级别的优化,可参考:淘宝Ken Wu同学的博客。
下面是本文总结的第二部分内容:写表操作 ...
HBase性能优化方法总结(一):表的设计
本文主要是从HBase应用程序设计与开发的角度,总结几种常用的性能优化方法。有关HBase系统配置级别的优化,可参考:淘宝Ken Wu同学的博客。
下面是本文总结的第一部分内容:表的设计相关的优化方法。
1. 表的设计
1.1 Pre-Creating Regions
默认情况下,在创建HBase表的时候会自动创建一个region分区,当导入数据的时候,所有的HBase客户端都向这一个region写数据,直到这个region足够大了才进行切分。一种可以加快批量写入速度的方法是通过预先创建一些空的regions,这样当数据写入HBase时,会按照r ...
Apache HBase快照介绍
分享到: 6
本文由 ImportNew - 陈 晨 翻译自 Cloudera。欢迎加入翻译小组。转载请参见文章末尾的要求。
CDH是Cloudera的完全开源分布式Apache Hadoop及相关项目(包括Apache HBase)。CDH的当前版本(4.2)引入的一个HBase ...
hbase 日常维护
- 博客分类:
- hbase
一,基本命令:
建表:create 'testtable','coulmn1','coulmn2'
也可以建表时加coulmn的属性如:create 'testtable',{NAME => 'coulmn1', BLOOMFILTER => 'NONE', REPLICATION_SCOPE => '0', VERSIONS => '10', COMPRESSION => 'LZO', TTL => '30000', IN_MEMORY ...
在上一节分析了TaskTracker和JobTracker之间通过周期的心跳消息获取任务分配结果的过程。中间留了一个问题,就是任务到底是怎么分配的。任务的分配自然是由JobTracker做出来的,具体来说,存在一个抽象类:TaskScheduler,主要负责分配任务,继承该类的有几个类:
CapacityTaskScheduler、FairScheduler、JobQueueTaskScheduler(LimitTasksPerJobTaskScheduler又继承于该类)。
从名字大致可以看出,CapacityTaskScheduler应该是根据容量进行分配,FairScheduler实 ...
链接:http://www.alidata.org/archives/2109
数据倾斜总结
在做Shuffle阶段的优化过程中,遇到了数据倾斜的问题,造成了对一些情况下优化效果不明显。主要是因为在Job完成后的所得到的Counters是整个Job的总和,优化是基于这些Counters得出的平均值,而由于数据倾斜的原因造成map处理数据量的差异过大,使得这些平均值能代表的价值降低。Hive的执行是分阶段的,map处理数据量的差异取决于上一个stage的reduce输出,所以如何将数据均匀的分配到各个reduce中,就是解决数据倾斜的根本所在。规避错误来更好的运行比解决错误更高效。在查看了 ...
总结分析:
1. 定义了桶,但要生成桶的数据,只能是由其他表通过insert into 或是insert overwrite ,若表有分区只能使用insert overwrite
2. 定义桶可以使用整型字段或是string类型字段
3. 若表没有定义桶也可以进行随机抽样
4. 必须先set hive.enforce.bucketing = true才可以将数据正常写入桶中, 若没有使用hive.enforce.bucketing属性, 则需要设置和分桶个数相匹配的reducer个数, 同时SELECT后添加CLUSTER BY
深入了解Hive Index具体实现
- 博客分类:
- hive
索引是标准的数据库技术,hive 0.7版本之后支持索引。hive索引采用的不是'one size fites all'的索引实现方式,而是提供插入式接口,并且提供一个具体的索引实现作为参考。Hive的Index接口如下:
复制代码
public interface HiveIndexHandler extends Configurable {
/**
* Determines whether this handler implements indexes by creating an index
* table.
*
* @return true if inde ...
explain hive index
- 博客分类:
- hive
设置索引:
使用聚合索引优化groupby操作
hive> set hive.optimize.index.groupby=false;
自动使用索引
hive> set hive.optimize.index.filter=true;
设置自动使用索引的最小输入字节数
hive>set hive.optimize.index.filter.compact.minsize=64
注意 hive.optimize.index.groupby必须设置生false,不然 hive.optimize.index.filter不起作用。
...
Hadoop工作流引擎之Azkaban
- 博客分类:
- Azkaban
Hadoop工作流引擎之Azkaban
Edit
介绍
Azkaban是twitter出的一个任务调度系统,操作比Oozie要简单很多而且非常直观,提供的功能比较简单。Azkaban以Flow为执行单元进行定时调度,Flow就是预定义好的由一个或多个可存在依赖关系的Job组成的工作流。Azkaban的官方主页是http://azkaban.github.io/azkaban2/ ,它的的主要特点有下面几个:
兼容所有Hadoop版本(1.x,2.x,CDH)
可以通过WebUI进行管理配置,操作方便
可以通过UI配置定时调度
扩展性好,可针对某一问题开发组件(目前有三个插件HDFSBrowse ...