`
flyfoxs
  • 浏览: 297752 次
  • 性别: Icon_minigender_1
  • 来自: 合肥
社区版块
存档分类
最新评论
文章列表
Drill用来查询Hbase,不需要预先定义Schema,十分方便.当时如果Hbase表过大会出现OOM(OUT OF MEMORY). 查询文档后,发现通过如下2个配置可以解决. 高亮的是系统的默认值.     SELECT * FROM sys.options WHERE type in ('SYSTEM','SESSION') and name in( 'planner.memory.max_query_memory_per_node', 'planner.width.max_per_node' ) order by name;      SET `planner.memory. ...
在Spark开发的时候,直接使用java.math.BigDecimal进行浮点相乘的时候,依然有精度缺失.但是如果是纯JAVA就没有,在Scala中调用JAVA的BigDecimal就有这样的问题.   偶然之间发现Scala也实现了scala.math.BigDecimal. 换用SCALA自身的BigDecimal就没这样的问题了.   不知道深层次的原因,在这抛砖引玉,如果有人知道的,请赐教.     下面是实验代码.   package com.cisco.test import java.math.BigDecimal object TestSyntax ...
必须使用高亮参数启动Spark-shell,否则当你遍历RDD时会出现如下的Exception java.io.NotSerializableException: org.apache.hadoop.hbase.io.ImmutableBytesWritable   spark-shell --conf spark.serializer=org.apache.spark.serializer.KryoSerializer   以下代码,经过MaprDB实测通过 import org.apache.spark._ import org.apache.spark.rdd.NewHa ...
使用Drill查询如果字段名有"点"或者其他特殊字符怎么办, 百度, GOOGLE查询良久也没找到,在官方文档里面偶然之间查到了,也就是Drill的逃逸符[`]. 下面是文档连接:https://drill.apache.org/docs/lexical-structure/ 下面是示例. select CONVERT_FROM(t.b.BUYER_ID, 'UTF8') AS BUYER_ID  , CONVERT_FROM(t.b.`computed.UNIT_PRICE`, 'UTF8') AS UNIT_PRICE , CONVERT_FROM(t.b.`it ...
最近偶然的因素,突然觉得这个格式很神奇,找了很多文章细读了一遍,特整理如下.   第一篇文章里面讲的很通俗,易懂.但是对于之前没有背景的,细节地方不好理解,因为里面的实例比较简单和真实案例差别比较大. 深入分析Parquet列式存储格式 http://www.infoq.com/cn/articles/in-depth-analysis-of-parquet-column-storage-format     第二篇文章里面的示例比较丰富,交叉比较来学习效果比较好.但是怎么持久化就没有说明. Dremel made simple with Parquet https://b ...
查看ThreadPoolExecutor的源代码时,发现了2个意思十分接近的变量(maximumPoolSize, largestPoolSize) .十分好奇,google,百度也无法得到答案.只好查看源码,现将结果分享出来.   maximumPoolSize:是一个静态变量,在变量初始化的时候,有构造函数指定.   largestPoolSize: 是一个动态变量,是记录Poll曾经达到的最高值,也就是 largestPoolSize<= maximumPoolSize.     分析过程:  maximumPoolSize 从构造函数就可以看到,这个值在构造函 ...

Hbase 笔记

    但一个CF被Flush时,其他相关的CF也会被同时Flush. 如果CF分配不均衡会导致很多小的HFile. Hbase的一条记录,只会由一个Region维护,即使有多个Column Family也不会跨越多个Region. Hbase的Memstore flush到 Hfile的触发条件有如下几种 WAL大小达到阀值  内存使用达到阀值,但是阀值有2种:                  一个是Region所在MemStore Size的和,而不是单个MemStore,这个达到后会阻塞数据的写入 另外一个是单个MemStore的大小     ...
    brew tap homebrew/versions brew install protobuf250   brew link --force --overwrite protobuf250 protoc --version
下面内容主要摘抄于<<Hadoop实战>>,红色高亮部分是本人添加的白话注释.      Zookeeper 是一种高性能、可扩展的服务。 Zookeeper 的读写速度非常快,并且读的速度要比写的速度更快。另外,在进行读操作的时候, ZooKeeper 依然能够为旧的数据提供服务。这些都是由于 ZooKeepe 所提供的一致性保证,它具有如下特点: 【Zookeeper提供的一致性是弱一致性,首先数据的复制有如下规则:zookeeper确保对znode树的每一个修改都会被复制到集合体中超过半数的机器上。那么就有可能有节点的数据不是最新的而被客户端访问到。并且 ...
在上一篇文章里面分析WebappClassLoader.loadClass,了解了Tomcat是如何打破双亲委派的. 有兴趣的可以参考. 细说Tomcat如何打破双亲委派(有源码和图)    但是上面的分析偏重于流程,没有分析ClassLoader是如何加按照顺序寻址,然后加载对应的Class到二进制流中.   WebappClassLoader.loadClass在违背双亲委派规则,自己寻址class文件时,就会调用下面的函数,函数已经添加了注释. 此函数依旧没有分析是如何寻址文件的,寻址文件的代码在findResourceInternal()中,它同时包括了对Jar,class, ...
ThreadPoolExecutor添加线程是通过 execute(Runnable command),此方法代码行数不多,但是由于太精炼了,不大好读懂,理解完之后,特写下笔记加深印象.   一句话解释: 如果BlockingQueue没有大小限制,如果在执行的线程个数小于corePoolSize,则自动执行,否则当前线程存入BlockingQueue.   备注:如果BlockingQueue有限制,超出的线程要么拒绝,要么抢跑直接执行(需要当前线程个数没有超过maximumPoolSize).   下面是具体的代码,已经添加注释,如果有问题欢迎大家指出.   //Thr ...
Hadoop所有的跨节点的通信都是通过RPC来通信的, RPC通信是需要创建Stub,一个好的RPC需要通过良好的设计确保了对上层调用的透明性. 我们下面就通过Hadoop里面最常用的心跳(JobTrack和TaskTracker)来研究一下Hadoop的RPC机制. 心跳函数的调用在方法:TaskTracker.transmitHeartBeat();在此方法中会调用下面的代码段.这个方法实际就不一个本地调用,jobClient实际上就是一个动态代理生成的对象,这个对象已经包括了RPC的Stub. // // Xmit the heartbeat // ...
在之前的Blog [http://flyfoxs.iteye.com/blog/2110463]  中讨论了, hadoop在文件切割时,可能会把一个行数据切割成无意义的2块. 如果不做特别处理,这会造成数据的失真及处理错误. 经人指点,发现这个BUG不存在.   Hadoop在分割文件后,后期读取中会通过一些规则来保证不会出现把一行数据分割成2行. 下面对这个后期处理机制(LineRecordReader)做一个分析:   1)数据分割是由JobClient完成,不是在hadoop集群完成.(并且这个是一个粗分,具体精确的还是依赖Mapper依赖如下规则) 2)数据的分割是由Jo ...
下面是hadoop发布版本, bin目录下面的hadoop命令的源码,hadoop命令支持好多种参数,一直记不住,想通过精度这部分代码,能记住部分参数.   #!/usr/bin/env bash # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding cop ...
1. 对象的状态在构造函数之后都不能被修改,任何修改应该通过创建一个新对象来实现. 2. 所有的对象属性应该都设置为final 3. 对象创建要正确,例如:对象的应用不能在构造函数中被泄露出去 4. 对象要设置为final,确保不要继承的Class修改了immutability特性   上面这些规则不是100%的不能打破,比如String对象hash属性就不是一个final对象,但是Sting依旧是一个immutability 的对象.因为它有其它机制来保证,只要Sting的内容不变,hash值就不会变.   参考:http://javarevisited.blogspot.c ...
Global site tag (gtag.js) - Google Analytics