自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

BHQ的技术学习

就当是笔记了

  • 博客(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 463

原创 安装系统后新建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 1632 1

原创 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 2807 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 2114 1

原创 CarbonData源码阅读(3) - core代码结构概览

读过Carbondata Presto Connector和Hadoop module之后,其实对CarbonData core已经大概了解了一下,这里梳理一下。CarbonData因为特性比ORC多,加之目前还不成熟,所以代码读起来不如ORC容易。由于赶项目进度,打算先在ORC基础上做系统实现,之后再考虑往CarbonData迁移。CarbonData也还会继续读下去。这里当做笔记,慢慢写。 [

2017-07-27 15:10:47 926

原创 CarbonData源码阅读(2)-Hadoop InputFormat

Presto Integration之前已经读过了:http://blog.csdn.net/bhq2010/article/details/72972278 这个里面沿着CarbondataPlugin –> CarbondataConnectory –> CarbondataConnector –> CarbondataMetadata (以及org.apache.carbondata.pre

2017-07-09 17:50:05 976

原创 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 2761

原创 yum使用代理

Centos系统,在/etc/yum.conf文件中加入一行:proxy=http://hostname or ip:port即可。如果用的是squid做代理,默认端口号是3128

2015-05-05 18:50:25 1333

原创 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 4021

原创 Spark中配置Parquet参数

Parquet的参数,例如block size、压缩格式等,需要spark contex对象上调用setHadoopConf来设置。

2015-05-04 10:20:38 4857

原创 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 2500

原创 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 14457

原创 Java并发与同步

Java中并发的形式无非是多线程和多进程两种形式。这两种形式都是可以利用多核来发挥计算能力的。先说并发:多进程意味着同时运行多个JVM,这个代价通常比多线程高,每个JVM都有自己的堆栈、都要分别加载各自的类。但是多进程的好处是“隔离性”更好,一个JVM中的程序在运行时发生故障不会对其他JVM产生很大的影响。而在多线程的情况下,一些致命错误可能导致整个JVM挂掉,祸及全体。多线程可以方便地共

2014-11-12 01:36:17 5038

原创 HDFS 上传文件不均衡和Balancer太慢的问题

向HDFS上传文件,如果是从某个datanode开始上传文件,会导致上传的数据优先写满当前datanode的磁盘,这对于运行分布式程序是非常不利的。解决的办法:1、从其他非datanode节点上传可以将hadoop的安装目录复制一份到一个不在集群中的节点(直接从非datanode的namenode上传也可以,但是这样不太好,会增加namenode的负担,并且时间长了会让namenode

2014-11-07 15:00:27 10889 2

原创 HDFS Safemode问题

处于safemode的集群是无法接收任何写操作的,包括创建目录、删除文件、修改文件、上传文件等等。关于safemode,在http://www.iteblog.com/archives/977中讲的比较详细了。hdfs集群在启动和关闭的时候一般会有一段时间处于safemode,如果集群中出现了大量的block副本数量低于配置的副本数据量(这个副本数量的配置并不一定是在hdfs的配置文件中配的,

2014-11-07 13:10:56 4772

原创 [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 25549 4

原创 众核上的数据仓库并行优化

近几年众核硬件逐渐被应用到数据仓库产品当中。目前主要的众核硬件包括以Intel SCC为代表的众核CPU、以Intel志强融核系列为代表的众核协处理器、以NVIDIA和AMD为代表的众核GPU。本文第一章介绍目前的主要的众核硬件及其特性,并从性价比和通用性方面对众核硬件进行比较;第二章介绍目前数据仓库中典型操作符在众核硬件上的优化技术。1. 主要众核硬件1.1. 多核CPU多核的CPU

2014-01-09 08:12:10 2366

原创 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 4070

原创 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 4095 1

原创 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 6155

原创 Postgresql学习笔记【3】-pg的进程

pg的服务进程在操作系统中的名字都叫postgres,pg在多用户模式下启动后,用pidof postgres命令可以看到至少6个进程id。但其实,pg的进程结构是:单用户模式下只有1个进程postmaster多用户模式下,有一个postmaster进程,它会启动几个辅助进程,如:SysLogger(负责系统日志)PgStat(负责收集数据的统计信息)AutoVacuum(

2013-10-15 12:14:29 4169 1

原创 Java数组与泛型

Java中不能创建泛型数组,例如不能这样写:ArrayList[] as = new ArrayList[10];原因是:Java中的泛型并不像C++那样会在编译时实例化成具体的类,或者说Java中的泛型是“伪泛型”。对于一个泛型,程序无法获得它的具体的参数类型,也就是说:ArrayList a = new ArrayList();声明a之后,你没法检查a的

2013-10-12 17:05:48 3818 5

原创 postgresql学习笔记【2】-pg的文件与目录

打算在刚开始的时候参考《Postgresql数据库内核分析》和PG的文档来学习。先了解了一下安装和启动pg之后,pg会在一台机器上创建那些文件和目录。了解目录和文件之前,先看了一下pg的架构。pg采用的是常见的C/S架构,服务器端叫做postgres(服务器端的主程序和进程都叫这个名字,启动pg之后在服务器上至少可以看到6个postgres进程,对应于pg的几个主要的模块,并且每增加一个客户端

2013-10-07 16:29:06 9356

原创 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 3336 4

原创 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 1965

原创 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 4838 5

原创 在OpenStack虚拟机实例中创建swap分区的一种方法

测试组里一个同学负责MapR的搭建,MapR文档中建议每个节点上至少有24GB的swap分区,不知道MapR为啥会有这种反人类的建议……swap无非就是一块顺序读写的磁盘空间,莫非省着内存不用,用swap能提高效率?也许它用swap来存map-reduce的临时文件?可是既然这么建议了,只好照办,毕竟我们对MapR也不熟悉。要让OpenStack的实例中有swap分区,可以在镜像中加,但是

2013-07-13 20:01:33 2969

原创 为OpenStack制作CentOS镜像的一种方法

Ubuntu和Fedora都有官方的系统镜像,偏偏CentOS没有,网上能找到一些也都不甚靠谱,加之在我们自己的项目中有一些需要自己定制的东西,所以还是自己做镜像比较合适。为OpenStack制作CentOS系统镜像,官方的在线文档以及网上很多资料中给出了一种方法,即利用virt-install或者kvm创建虚拟机之后通过vnc安装系统、配置系统参数,最后上传到OpenStack中,参考:

2013-07-13 16:36:20 9804

原创 获取CentOS软件源中的updates包

之前在本地网络中建了一个CentOS软件源,挺好用的,可是发现有些软件还是装不上,因为系统安装盘中的包并不全,有些软件的依赖在updates源中,updates源在网上,怎么把其中的包拿到呢?一种方法,当然也是最最正常的方法,就是做个计划任务,定时从CentOS官方镜像站中同步。可是我们也就是在本地用用,不需要同步,于是写了个Java程序,找了个速度比较快的镜像(东北大学的,写程序的时候北理工

2013-07-13 14:11:13 2120

翻译 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 3625

原创 通过openssh远程登录时的延迟问题解决

Linux下的ssh 服务器一般用的都是open-ssh,可是发现有些时候通过ssh连接服务器时总会有大概10秒钟左右的延迟。一开始以为是openssh的安全策略,防止端口扫描,后来发现自己想多了。解决方法如下:修改服务器上的/etc/ssh/sshd_config文件,注意是sshd_config,不是ssh_config。将其中的UseDNS一行的注释去掉,改为:UseDNS

2013-07-04 14:14:27 2456

原创 CentOS /usr/libexec/gconf-sanity-check-2 exited with status 256问题解决

昨晚上给三台服务器挂上新硬盘之后重启,发现有一台启不起来。到机房接上显示器看了一下,开机之后图像一跳一跳的,由于服务器上用的是集成显卡,目测就是内存不稳定(加过内存),于是关机断电之后把内存金手指擦了擦、重新插了一遍。可是这下图像不跳了,测试内存也没问题了,就是进不了系统。其实应该说是进不了桌面(装系统时把桌面装上了)。下面是错误信息和解决方法:系统:CentOs-6.3 x86_64

2013-07-04 13:56:50 7015 2

原创 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 4898

原创 yum局域网软件源搭建

之前的Demo算是告一段落了,期末的各种考试报告也结束了。暑假的一项任务就是和其他几个同学一起,在服务器上安装openstack,虚拟出更多的机器,对各种分布式/并行数据分析平台进行测试。目前才刚刚把openstack平台搭建起来,正在安装各种待测试的系统,一个比较现实的问题就是:由于机房路由的关系,服务器和虚拟出的机器是不能直接访问外网的,通过代理的下载速度又很慢,所以需要在局域网中搭建

2013-07-03 23:34:41 3785

原创 C3P0连接池使用小结

C3P0在最近的demo中也用了(我用的是0.9.2.1版本的。),因为单例很难应付大量并发的。【引用请注明出处http://blog.csdn.net/bhq2010/article/details/9219947】用法详见文档:http://www.mchange.com/projects/c3p0/基本的用法在http://www.mchange.com/projects/c3p

2013-07-01 22:01:32 21813 1

原创 Java HttpClient使用小结

httpclient是apache的一个项目:http://hc.apache.org/文档比较完善:http://hc.apache.org/httpcomponents-client-ga/tutorial/html/这里就不啰嗦了,主要是在做demo的时候遇到的一些问题在这里总结一下:[引用请注明出处http://blog.csdn.net/bhq2010/article/det

2013-07-01 00:36:22 84463 7

原创 Ajax使用小结

本科做课设的时候也用过ajax,但是当时做出来的东西在大部分浏览器中都没法异步更新页面内容,当时也就得过且过了。前段时间做demo(万恶的demo让我复习了多少东西……)又把ajax拿过来复习了一遍,终于可以适应主流的ie、firefox、chrome三大浏览器的较新版本(最近1年的版本吧,再早的版本没有试过,但想必也没什么问题)了。小结如下:1、ajax的实现步骤实现ajax异步

2013-06-27 10:29:18 1857

原创 struts2标签库使用小结

之前的demo中用了一些struts2标签,用的是struts2.2.1.1.Struts2的标签常常和OGNL(图对象导航语言)一起使用。有几点总结如下:【引用请注明出处:http://blog.csdn.net/bhq2010/article/details/9183591】1、struts2标签必须的jar包struts2标签可以分为数据标签、控制标签、表单标签、AJAX标签

2013-06-27 00:43:04 6871

原创 读英文论文的方法小结

我接触的大部分英文论文都可以找到pdf格式,用adobe acrobat或者其他功能比较全的阅读器阅读很方便。自己总结精读的阅读方法如下:【引用请注明出处:http://blog.csdn.net/bhq2010/article/details/9147967】1、随处加附注刚接触学术时间不长,英文也不好,看论文的时候主要的注意力都集中在理解句子的意思上了。所以看完一个长句子、一个

2013-06-21 20:35:52 1773

原创 Java异常处理小结

[引用请注明出处:http://blog.csdn.net/bhq2010/article/details/9109809]最近一个月都在做demo,对Java的异常处理有了一点感受,小结在这里,其他语言中的异常处理也基本类同:1、异常分类Java的异常分为RuntimeException、Exception两种,还有一种错误是Error。编译器强制程序员处理Exception异常。

2013-06-17 11:49:39 2976 3

jdbc4rdf3x

在rdf3x官方jdbc基础上修改,不把查询结果全部读入内存,而是从流中逐条读取,解决了OutOfMemory问题,速度提高3-4倍(之前传的那个不完整,所以删了重传,请予以通过审核)

2013-04-04

Linux Java RXTXcomm

Linux系统下用Java开发串口通信程序的类库,从Arduino的IDE中扒出来的,比官方的更加好用,Bug少,支持Arduino设备与Linux之间的串口通信

2013-03-14

Hbase权威指南 英文版

非扫描版 清晰,介绍了Hbase的架构、安装部署、维护和开发

2012-10-06

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除