您现在的位置:首页
--> 阿里集团数据平台
什么样代码是简洁易懂, 这很难有个统一的标准, 因为它很大程度上决定于所在团队的编写风格(往往偏向于核心程序员). 正因如此, 本文仅仅呈现一下DSL的编码风格, 若你喜欢, 不妨在自己的实践中也试试; 不欣赏者, 只当浮云飘过吧。
今天在写code时,要调用thrift的TDeserializer.deserialize()方法,发现其提供的接口很不好用。会导致应用代码的多一次copy。 thrift源码如下: public void deserialize(TBase base, byte[] bytes) throws TException { base.read( protocolFactory_.getProtocol( new TIOStreamTransport( new ByteArrayInputStream(bytes)))); } 可以看出,这里只可以传如byte[]. 在应用程序中, 如果采用buffer复用,就会要导致buffer的不定...
在分布式的程序中,cache的合理使用可以带来性能上的极大提升,尤其是在资源创建需要昂贵的开销时。cache的设计最重要的是要保证线程安全和高效性。下面以代码为例,介绍了三种cache的写法。 1. 粗放的加锁 public class Cache1 { private HashMap route2SG = null; public Cache1() { route2SG = new HashMap(); } public synchronized ServerGroup get(String routeK...
在使用hive进行开发时,我们往往需要获得一个已存在hive表的建表语句(DDL),然而hive本身并没有提供这样一个工具。 要想还原建表DDL就必须从元数据入手,我们知道,hive的元数据并不存放在hdfs上,而是存放在传统的RDBMS中,典型的如mysql,derby等,这里我们以mysql为元数据库,结合0.4.2版本的hive为例进行研究。 连接上mysql后可以看到hive元数据对应的表约有20个,其中和表结构信息有关的有9张,其余的10多张或为空,或只有简单...
这篇文章主要讲解G++编译器中虚继承的对象内存分布问题,从中也引出了dynamic_cast和static_cast本质区别、虚函数表的格式等一些大部分C++程序员都似是而非的概念。
1 web服务器集群的使用和设置方法就不在这里重复了,这些东西随处都可以搜索的到。要说的是在Microstrategy 8.1.2 Web Universal中,使用集群要注意的几个方面。首先,状态的存取方式问题,可以使用session、也可以使用cookie。大部分是用的都是cookie存取,session存取是需要关注集群的session同步问题的,而cookie保存在客户端,没有太多的限制,比较方便。在管理员web设置的安全性选项中,默认会话信息是保存在Web Server上的...
Hive 是一个很开放的系统,很多内容都支持用户定制,包括: 文件格式:Text File,Sequence File 内存中的数据格式: Java Integer/String, Hadoop IntWritable/Text 用户提供的 map/reduce 脚本:不管什么语言,利用 stdin/stdout 传输数据 用户自定义函数: Substr, Trim, 1
Hive 针对不同的查询进行了优化,优化可以通过配置进行控制,本文将介绍部分优化的策略以及优化控制选项。 列裁剪(Column Pruning)在读数据的时候,只读取查询中需要用到的列,而忽略其他列。例如,对于查询: SELECT a,b FROM T WHERE e < 10; 其中,T 包含 5 个列 (a,b,c,d,e),列 c,d 将会被忽略,只会读取a, b, e 列这个选项默认为真: hive.optimize.cp = true 分区裁剪(Partition Pruning)在查询的过程中...
Hive 的官方文档中对查询语言有了很详细的描述,请参考:http://wiki.apache.org/hadoop/Hive/LanguageManual ,本文的内容大部分翻译自该页面,期间加入了一些在使用过程中需要注意到的事项。
摘要:由于 Hive 采用了 SQL 的查询语言 HQL,因此很容易将 Hive 理解为数据库。其实从结构上来看,Hive 和数据库除了拥有类似的查询语言,再无类似之处。本文将从多个方面来阐述 Hive 和数据库的差异。数据库可以用在 Online 的应用中,但是 Hive 是为数据仓库而设计的,清楚这一点,有助于从应用角度理解 Hive 的特性。 Hive 和数据库的比较 查询语言 HQL SQL 数据存储位置 HDFS Raw Device 或者 Local FS 数...
本文介绍了 Hive 的体系结构,元数据管理方式以及数据的管理方式
Hive 是什么在接触一个新的事物首先要回到的问题是:这是什么?这里引用 Hive wiki 上的介绍: Hive is a data warehouse infrastructure built on top of Hadoop. It provides tools to enable easy data ETL, a mechanism to put structures on the data, and the capability to querying and analysis of large data sets stored in Hadoop files. Hive defines a simple SQL-like query language, called [...]
做Microstrategy Web Universal的二次开发已有半年多的时间了,Web Universal有着非常强大的扩展性和可管理性,Web代码结构,不管与任何系统进行集成都非常方便。但是随着浏览器种类的增多和浏览器版本的差异,造成Web Universal中很多功能无法正常使用的问题,严重的影响了用户体验。虽然多数报表系统针对的用户群体不是很多,但是由于用户体验造成的影响是非常恶劣的,所以修复这些问题是关键。8.1.2版本的Web Universal由于时...
第一步:在Ubuntu下安装Postgresql sudo apt-get install postgresql-8.4 postgresql-client-8.4 postgresql-contrib-8.4 以上指令安装服务端和命令行客户端psql。 /user/lib/postgresql/8.4/ 存放postgresql相关的二进制文件 /user/lib/postgresql/8.4/bin/ 可执行文件 /user/lib/postgresql/8.4/lib/ 共享库文件 /etc/postgres/8.4/main/ 存放postgresql配置文
原理只是一个概念,可操作性不强,看了N多的半原理半细节的相关文章,却总是被各种各样的细节困惑住。为了自己下次能够快速的使用PostgreSQL,以流水帐的方式记录配置PostgreSQL集群的步骤,有些结论是自己猜想的或者引用的,以后发现错误再修正吧。顺便发些感想(跳过下面一段,都是题外话,其实就是废话):其实很多东西,从原理上说都很简单,几乎我们每个人都能说上一点。但是实际上,原理性的文章一般可操作行都不是很强。...
准备步骤:操作系统-Ubuntu10.04 第一步:下载源码到官网www.postgresql.org去下载8.4.4版本的源码,我的下载地址是ftp://ftp2.cn.postgresql.org/postgresql/source/v8.4.4/postgresql-8.4.4.tar.gz 我的保存路径为:/home/jiwan/postgresql/postgresql-tar/postgresql-8.4.4.tar.gz 你可以存放到任意想存放的地方。第二步:解压源码 cd /home/jiwan/postgresql tar -xvf postgresql-tar/postgresql-8.4.4.tar.gz mv postgres...
需求概要 BO报表嵌入Iframe框架中,在IE下功能正常,firefox下功能错误。主要原因,由于BO报表内嵌的frame元素较多,ie和firefox对读取iframe元素的js操作存在差异导致解决方法,修改js的相关方法,以达到不同浏览器的兼容
数据平台的源数据,很大部分来源于日志。一说到日志扫描和解析,不可避免就涉及到正则表达式匹配,没有了正则表达式,日志的匹配就很难做到自动化和高效。在日志匹配中,有种常见的匹配情形,叫“不包含”。就是说,我们希望这条日志,在匹配某个通用特征的情况下,又不包含某个特征,例如说: A pig is running. 我们希望匹配到所有带pig的日志,但是我们不希望匹配到pig带running的日志。而我们不希望改程序,扫描或者解析2次,...
使用Hive可以高效而又快速地编写复杂的MapReduce查询逻辑。但是某些情况下,因为不熟悉数据特性,或没有遵循Hive的优化约定,Hive计算任务会变得非常低效,甚至无法得到结果。一个”好”的Hive程序仍然需要对Hive运行机制有深入的了解。有一些大家比较熟悉的优化约定包括:Join中需要将大表写在靠右的位置;尽量使用UDF而不是transfrom……诸如此类。下面讨论5个性能和逻辑相关的问题,帮助你写出更好的Hive程序。全排...
1.在Eclipse下的hadoop mapred调试对于小数据量的调试,可以再本机下载并安装cywin,之后将cywin的bin目录添加到系统的Path环境变量中,将hadoop的core包添加到classpath中。此时就可以在Eclipse下调试你的mapred程序,这时hadoop是在local模式下运行的,如果把hadoop的源代码关联进来,你还可以在他的内部处理中设置断点。 2. master重启出问题之前使用hadoop过程中遇到过几次由于任务执行过程中,某些slave宕机了,然后重启集...
近3天十大热文
- [68] Twitter/微博客的学习摘要
- [67] IOS安全–浅谈关于IOS加固的几种方法
- [65] 如何拿下简短的域名
- [64] android 开发入门
- [63] find命令的一点注意事项
- [61] Go Reflect 性能
- [60] 流程管理与用户研究
- [59] Oracle MTS模式下 进程地址与会话信
- [58] 图书馆的世界纪录
- [57] 读书笔记-壹百度:百度十年千倍的29条法则
赞助商广告