自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(165)
  • 资源 (6)
  • 收藏
  • 关注

原创 Spark Streaming容错的改进和零数据丢失(转)

作者:Tathagata Das 译者:彭根禄本文来自Spark Streaming项目带头人 Tathagata Das的博客文章,他现在就职于Databricks公司。过去曾在UC Berkeley的AMPLab实验室进行大数据和Spark Streaming的研究工作。本文主要谈及了Spark Streaming容错的改进和零数据丢失。以下为原文:实时流处理系统必须要能在24/...

2015-12-09 11:18:17 260 1

原创 ubuntu安装nvidia 750ti显卡驱动

NVIDIA (英伟达)公司已经发布了针对 Linux 用户的显卡驱动 Nvidia Driver 334.21,该驱动程序新增加支持 GeForce GTX 750 Ti、 GeForce GTX 750、 GeForce GTX 745 和 GeForce GTX TITAN。除此之外,NVIDIA 334.21 带来了不少的 bug 修复。详细信息查看发行日志。 安装 Nvidia...

2015-10-15 20:56:51 2719

原创 基于随机游走的personalrank算法实现推荐

今天我们讲一个下怎么使用随机游走算法PersonalRank实现基于图的推荐。在推荐系统中,用户行为数据可以表示成图的形式,具体来说是二部图。用户的行为数据集由一个个(u,i)二元组组成,表示为用户u对物品i产生过行为。本文中我们认为用户对他产生过行为的物品的兴趣度是一样的,也就是我们只考虑“感兴趣”OR“不感兴趣”。假设有下图所示的行为数据集。其中users集U={A, B, C},i...

2015-10-15 11:11:00 538

原创 最速梯度下降法

梯度下降法是一个一阶最优化算法,通常也称为最速下降法。梯度下降法,就是利用负梯度方向来决定每次迭代的新的搜索方向,使得每次迭代能使待优化的目标函数逐步减小。梯度下降法是2范数下的最速下降法。    最速下降法的一种简单形式是:x(k+1)=x(k)-a*g(k),其中a称为学习速率,可以是较小的常数。g(k)是x(k)的梯度。    直观的说,就是在一个有中心的等值线中,从初始值开始...

2015-10-15 11:02:30 1187

原创 使用LFM(Latent factor model)隐语义模型进行Top-N推荐

最近在拜读项亮博士的《推荐系统实践》,系统的学习一下推荐系统的相关知识。今天学习了其中的隐语义模型在Top-N推荐中的应用,在此做一个总结。隐语义模型LFM和LSI,LDA,Topic Model其实都属于隐含语义分析技术,是一类概念,他们在本质上是相通的,都是找出潜在的主题或分类。这些技术一开始都是在文本挖掘领域中提出来的,近些年它们也被不断应用到其他领域中,并得到了不错的应用效果。比如,在推...

2015-10-15 10:43:33 157

原创 ubuntu里刻录win7的iso镜像到usb

1.安装 gpartedsudo apt-get install gparted2.打开gparted,把U盘格式化成 ntfs(注意先卸载usb)3.安装 ms-sys 去这里下载 http://ms-sys.sourceforge.net/#Download4.解压 并安装 (安装的时候用root)tar xvf ms-sys-2.1.5.tar.gzcd ms-sysmakemake ...

2015-10-14 20:31:56 471

原创 HADOOP中mapreduce开启压缩功能

                      最近给热云公司共享数据,我们把原始数据给到他们,让他们做计算。每天同步一次,数据量压缩后10几个G,数据来自hive的mapreduce查询。通过insert overwrite local directory select语句将数据写入本地的NFS,然后对数据压缩,并在NFS的服务端机器提供文件下载功能。由于压缩前数据量太大,大概有90G左右。因...

2015-10-14 14:26:32 383

原创 朴素贝叶斯分类器的应用

一、病人分类的例子让我从一个例子开始讲起,你会看到贝叶斯分类器很好懂,一点都不难。某个医院早上收了六个门诊病人,如下表。  症状  职业   疾病  打喷嚏 护士   感冒   打喷嚏 农夫   过敏   头痛  建筑工人 脑震荡   头痛  建筑工人 感冒   打喷嚏 教师   感冒   头痛  教师   脑震荡现在又来了第七个病人,是一个打喷嚏的建筑工人。请问他患...

