- 博客(144)
- 资源 (3)
- 收藏
- 关注
原创 编译安装grpc
环境是ubuntu18.04,系统默认的cmake3.10.参考grpc的文档即可:https://github.com/grpc/grpc/blob/v1.32.0/BUILDING.md将url中v1.32.0改成要安装的版本,不同版本的安装可能不一样。把Pre-requisites里的东西装全了,比如llvm,以后做code generation之类的还有用。然后从git把对应release版本的代码以及submodule拉下来,按照Building with CMake做。由
2021-02-04 10:59:19
531
原创 安装系统后新建swap分区的方法
1. 关闭现有的swap:# swapoff -a2. 用parted创建swap分区,type为linux-swap.3. 初始化并挂在swap:# mkswap /dev/sdX# blkid /dev/sdX# sudo swapon -U UUID其中sdX为第2步中创建的分区,如sdc1,UUID为mkswap或者blkid显示的该swap分区的UUID.4. 在/etc/fstab...
2018-06-02 19:26:01
1721
原创 ORC源码阅读(2) - OrcProto
读了mapreduce module之后,对orc的代码有了大概的了解,其实顺着RecordReader、Write和OrcFile、OrcStruct往下读就会有很多和protocol buffers有关的东西。其实如果对orc没有基本了解的话,应该先结合orc的文档读一下proto文件,这个文件在orc源码的proto目录下,文件名为orc_proto.proto。orc使用protocol b
2017-07-28 18:23:27
2990
2
原创 ORC源码阅读(1) - mapreduce module
ORC原来是作为Hive源码一部分的,先在独立出来成为Apache顶级项目,最新的Hive版本中也已经不再使用内置的ORC实现。但是在一些其他的系统,比如Presto中,依然有自己的Reader实现,但是和Apache的类似,只是代码风格和实现细节做了一些优化。我们项目打算基于最新的apache ORC源码做二次开发。ORC源码也是Maven管理的,clone下来之后,用intellij打开java
2017-07-27 17:56:20
2327
1
原创 CarbonData源码阅读(3) - core代码结构概览
读过Carbondata Presto Connector和Hadoop module之后,其实对CarbonData core已经大概了解了一下,这里梳理一下。CarbonData因为特性比ORC多,加之目前还不成熟,所以代码读起来不如ORC容易。由于赶项目进度,打算先在ORC基础上做系统实现,之后再考虑往CarbonData迁移。CarbonData也还会继续读下去。这里当做笔记,慢慢写。 [
2017-07-27 15:10:47
955
原创 CarbonData源码阅读(2)-Hadoop InputFormat
Presto Integration之前已经读过了:http://blog.youkuaiyun.com/bhq2010/article/details/72972278 这个里面沿着CarbondataPlugin –> CarbondataConnectory –> CarbondataConnector –> CarbondataMetadata (以及org.apache.carbondata.pre
2017-07-09 17:50:05
1025
原创 Carbondata源码阅读(1) - Carbondata Presto Connector
Carbondata Presto Connector好久没有写博客了。 最近开始读Apache Carbondata的源码,从presto connector开始读。因为一方面对scala和Spark源码不熟,另一方面是正在做的研究课题是以presto为基础的。其实carbondata对spark的支持比较好,在源码中有一万多行的scala代码是专门给spark写的一些元数据缓存和查询
2017-06-10 22:15:25
2825
原创 yum使用代理
Centos系统,在/etc/yum.conf文件中加入一行:proxy=http://hostname or ip:port即可。如果用的是squid做代理,默认端口号是3128
2015-05-05 18:50:25
1379
原创 Spark parquet merge metadata问题
在spark sql 1.2.x当中存在一个问题:当我们尝试在一个查询中访问多个parquet文件时,如果这些parquet文件中的字段名和类型是完全一致的、只是字段的顺序不一样,例如一个文件中是name string, id int,另一个文件是id int, name string时,查询会报错,抛出metadata merge的异常。在1.3当中,这个问题其实已经解决。那么在1.2.
2015-05-05 13:03:36
4091
原创 Spark中配置Parquet参数
Parquet的参数,例如block size、压缩格式等,需要spark contex对象上调用setHadoopConf来设置。
2015-05-04 10:20:38
4957
原创 Centos6使用latex
首先安装latex:# yum install tetex然后就可以使用了,参考http://stackoverflow.com/questions/1017055/get-started-with-latex-on-linux我安装之后没有xdvi,只有一个xdvipdfvm,这个可以生成pdf,直接使用pdflatex也可已生成pdf。之后,安装个editor更方便。可
2015-05-04 10:17:02
2553
原创 Hive Parquet配置
parquet的配置主要包括:parquet.compression.codecparquet.block.sizeparquet.page.size等,详见:https://github.com/Parquet/parquet-mr/blob/master/parquet-hadoop/src/main/java/parquet/hadoop/ParquetOutputFor
2015-01-30 22:43:55
14580
原创 Java并发与同步
Java中并发的形式无非是多线程和多进程两种形式。这两种形式都是可以利用多核来发挥计算能力的。先说并发:多进程意味着同时运行多个JVM,这个代价通常比多线程高,每个JVM都有自己的堆栈、都要分别加载各自的类。但是多进程的好处是“隔离性”更好,一个JVM中的程序在运行时发生故障不会对其他JVM产生很大的影响。而在多线程的情况下,一些致命错误可能导致整个JVM挂掉,祸及全体。多线程可以方便地共
2014-11-12 01:36:17
5097
原创 HDFS 上传文件不均衡和Balancer太慢的问题
向HDFS上传文件,如果是从某个datanode开始上传文件,会导致上传的数据优先写满当前datanode的磁盘,这对于运行分布式程序是非常不利的。解决的办法:1、从其他非datanode节点上传可以将hadoop的安装目录复制一份到一个不在集群中的节点(直接从非datanode的namenode上传也可以,但是这样不太好,会增加namenode的负担,并且时间长了会让namenode
2014-11-07 15:00:27
11061
原创 HDFS Safemode问题
处于safemode的集群是无法接收任何写操作的,包括创建目录、删除文件、修改文件、上传文件等等。关于safemode,在http://www.iteblog.com/archives/977中讲的比较详细了。hdfs集群在启动和关闭的时候一般会有一段时间处于safemode,如果集群中出现了大量的block副本数量低于配置的副本数据量(这个副本数量的配置并不一定是在hdfs的配置文件中配的,
2014-11-07 13:10:56
4836
原创 [impala]cloudera-scm-server dead but pid file exists问题解决
用impala做实验遇到了cloudera-scm-server dead but pid file exists问题。问题发生的经过是这样的:首先我在单机配置的为2核4GB内存的5台虚拟机上安装了cloudera manager,然后用它安装了cdh和impala然后一切都是正常的,我就往集群的hdfs里面导入了100GB的数据然后一切仍然是正常的,可是突然有一天,clouder
2014-03-08 10:32:58
25665
3
原创 众核上的数据仓库并行优化
近几年众核硬件逐渐被应用到数据仓库产品当中。目前主要的众核硬件包括以Intel SCC为代表的众核CPU、以Intel志强融核系列为代表的众核协处理器、以NVIDIA和AMD为代表的众核GPU。本文第一章介绍目前的主要的众核硬件及其特性,并从性价比和通用性方面对众核硬件进行比较;第二章介绍目前数据仓库中典型操作符在众核硬件上的优化技术。1. 主要众核硬件1.1. 多核CPU多核的CPU
2014-01-09 08:12:10
2522
原创 hive mapred.job.tracker设置
在cdh-hive0.10中建rcfile存储格式的表,发现hive启动了一个local hadoop来进行格式转换,也就是用一个单机版的mapreduce来做。奇慢无比。解决办法如下:进入hive cli之后,执行:hive> SET mapred.job.tracker=impala11:8021其中impala11:8021是hadoop jobtracker的主机名和端口。
2013-12-01 23:29:01
4140
原创 Infobright安装
环境:Centos 6.4_x86_64步骤:1、下载 http://www.infobright.org/downloads/ice/infobright-4.0.7-0-x86_64-ice.rpm换到root用户:# rpm -i infobright_version_name.rpm2、激活infobright# /usr/local/infob
2013-11-08 20:32:00
4129
原创 expect实现ssh无密钥登陆
一年多钱就用过expect,当时写了个用expect实现ssh无密钥登陆的脚本,后来弄丢了。今晚和同学一起装了个100个节点的集群,实在是恶心了,于是又温习了一遍。我用了两个脚本,一个bash脚本,在其中调用另外一个expect脚本,下面献丑了:bash脚本:#!/bin/bashssh-keygen -t dsafor (( i = 1; i <= 100 ; i ++
2013-10-19 01:45:58
6199
原创 Postgresql学习笔记【3】-pg的进程
pg的服务进程在操作系统中的名字都叫postgres,pg在多用户模式下启动后,用pidof postgres命令可以看到至少6个进程id。但其实,pg的进程结构是:单用户模式下只有1个进程postmaster多用户模式下,有一个postmaster进程,它会启动几个辅助进程,如:SysLogger(负责系统日志)PgStat(负责收集数据的统计信息)AutoVacuum(
2013-10-15 12:14:29
4680
原创 Java数组与泛型
Java中不能创建泛型数组,例如不能这样写:ArrayList[] as = new ArrayList[10];原因是:Java中的泛型并不像C++那样会在编译时实例化成具体的类,或者说Java中的泛型是“伪泛型”。对于一个泛型,程序无法获得它的具体的参数类型,也就是说:ArrayList a = new ArrayList();声明a之后,你没法检查a的
2013-10-12 17:05:48
3849
2
原创 postgresql学习笔记【2】-pg的文件与目录
打算在刚开始的时候参考《Postgresql数据库内核分析》和PG的文档来学习。先了解了一下安装和启动pg之后,pg会在一台机器上创建那些文件和目录。了解目录和文件之前,先看了一下pg的架构。pg采用的是常见的C/S架构,服务器端叫做postgres(服务器端的主程序和进程都叫这个名字,启动pg之后在服务器上至少可以看到6个postgres进程,对应于pg的几个主要的模块,并且每增加一个客户端
2013-10-07 16:29:06
9631
原创 postgresql学习笔记【1】-Linux+eclipse+gdb调试postgresql源码
pg内核源码解析课上用的vs调试pg源码,VS用起来确实方便,但是配置调试环境着实有点麻烦。首先得装个windows系统,最好是xp,win7稍微麻烦点;最好使用vs05,08和10也可以,但是比05还麻烦;此外还得装个perl,最好再装上cygwin以及其他一大堆linux上原生的东西。然后才能生成vs的工程,生成工程保不准会遇上一些参数配置问题。关键是pg很多都是跑在linux上的啊,在w
2013-09-30 19:46:22
3394
原创 CentOS mirrorlist导致的OpenStack 镜像制作失败
前段时间参考如下方法做了一个Centos6.4的镜像很顺利:https://github.com/globocom/references/wiki/Building-a-CentOS-6.2-image-for-openstack [1]其实顺利的原因在于6.4是目前版本最新的CentOS。相信当时那个作者写那篇文档的时候,最新的版本是6.2.在完成Install the OS这
2013-09-29 11:17:26
1999
原创 Hadoop学习笔记【12】-Hadoop2.1全分布式集群安装
1. 环境5个节点,配置如下:dual core x86_64, 4GB RAM, 10GB DiskCentos 6.4_x64OpenJDK 1.7.0_9hadoop-2.1.0-beta互相之间千兆网连接。每台机器上用于安装和启动hadoop的用户名都是xc节点的hostname、安装的服务和ip如下:hostname安装服务ip
2013-09-23 22:23:29
4891
2
原创 在OpenStack虚拟机实例中创建swap分区的一种方法
测试组里一个同学负责MapR的搭建,MapR文档中建议每个节点上至少有24GB的swap分区,不知道MapR为啥会有这种反人类的建议……swap无非就是一块顺序读写的磁盘空间,莫非省着内存不用,用swap能提高效率?也许它用swap来存map-reduce的临时文件?可是既然这么建议了,只好照办,毕竟我们对MapR也不熟悉。要让OpenStack的实例中有swap分区,可以在镜像中加,但是
2013-07-13 20:01:33
3053
原创 为OpenStack制作CentOS镜像的一种方法
Ubuntu和Fedora都有官方的系统镜像,偏偏CentOS没有,网上能找到一些也都不甚靠谱,加之在我们自己的项目中有一些需要自己定制的东西,所以还是自己做镜像比较合适。为OpenStack制作CentOS系统镜像,官方的在线文档以及网上很多资料中给出了一种方法,即利用virt-install或者kvm创建虚拟机之后通过vnc安装系统、配置系统参数,最后上传到OpenStack中,参考:
2013-07-13 16:36:20
9858
原创 获取CentOS软件源中的updates包
之前在本地网络中建了一个CentOS软件源,挺好用的,可是发现有些软件还是装不上,因为系统安装盘中的包并不全,有些软件的依赖在updates源中,updates源在网上,怎么把其中的包拿到呢?一种方法,当然也是最最正常的方法,就是做个计划任务,定时从CentOS官方镜像站中同步。可是我们也就是在本地用用,不需要同步,于是写了个Java程序,找了个速度比较快的镜像(东北大学的,写程序的时候北理工
2013-07-13 14:11:13
2173
翻译 OpenStack的两种存储设备
原文:http://docs.openstack.org/grizzly/openstack-compute/admin/content/storage-and-openstack-compute.html翻译:OpenStack提供两种块存储: ephemeral storage和volumes storage.ephemeral storage 具有和实例相同的生命周期,重启实例并
2013-07-12 01:10:48
3701
原创 通过openssh远程登录时的延迟问题解决
Linux下的ssh 服务器一般用的都是open-ssh,可是发现有些时候通过ssh连接服务器时总会有大概10秒钟左右的延迟。一开始以为是openssh的安全策略,防止端口扫描,后来发现自己想多了。解决方法如下:修改服务器上的/etc/ssh/sshd_config文件,注意是sshd_config,不是ssh_config。将其中的UseDNS一行的注释去掉,改为:UseDNS
2013-07-04 14:14:27
2529
原创 CentOS /usr/libexec/gconf-sanity-check-2 exited with status 256问题解决
昨晚上给三台服务器挂上新硬盘之后重启,发现有一台启不起来。到机房接上显示器看了一下,开机之后图像一跳一跳的,由于服务器上用的是集成显卡,目测就是内存不稳定(加过内存),于是关机断电之后把内存金手指擦了擦、重新插了一遍。可是这下图像不跳了,测试内存也没问题了,就是进不了系统。其实应该说是进不了桌面(装系统时把桌面装上了)。下面是错误信息和解决方法:系统:CentOs-6.3 x86_64
2013-07-04 13:56:50
7107
原创 CentOS 格式化新硬盘并设置开机自动挂载
服务器上加了一块新硬盘,在/dev/下只能看到一个sdb的设备。于是要分区、创建文件系统、设置开机自动挂载,过程如下:1、创建分区用parted命令分区:# parted /dev/sdb(parted) mktable gpt(parted) mkpart data 1024KiB -1(parted print)parted之后的参数是设备名。mkpart命令的三个参数分
2013-07-04 03:13:11
4963
原创 yum局域网软件源搭建
之前的Demo算是告一段落了,期末的各种考试报告也结束了。暑假的一项任务就是和其他几个同学一起,在服务器上安装openstack,虚拟出更多的机器,对各种分布式/并行数据分析平台进行测试。目前才刚刚把openstack平台搭建起来,正在安装各种待测试的系统,一个比较现实的问题就是:由于机房路由的关系,服务器和虚拟出的机器是不能直接访问外网的,通过代理的下载速度又很慢,所以需要在局域网中搭建
2013-07-03 23:34:41
3832
原创 C3P0连接池使用小结
C3P0在最近的demo中也用了(我用的是0.9.2.1版本的。),因为单例很难应付大量并发的。【引用请注明出处http://blog.youkuaiyun.com/bhq2010/article/details/9219947】用法详见文档:http://www.mchange.com/projects/c3p0/基本的用法在http://www.mchange.com/projects/c3p
2013-07-01 22:01:32
21857
1
原创 Java HttpClient使用小结
httpclient是apache的一个项目:http://hc.apache.org/文档比较完善:http://hc.apache.org/httpcomponents-client-ga/tutorial/html/这里就不啰嗦了,主要是在做demo的时候遇到的一些问题在这里总结一下:[引用请注明出处http://blog.youkuaiyun.com/bhq2010/article/det
2013-07-01 00:36:22
84565
4
原创 Ajax使用小结
本科做课设的时候也用过ajax,但是当时做出来的东西在大部分浏览器中都没法异步更新页面内容,当时也就得过且过了。前段时间做demo(万恶的demo让我复习了多少东西……)又把ajax拿过来复习了一遍,终于可以适应主流的ie、firefox、chrome三大浏览器的较新版本(最近1年的版本吧,再早的版本没有试过,但想必也没什么问题)了。小结如下:1、ajax的实现步骤实现ajax异步
2013-06-27 10:29:18
1890
原创 struts2标签库使用小结
之前的demo中用了一些struts2标签,用的是struts2.2.1.1.Struts2的标签常常和OGNL(图对象导航语言)一起使用。有几点总结如下:【引用请注明出处:http://blog.youkuaiyun.com/bhq2010/article/details/9183591】1、struts2标签必须的jar包struts2标签可以分为数据标签、控制标签、表单标签、AJAX标签
2013-06-27 00:43:04
6933
原创 读英文论文的方法小结
我接触的大部分英文论文都可以找到pdf格式,用adobe acrobat或者其他功能比较全的阅读器阅读很方便。自己总结精读的阅读方法如下:【引用请注明出处:http://blog.youkuaiyun.com/bhq2010/article/details/9147967】1、随处加附注刚接触学术时间不长,英文也不好,看论文的时候主要的注意力都集中在理解句子的意思上了。所以看完一个长句子、一个
2013-06-21 20:35:52
1827
原创 Java异常处理小结
[引用请注明出处:http://blog.youkuaiyun.com/bhq2010/article/details/9109809]最近一个月都在做demo,对Java的异常处理有了一点感受,小结在这里,其他语言中的异常处理也基本类同:1、异常分类Java的异常分为RuntimeException、Exception两种,还有一种错误是Error。编译器强制程序员处理Exception异常。
2013-06-17 11:49:39
3033
jdbc4rdf3x
2013-04-04
Linux Java RXTXcomm
2013-03-14
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人