- 博客(26)
- 资源 (8)
- 收藏
- 关注
原创 Spark Streaming 数据接受 导入到内存 生成Block的过程
1. 数据接受,生成Block 流程streamingContext启动时,会启动ReceiverTracker, 它会将需要启动的Receiver分发到Executor上,Executor上的ReceiverSuperviser会负责Receiver的启动,停止,重启管理(后续有详细文章描述:如何分发,启动等)。Receiver上的store(Item),实际调用ReceiverSupervi
2016-01-05 17:57:34 752
原创 OpenTSDB PreSplit Table
Reference Issure Ref2如果metric热度相差不大,即没有某些metric的time series特别多,比如百万级别,而某些metric的time series特别少,比如千级别。 pre split 设计可以如下: start key: \x00\x00\x01 end key: \x00\x08\x00 // 假设有2048个metrics
2016-01-05 17:51:58 1339 2
原创 OpenTSDB 存储容量估算 以及 建表方式
容量估算根据 Rowkey以及表设计,进行存储容量估算的方式,大致如下: rowkey: metric_name + ts + tag_name + tag_value …..确定metric_name的个数: m 确定tag_name: tag1 tag2 tag3 tag4….tagN 确定tag_value的个数: t1 t2 t3 t4 ….tn
2016-01-05 17:48:28 4448 1
原创 OpenTSDB TroubleShooting
1. OpenTSDB compactions 触发很大的.tmp文件 和 RegionServer crash.在默认的情况下,TSD会缓存一个metric在一个小时内的数据,然后组合数据一次性刷写到HBase。 如果时间戳使用的ms级别,那么一次性刷写会导致巨大量的流量到HBase, 数量庞大的qualifier和rowkey会达达超过hfile.index.block.max.size形成大量
2016-01-05 17:46:32 1517
原创 OpenTSDB 使用时 推荐配置
OpenTSDB所有的配置都在 link. 这里列出来的配置基本都有默认值,但是有些需要根据环境和性能做出改变,具体如下表: 配置项 默认值 描述 修改值 tsd.core.preload_uid_cache false 是否在TSD启动的时候,预热UID缓存数据,为了提升性能,需要开启 true tsd.core.auto_create_metrics fal
2016-01-05 17:45:24 6567
原创 OpenTsdb 写入数据
1. 关于 Metrics, value, tag name, tag valueopentsdb的每个时间序列必须有一个metric和一个或多个tag对,每个时间序列每小时的数据保存一行。opentsdb的metrics, tag name, tag value的编码长度都是3byte, 所以UID的数量上限为 2^24 个。编码长度可以扩展到 8byte,即2^64 个, 一般不建议修改。
2016-01-05 17:43:31 4595 1
原创 OpenTsdb 核心设计
RowKey设计openTsdb的rowkey设计充分利用了HBase中索引信息仅在rowkey中的特点,它将指标metric,时间戳,数据值,tag标签名,tag标签值都包含在rowkey中,具体的设计如下图所示: 如上图按照metric_name timestamp tagk tagv的顺序链接起来形成rowkey, 同时考虑到metric_name, tagk, tagv在连续不同时间存储的
2016-01-05 17:41:32 2839 2
原创 Spark DataFrame 介绍
DataFrame的目标是让开发大数据的并行程序更加简单,受众更加广泛。DF受R & Python(Pandas)启发,被设计成支持 Big Data & Data Science Application. 作为RDD API的扩展,他的特性如下: * 高扩展性 * 广泛支持各种数据格式 & 存储系统 * Spark Sql Catalyst Optimizer提供执行优化和代码生成 * 和
2016-01-05 17:35:08 1426
原创 spark 1.6 preview
A new Dataset APIAutoatic memory configurationOptimized state storage in Spark StreamingPipeline persistence inSpark MLA new Dataset APIRDD API 使用非常灵活,但是在某些case下,比较难于优化执行。DataFrame API内部执行虽然有优化,但是la
2015-12-29 17:43:52 551
原创 Spark Sort Based Shuffle 流程简单分析
写文件大致路径写文件大致路径入口是:ShuffleMapTask.runTask()val manager = SparkEnv.get.shuffleManagerwriter = manager.getWriter[Any, Any](dep.shuffleHandle, partitionId, context)writer.write(rdd.iterator(partition, co
2015-12-25 21:03:49 1188
原创 Spark Sort Based Shuffle 内存使用情况
Spark Shuffle Write 调用链:ShuffleMapTask ---> SortShuffleManager ---> SortShuffleWriter ---> ExternalSorter在ExternalSorter发生了分区数据写内存、聚合、Spill、Merge、写文件操作。这里的内存结构为:PartitionedAppen
2015-12-25 20:55:36 659
原创 HBase Zookeeper 机器磁盘老是打满的故障分析与解决办法
最近连续两次发现凌晨5点的时候,zk机器磁盘打满导致zk进程挂掉,从而造成hbase集群不可用的事故。 通过分析发现,zk进程一直在写log到文件log.31001e217b, 写这个文件主要是zk将保存的状态信息的操作日志写入到文件中持久化,通过如下的命令查看该日志文件可以发现是什么运用在不停地更新zk中的状态:export ZOOKEEPER_CLASSPATH=/usr/local/hadoo
2015-05-15 16:00:08 2025
原创 HBase 压力测试
测试环境:3台RegionServer,每台的配置如下:cpu: 32 coremem: 48 GB,每台RS分配16GBRSRPC Handler: 300
2014-09-05 15:54:55 2396
原创 HBase Capacity Planning
1. Physical data sizeGanglia监控disk存储状态2. JVM GC Lmitations考虑到GC问题,RS的maxheap size一般推荐设置为16GB左右3. Region count & size估算region数量的Formula:(RS memory)*(totalmemstore fraction)/((memstore siz
2014-07-30 18:46:06 788
原创 华为HBase 二级索引调研
1.Overall Solution解决思想:一个user table对应一个index tableindex的创建与更新全部在RS端的cp-processor里实现核心思想:一个actual region对应一个index region一对一的mapping,且两者必须在同一个RS上执行balance,split操作后,受影响的actu
2013-11-04 18:53:44 2159 1
翻译 HBase Snapshot简介
在HBase Snapshot出现之前,备份或者克隆table必须使用 Copy/Export Table工具,或者是 disable table,然后拷贝所有的HFiles。前者起MapReduce作业对RegionServer的压力太大,后者需要disable掉table,这就阻塞了读写。 而Snapshot就可以允许admin在没有数据copy和对RS影响很小的情况下cl
2013-10-11 19:11:48 1540
原创 编写MapReduce程序访问HBase 遇到的问题与解决方法
根据工作需求,需要测试 MapReduce 程序访问HBase 的性能。由于本人面对MapReduce,HBase都是新手,所以在这个过程中遇到了很多问题,主要如下 :MapReduce 程序如何引用第三方 jar 包MapReduce 访问HBase 的安全认证问题 (kerberos)Hadoop HBase 的conf文件的设定问题
2013-08-14 19:05:20 2774
转载 写好Hive程序的5个提示 (转载just for study later...)
使用Hive可以高效而又快速地编写复杂的MapReduce查询逻辑。但是某些情况下,因为不熟悉数据特性,或没有遵循Hive的优化约定,Hive计算任务会变得非常低效,甚至无法得到结果。一个”好”的Hive程序仍然需要对Hive运行机制有深入的了解。 有一些大家比较熟悉的优化约定包括:Join中需要将大表写在靠右的位置;尽量使用UDF而不是transfrom……诸如此类。下面讨论5
2013-07-24 15:11:10 664
写好Hive程序的5个提示 (转载just for study later...)
使用Hive可以高效而又快速地编写复杂的MapReduce查询逻辑。但是某些情况下,因为不熟悉数据特性,或没有遵循Hive的优化约定,Hive计算任务会变得非常低效,甚至无法得到结果。一个”好”的Hive程序仍然需要对Hive运行机制有深入的了解。 有一些大家比较熟悉的优化约定包括:Join中需要将大表写在靠右的位置;尽量使用UDF而不是transfrom……诸如此类。下面讨论5个性...
2013-07-24 15:11:00 96
原创 HBase compact 总结 及 调优配置
1 Compaction介绍在HBase中,每当memstore的数据flush到磁盘后,就形成一个storefile,当storefile的数量越来越大时,会严重影响HBase的读性能 ,所以必须将过多的storefile文件进行合并操作。Compaction是Buffer-flush-merge的LSM-Tree模型的关键操作,主要起到如下几个作用:(1)合并文件(2)清除删除、过
2013-07-18 19:24:42 21090 3
HBase compact 总结 及 调优配置
1Compaction介绍 在HBase中,每当memstore的数据flush到磁盘后,就形成一个storefile,当storefile的数量越来越大时,会严重影响HBase的读性能,所以必须将过多的storefile文件进行合并操作。Compaction是Buffer-flush-merge的LSM-Tree模型的关键操作,主要起到如下几个作用:(1)合并文件(2)清除...
2013-07-18 19:24:00 944
Openstack“单镜像多实例”的启动机制
KVM基础映像,openstack中的映像管理 kvm中有一个基础映像的概念(base iamge),我们可以以基础映像为基础,构建不同的虚拟机映像。通过基础映像的使用,我们可以避免将时间都花在操作系统的安装上。1、基础映像 基础映像的概念非常简单,类似于增量备份,或者copy on write。首先我们创建一个镜像文件A,在A上安装一个全新的操作系统。之后通过...
2012-11-08 16:37:00 299
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人