2015-10-12 15:18:26 112

原创 HIVE跑mapjoin时所有任务失败--问题分析及解决

           今天有个需求,就是:指定200W用户(表meids_tmp),把这些用户最近15天的应用使用数据(表tb_yl_upload_info,按天分区)转移到另外一张表中(表upload_info_sub,按天分区)。          很直观,meids_tmp表63M,可以使用map端连接;要求目标表数据按日期组织,自然想到动态分区,使数据插入时自动按日期写入。最终,得到...

2015-09-22 16:40:56 1670 1

原创 HBase安全及namespace操作

1、介绍 在HBase中,namespace命名空间指对一组表的逻辑分组,类似RDBMS中的database,方便对表在业务上划分。Apache HBase从0.98.0, 0.95.2两个版本开始支持namespace级别的授权操作,HBase全局管理员可以创建、修改和回收namespace的授权。 2、namespaceHBase系统默认定义了两个缺省的namespace...

2015-09-18 19:37:11 400

原创 hadoop、hbase节点下线

         hadoop节点在磁盘坏掉的时候需要节点下线,按照下线步骤操而不是直接kill,是为了让数据安全的转移。比如hbase的regionserver直接kill掉的话,如果运气再坏一点这个regionserver上刚好是root表或meta表所在的机器,那可能导致hbase集群不可用。    1.   hbase regionserver下线       ...

2015-09-17 16:21:12 1063

原创 mybatis中使用map类型参数,其中key为列名,value为列值

                   最近有个需求,就是使用mybatis时,向mysql中插入数据,其参数为map类型,map里面的key为列名,而key对应的value是该列对应的列值;问题是每次插入mysql中数据行的部分列,即map里面key的值每次都不固定,在用mybatis时需要通过map的key作为列名。 基础知识 对于这类问题基本思路就是用foreach标签遍...

2015-09-11 15:00:07 2063

原创 hive多用户权限控制

当多个不同角色的用户共用hive时,需要对不同的角色做不同的权限控制。权限控制主要指底层的hdfs文件操作控制和hive自身的对表的授权管理。 首先,安装hive。hive装好后以管理员身份启动hive,即执行命令:hive -hiveconf hive.root.logger=DEBUG,console报错如下: 2014-02-13 16:48:59,968 ERROR...

2015-08-27 17:39:43 1108

原创 MYSQL乱码问题解决

在使用mysql过程中遇到乱码问题,具体流程是:同事通过putty命令行终端向mysql插入带中文的记录,然后自己同样在putty查询回显正常;但是我在spring里用mybatis去查数据是,得到的却是乱码的字符。最终发现,同事用latin1字符编码写的,但是我是用utf8读的,所以出现以上问题。具体来说同事的命令行命令:mysql> show variables like '%ch...

2015-08-03 12:37:10 152

原创 两阶段提交

在分布式系统中,事务往往包含有多个参与者的活动,单个参与者上的活动是能够保证原子性的,而多个参与者之间原子性的保证则需要通过两阶段提交来实现,两阶段提交是分布式事务实现的关键。很明显,两阶段提交保证了分布式事务的原子性,这些子事务要么都做,要么都不做。而数据库的一致性是由数据库的完整性约束实现的,持久性则是通过commit日志来实现的,不是由两阶段提交来保证的。至于两阶段提交如何保证隔离性,...

2015-07-30 18:19:31 132

原创 mysql MVCC

Mysql到底是怎么实现MVCC的?这个问题无数人都在问,但google中并无答案,本文尝试从Mysql源码中寻找答案。  在Mysql中MVCC是在Innodb存储引擎中得到支持的,Innodb为每行记录都实现了三个隐藏字段: 6字节的事务ID(DB_TRX_ID )7字节的回滚指针(DB_ROLL_PTR)隐藏的ID6字节的事物ID用来标识该行所述的事务,7字节的...

2015-07-30 18:15:03 125

原创 mysql悲观锁总结和实践

最近学习了一下数据库的悲观锁和乐观锁,根据自己的理解和网上参考资料总结如下: 悲观锁介绍(百科):悲观锁,正如其名,它指的是对数据被外界(包括本系统当前的其他事务,以及来自外部系统的事务处理)修改持保守态度,因此,在整个数据处理过程中,将数据处于锁定状态。悲观锁的实现,往往依靠数据库提供的锁机制(也只有数据库层提供的锁机制才能真正保证数据访问的排他性,否则,即使在本系统中实现了加锁机...

2015-07-30 14:57:15 84

原创 mysql乐观锁总结和实践

上一篇文章《MySQL悲观锁总结和实践》谈到了MySQL悲观锁,但是悲观锁并不是适用于任何场景,它也有它存在的一些不足,因为悲观锁大多数情况下依靠数据库的锁机制实现,以保证操作最大程度的独占性。如果加锁的时间过长,其他用户长时间无法访问,影响了程序的并发访问性,同时这样对数据库性能开销影响也很大,特别是对长事务而言,这样的开销往往无法承受。所以与悲观锁相对的,我们有了乐观锁,具体参见下面介绍:...

2015-07-30 14:56:37 100

原创 MySQL InnoDB三大特性之 - 两次写

今天我们来介绍InnoDB存储引擎的第二个特性 - 两次写(doublewrite),如果说插入缓冲是为了提高写性能的话,那么两次写是为了提高可靠性,牺牲了一点点写性能。 部分写失效想象这么一个场景,当数据库正在从内存向磁盘写一个数据页时,数据库宕机,从而导致这个页只写了部分数据,这就是部分写失效,它会导致数据丢失。这时是无法通过重做日志恢复的,因为重做日志记录的是对页的物理修改,...

2015-07-27 14:37:26 150

原创 MySQL InnoDB三大特性之 - 插入缓冲

InnoDB存储引擎有三大特性非常令人激动,它们分别是插入缓冲、两次写和自适应哈希,本篇文章先介绍第一个特性 - 插入缓冲(insert buffer)在上一篇《MySQL - 浅谈InnoDB存储引擎》中,我们可以看到在InnoDB的内存中有单独一块叫“插入缓冲”的区域,下面我们详细来介绍它。 非聚集索引写性能问题为了阐述非聚集索引写性能问题,我们先来看一个例子: my...

2015-07-27 14:36:50 145

原创 innodb事务操作过程

本文是介绍MySQL数据库InnoDB存储引擎重做日志漫游00 – Undo LogUndo Log 是为了实现事务的原子性,在MySQL数据库InnoDB存储引擎中,还用Undo Log来实现多版本并发控制(简称:MVCC)。- 事务的原子性(Atomicity)  事务中的所有操作,要么全部完成,要么不做任何操作,不能只做部分操作。如果在执行的过程中发生  了错误,要回滚(Rollb...

2015-07-25 18:08:31 408

原创 myisam和innodb索引实现的不同

MyISAM引擎使用B+Tree作为索引结构,叶节点的data域存放的是数据记录的地址。下图是MyISAM索引的原理图:这里设表一共有三列,假设我们以Col1为主键,则上图是一个MyISAM表的主索引(Primary key)示意。可以看出MyISAM的索引文件仅仅保存数据记录的地址。在MyISAM中,主索引和辅助索引(Secondary key)在结构上没有任何区别,只是主索引要求ke...

2015-07-25 16:24:27 64

原创 MySQL的InnoDB索引原理详解

本篇介绍下Mysql的InnoDB索引相关知识,从各种树到索引原理到存储的细节。  InnoDB是Mysql的默认存储引擎(Mysql5.5.5之前是MyISAM,文档)。本着高效学习的目的,本篇以介绍InnoDB为主,少量涉及MyISAM作为对比。  这篇文章是我在学习过程中总结完成的,内容主要来自书本和博客(参考文献会给出),过程中加入了一些自己的理解,描述不准确的地方烦请指出。...

2015-07-24 18:06:56 72

原创 Spring定时任务的几种实现

日项目开发中需要执行一些定时任务,比如需要在每天凌晨时候,分析一次前一天的日志信息,借此机会整理了一下定时任务的几种实现方式,由于项目采用spring框架,所以我都将结合spring框架来介绍。一.分类从实现的技术上来分类,目前主要有三种技术(或者说有三种产品):Java自带的java.util.Timer类,这个类允许你调度一个java.util.TimerTas...

2015-07-23 20:58:26 77

原创 RuntimeException与CheckedException

   Java的异常被分为两大类:Checked异常和Runtime异常(运行时异常)。所有RuntimeException类及其子类实例被称为Runtime异常;不是RuntimeException类及其子类的异常实例则称为Checked异常。 只有Java语言提供了Checked异常,其他语言都没有提供Checked异常。Java认为Checked异常都是可以...

2015-07-23 20:30:38 106

原创 spring,mybatis事务管理配置与@Transactional注解使用

spring,mybatis事务管理配置与@Transactional注解使用概述事务管理对于企业应用来说是至关重要的,即使出现异常情况,它也可以保证数据的一致性。Spring Framework对事务管理提供了一致的抽象,其特点如下:为不同的事务API提供一致的编程模型,比如JTA(Java Transaction API), JDBC, Hibernate, JPA(Java Pe...

2015-07-23 20:27:47 80

原创 spring事务注解

Spring在TransactionDefinition接口中规定了7种类型的事务传播行为,它们规定了事务方法和事务方法发生嵌套调用时事务如何进行传播:事务传播行为类型事务传播行为类型说明PROPAGATION_REQUIRED如果当前没有事务,就新建一个事务,如果已经存在一个事务中,加入到这个事务中。这是最常见的选择。...

2015-07-23 20:05:20 69

原创 spring事务配置的几种方法

Spring配置文件中关于事务配置总是由三个组成部分,分别是DataSource、TransactionManager和代理机制这三部分,无论哪种配置方式,一般变化的只是代理机制这部分。    DataSource、TransactionManager这两部分只是会根据数据访问方式有所变化,比如使用Hibernate进行数据访问时,DataSource实际为SessionFactory,Tr...

2015-07-23 20:04:31 111

原创 普通用户ulimit设置

安装oracle时候在创建oracle用户后,切换oracle用户时,报如下错[root@localhost ~]# su - oracle-bash: ulimit: max user processes: cannot modify limit: Operation not permitted经查看结果是 忘记修改/etc/security/limits.conf ...

2015-07-03 15:00:14 1586

原创 模式匹配与样例类

Scala强大的模式匹配机制,可以应用在switch语句、类型检查以及“析构”等场合。样例类对模式匹配进行了优化。更好的switch   12345678varsign=...valch:Char=... chmatch{  case'+'=>sign=1  case'-'=>s...

2015-07-03 09:54:35 199

原创 case语句和偏函数

Scala通过case语句提供了形式简单、功能强大的模式匹配功能。但是也许你不知道,Scala还具有一个与case语句相关的语言特性,那就是:在Scala中,被“{}”包含的一系列case语句可以被看成是一个函数字面量,它可以被用在任何普通的函数字面量适用的地方,例如被当做参数传递。 Scala代码  scala> val defaultValue:Option[I...

2015-07-03 09:26:16 160

原创 Linux下高cpu解决方案(转载)

昨天搞定了一个十万火急的issue,客户抱怨产品升级后系统会变慢和CPU使用率相当高,客户脾气很大,声称不尽快解决这个问题就退货,弄得我们 R&D压力很大,解决这个issue的任务分给了我,客户是南非的一个公司,由于时差问题,我只好在家远程解决问题,晚上8点半用 gotomeeting远程到客户电脑查看我们的系统,折腾了四个多小时,终于在凌晨时reproduce了这个high CPU,赶...

2015-07-01 18:05:08 136

原创 How-to: Use HBase Bulk Loading, and Why

  Hbase对外提供随机、实时的读写访问大数据,但问题是首先需要高效的把数据导入HBASE。通常我们通过mapreduce任务以及设置TableOutputFormat来调用hbase API导入数据。但是这样需要经过hbase的writepath:写数据到memstore,写WAL,flush数据,以及split和compact。因此更好的方式是即将介绍的BULKLOAD。 ...

2015-06-26 16:46:01 91

原创 java中priorityQueue的实现

PriorityQueue介绍    在平时的编程工作中似乎很少碰到PriorityQueue(优先队列) ,故很多人一开始看到优先队列的时候还会有点迷惑。优先队列本质上就是一个最小堆。前面一篇文章介绍了堆排序和堆的性质。而堆又是什么呢?它是一个数组,不过满足一个特殊的性质。我们以一种完全二叉树的视角去看这个数组,并用二叉树的上下级关系来映射到数组上面。如果是最大堆,则二叉树的顶点是保存的...

2015-06-25 10:43:16 365

原创 JAVA中的ConcurrentHashMap实现

ConcurrentHashMapConcurrentHashMap是一个线程安全的Hash Table,它的主要功能是提供了一组和HashTable功能相同但是线程安全的方法。ConcurrentHashMap可以做到读取数据不加锁,并且其内部的结构可以让其在进行写操作的时候能够将锁的粒度保持地尽量地小,不用对整个ConcurrentHashMap加锁。ConcurrentHashMa...

2015-06-19 14:55:08 104

原创 HBase的Block Cache实现机制分析

 本文结合HBase 0.94.1版本源码,对HBase的Block Cache实现机制进行分析,总结学习其Cache设计的核心思想。1. 概述HBase上Regionserver的内存分为两个部分,一部分作为Memstore,主要用来写;另外一部分作为BlockCache,主要用于读。写请求会先写入Memstore,Regionserver会给每个region提供一个...

2015-06-19 11:45:59 80

原创 hbase中的MSLAB

  CDH用MSLAB避免Hbase FullGC 使用Hbase过程中如果出现长时间Stop-The-World GC,会造成以下两种影响: 1.     在Stop-The-World GC过程中,用户请求被阻塞,导致明显的延迟甚至超时。2.     Hbase通过zookeeper维系集群节点存活。如果长时间没有向zookeeper发送ping消息,则mast...

2015-06-19 10:21:37 444

原创 hbase优化(1)

因官方Book Performance Tuning部分章节 没有按配置项进行索引,不能达到快速查阅的效果。所以我以配置项驱动,重新整理了原文,并补充一些自己的理解,如有错误,欢迎指正。配置优化zookeeper.session.timeout默认值:3分钟(180000ms)说明:RegionServer与Zookeeper间的连接超时时间。当超时时间到后,ReigonServ...

2015-06-18 11:16:02 76

原创 实时系统HBase读写优化--大量写入无障碍

在使用hbase过程中发现在写入hbase的数据量很大时,经常发生写不进去的情况。而我们基于hbase的应用是对实时性要求很高的,一旦hbase不能读写则会大大影响系统的使用。下面将记录hbase写优化的过程。 1.禁止Major Compaction在hbase进行Major Compaction时,该region将合并所有的storefile,因此整个region都不可读,所有对...

2015-06-18 10:55:09 326

原创 HIVESERVER2问题解决

 hiveserver2是hiveserver的高级版本,在安全和并发上有所增强。hiveserver2相关的基础参数有:hive.server2.transport.mode – 默认值为binary(TCP),可选值HTTP,0.13版本后开始支持。 hive.server2.thrift.http.port– HTTP的监听端口,默认值为10001。hive.server...

2015-06-18 10:30:48 1710

openCL详细指导

这是本介绍OPENCL的教程,由上海AMD研究中心作为内部培训教材,相当具有参考价值;从OPENCL编程到各种优化,及扩展,绝对不错

2011-12-02

编译原理,编译原理,编译原理

编译原理,编译原理,编译原理,编译原理,编译原理

2011-04-09

java socket,javasocket教程

很好的java socket 教程,很好的java socket 教程

2011-04-08

mpi并行程序设计,具有指导作用

适合初级学员,很不错的教材,由知名教授编写的

2010-11-10

xml教程,适合初级水平

关于xml的较全面的初级教程,适合需要用到xml的同学

2010-11-10

Merkle-Hellman背包公钥密码加解密 C语言

包含c实现的Merkle-Hellman背包公钥密码加解密的源代码, 在vs08下实现

2010-11-03

空空如也

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

TA关注的人

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