- 博客(451)
- 资源 (12)
- 收藏
- 关注
转载 空杯心态
空杯心态 空杯心态是一种对工作、学习、生活、生命的放空、低头、吐故纳新。放得越空,拥有越多。做事的前提是先要有好心态,如果想学到更多学问,想提升职业能力,先要把自己想象成“一个空着的杯子”,而不是骄傲自满,故步自封。 空杯心态 - 来源 该词语来源于一则佛家故事,古时候一个佛学造诣很深的人,听说某个寺庙里有位德高望重的老禅师,便去拜访。老禅
2012-10-24 16:11:04 1563
转载 谈谈互联网后端基础设施
本文更新于2016.12.06,加入了Netflix组件部分对于一个互联网企业,后端服务是必不可少的一个组成部分。抛开业务应用来说,往下的基础服务设施做到哪些才能够保证业务的稳定可靠、易维护、高可用呢?纵观整个互联网技术体系再结合公司的目前状况,个人认为必不可少或者非常关键的后端基础技术/设施如下图所示:这里的后端基础设施主要指的是应用在线上稳定运行需要依赖的关键组件/服务
2017-01-12 14:08:21 830
原创 ZooKeeper伪分布式集群安装
摘要: 讲述单台Linux服务器中搭建ZooKeeper集群的步骤,以及配置文件中参数的说明。获取ZooKeeper安装包 下载地址:http://apache.dataguru.cn/zookeeper 选择一个稳定版本进行下载,我这里下载的是zookeeper-3.4.6版本。ZooKeeper伪分布式集群安装 伪分布式集群:在一台Serv
2017-01-10 14:00:48 1200 3
转载 使用zookeeper实现分布式锁
大家也许都很熟悉了多个线程或者多个进程间的共享锁的实现方式了,但是在分布式场景中我们会面临多个Server之间的锁的问题,实现的复杂度比较高。利用基于google chubby原理开发的开源的zookeeper,可以使得这个问题变得简单很多。下面介绍几种可能的实现方式,并且对比每种实现方式的优缺点。1. 利用节点名称的唯一性来实现共享锁ZooKeeper抽象出来的节点结构是一个和u
2017-01-10 09:38:50 842
转载 啥,又要为表增加一列属性?
需求缘起产品第一版:用户有用户名、密码、昵称等三个属性,对应表设计:user(uid, name, passwd, nick)第二版,产品经理增加了年龄,性别两个属性,表结构可能要变成:user(uid, name, passwd, nick, age, sex)假设数据量和并发量比较大,怎么变?(1)alter table add
2016-12-21 09:06:40 978
转载 这才是真正的表扩展方案
事情变得有意思了,上一篇花1小时撰写的“一分钟”文章,又引起了广泛的讨论,说明相关的技术大家感兴趣,挺好。第一次一篇技术文章的评论量过100,才知道原来“评论精选”还有100上限,甚为欣慰(虽然是以一种自己不愿看到的方式)。 《啥,又要为表增加一列属性?》的方案颇有争议:(1)版本号version + 扩展字段ext(2)用增加列的key+value方式扩充
2016-12-21 08:59:12 1358
转载 从缓存行出发理解volatile变量、伪共享False sharing、disruptor
备注,现在已经进入多核时代了,考虑问题要考虑多核啊 volatile关键字当变量被某个线程A修改值之后,其它线程比如B若读取此变量的话,立刻可以看到原来线程A修改后的值 注:普通变量与volatile变量的区别是volatile的特殊规则保证了新值能立即同步到主内存,以及每次使用前可以立即从内存刷新,即一个线程修改了某个变量的值,其它线程读取的话肯定能看到新
2016-06-30 12:11:20 696
转载 zookeeper核心原理(选举)
hadoop系列:zookeeper(2)——zookeeper核心原理(选举)2015-08-15 13:13 本站整理 浏览(421)1、前述上篇文章《hadoop系列:zookeeper(1)——zookeeper单点和集群安装》(http://www.lai18.com/content/599370.html)我们介绍了zookeeper的两种安装方式,相信
2016-03-23 18:04:50 732
转载 日志结构的合并树 The Log-Structured Merge-Tree
近年来,随着互联网数据的日益增长,管理分布式数据需求的日益增加,Bigtable[1]等一系列NoSQL数据库开始涌现。Bigtable是一个分布式的结构化数据存储系统,它被设计用来处理海量数据,其在提供Tablet服务时使用内存中的memtable和GFS[2]中的SSTable来相互配合着来存储数据更新,其中存储和更新的方法与日志结构的合并树[3](Log-Structured Merge
2016-01-13 10:42:37 1024
转载 Unsafe API说明
package sun.misc;import java.lang.reflect.Field;/*** * This class should provide access to low-level operations and its * use should be limited to trusted code. Fields can be accessed using * me
2015-11-18 10:03:15 646
转载 Ubuntu编译Hadoop源码异常总结
摘要 编译Hadoop源码出现的导常错误及解决方法,都是自己遇到过的,写下来待有缘人,勿跳坑目录[+]错误1:?12345678910[ERROR] Failed to execute goal org.apache.hadoop:
2015-11-14 15:00:03 1119
转载 Hadoop中HDFS文件系统NameNode的Federation设计文档(HDFS-1052:Hdfs scalability with multiple namenodes)
原文请参:https://issues.apache.org/jira/browse/HDFS-1052https://issues.apache.org/jira/secure/attachment/12453067/high-level-design.pdf译文如下:1 IntroductionTerminology:Federated HDFS,Namenod
2015-10-30 16:45:52 786
原创 yarn启用CGroups
1. Enabling CGroupsCGroups is a Linux kernel feature. Currently HDP supports CGroups on RHEL6 and Centos6. HDP does not support the default CGroups on Centos7 or RHEL7. However, Centos7 and RHEL7
2015-10-23 17:45:27 2386
转载 Apache Hadoop YARN – ResourceManager
原文地址:Apache Hadoop YARN – ResourceManagerResourceManager (RM) 是管理所有可用的集群资源并协助管理运行在YARN上的分布式应用的主要组件。RM与每个节点的NodeManagers (NMs)和每个应用的ApplicationMasters (AMs)一起工作。NodeManagers 遵循来自ResourceMan
2015-10-14 11:19:10 628
转载 hadoop(2.x)以hadoop2.2为例完全分布式最新高可靠安装文档
首先说一下这个安装过程需要注意的地方一、使用新建用户可能会遇到的问题(1)权限问题:对于新手经常使用root,刚开始可以使用,但是如果想真正的学习,必须学会使用其他用户。也就是你需要学会新建用户,但是新建用户,并不是所有人都会的。具体可以参考ubuntu创建新用户并增加管理员权限,这里面使用adduser是最方便的。也就是说你需要通过这里,学会给Linux添加用户,并且赋权,上
2015-10-13 15:14:32 566
转载 yarn基本原理
背景Yarn是一个分布式的资源管理系统,用以提高分布式的集群环境下的资源利用率,这些资源包括内存、IO、网络、磁盘等。其产生的原因是为了解决原MapReduce框架的不足。最初MapReduce的committer们还可以周期性的在已有的代码上进行修改,可是随着代码的增加以及原MapReduce框架设计的不足,在原MapReduce框架上进行修改变得越来越困难,所以MapReduce的comm
2015-09-02 17:15:43 641
原创 很高效的用于调度的最小堆
摘自于Hadoop大量文件调度合并public abstract class PriorityQueue { private T[] heap; private int size; private int maxSize; protected abstract boolean lessThan(Object a, Object b); @Suppr
2015-07-08 17:28:13 828
转载 红黑树
红黑树之前看了很多写红黑树的博客,但是感觉都讲的不太清楚!没说这样操作如何使他保持平衡的,于是疑惑重重,就看不下去了,一次不经意看到一个人说维基百科的红黑树讲的好,我就随便点了一下一看——这下疯了~,怎么讲的这么好!可以说是把一个复杂的问题,讲得简单化!这太幸福了! 于是我就慢慢学会了!强烈推荐维基的这个讲解,再也找不到比这还好的讲解了!不知道它上边其它的怎么样,反正这个很好!!既然学会了
2015-06-29 17:19:53 585
转载 最大堆的插入/删除/调整/排序操作(图解+程序)(JAVA)
堆有最大堆和最小堆之分,最大堆就是每个节点的值都>=其左右孩子(如果有的话)值的完全二叉树。最小堆便是每个节点的值都 设有n个元素的序列{k1,k2,...,kn},当且仅当满足下列关系时,称之为堆。 堆的三种基本操作(以下以最大堆为例): ⑴最大堆的插入 由于需要维持完全二叉树的形态,需要先将要插入的结点x放在最底层的最右边,插入后满 足完全二叉树
2015-01-22 12:09:48 1046
转载 Map-Reduce的过程解析
一、客户端Map-Reduce的过程首先是由客户端提交一个任务开始的。提交任务主要是通过JobClient.runJob(JobConf)静态函数实现的:public static RunningJob runJob(JobConf job) throws IOException { //首先生成一个JobClient对象 JobClient jc = ne
2015-01-08 15:24:05 719
翻译 MapReduce源码分析之MapTask分析(二)
SpillThread分析为什么需要Spill内存大小总是有效,因此在Mapper在处理过程中,数据持续输出到内存中时,必然需要有机制能将内存中的数据换出,合理的刷出到磁盘上。SpillThread就是用来完成这部分工作。SpillThread的线程处理函数只是做一层封装,当索引表中的kvstart和kvend指向一样的索引位置时,会持续处于等待过程,等待外部通知需要触发s
2015-01-05 11:31:32 805
转载 java中volatile关键字的含义
在java线程并发处理中,有一个关键字volatile的使用目前存在很大的混淆,以为使用这个关键字,在进行多线程并发处理的时候就可以万事大吉。Java语言是支持多线程的,为了解决线程并发的问题,在语言内部引入了 同步块 和 volatile 关键字机制。 synchronized 同步块大家都比较熟悉,通过 synchronized 关键字来实现,所有加上synch
2014-12-26 11:53:56 513
转载 Linux查询CPU、内存、网卡等信息
查看CPU信息(型号)# cat /proc/cpuinfo | grep name | cut -f2 -d: |uniq -c 1 Intel(R) Core(TM)2 Duo CPU T6600 @ 2.20GHz(看到有1个逻辑CPU, 也知道了CPU型号)# getconf LONG_BIT32(说明当前CPU运行在32bit
2014-12-15 11:25:55 571
原创 数据结构中各种内部排序算法的比较
http://blog.itpub.net/15203236/viewspace-6165821 快速排序(QuickSort)快速排序是一个就地排序,分而治之,大规模递归的算法。从本质上来说,它是归并排序的就地版本。快速排序可以由下面四步组成。(1) 如果不多于1个数据,直接返回。(2) 一般选择序列最左边的值作为支点数据。(3) 将序列分成2部分,一部分都大于支
2014-12-05 16:38:06 871
转载 MapReduce: 提高MapReduce性能的七点建议[译]
Cloudera提供给客户的服务内容之一就是调整和优化MapReduce job执行性能。MapReduce和HDFS组成一个复杂的分布式系统,并且它们运行着各式各样用户的代码,这样导致没有一个快速有效的规则来实现优化代码性能的目的。在我看来,调整cluster或job的运行更像一个医生对待病人一样,找出关键的“症状”,对于不同的症状有不同的诊断和处理方式。 在医学领域,没
2014-11-20 18:29:11 689
转载 [Log4j] 配置Log4j
Log4J的配置文件(Configuration File)就是用来设置记录器的级别、存放器和布局的,它可接key=value格式的设置或xml格式的设置信息。通过配置,可以创建出Log4J的运行环境。1. 配置文件Log4J配置文件的基本格式如下: #配置根Loggerlog4j.rootLogger = [ level ] , appenderName1 ,
2014-11-19 17:43:02 538
转载 Ubuntu安装swftools
Ubuntu安装swftools1软件地址http://download.savannah.gnu.org/releases/freetype/freetype-2.4.0.tar.gzhttp://www.ijg.org/files/jpegsrc.v9.tar.gzhttp://swftools.org/swftools-0.9.2.tar.gz2.安装Jpegsr
2014-11-18 16:19:59 1246
转载 hbase多表输出
1.设置输出格式 job.setOutputFormatClass(MultiTableOutputFormat.class);2.reduce时声明表名 ImmutableBytesWritable putTable1 = new ImmutableBytesWritable(Bytes.toBytes("analyzer_w1"));3.reduce写数据 context.w
2014-10-16 11:56:57 1320
转载 14.04 安装 A卡HD7750 官方闭源 显卡驱动
今天在使用Ubuntu自带的开源显卡驱动的情况下,用compiz开了下3D,效果不太理想,有些卡顿!因此打算装上AMD的官方闭源驱动,效果很明显,没有了卡顿现象。在显卡管理中稍微设置下,之前的锯齿也没了,装上官方驱动再开3D,效果看得见! 首先去官网下载对应的驱动,点击进入官网,按情况设置好后,点击显示结果。之后,进入下载页面:
2014-10-06 15:05:39 1982
转载 NoSql中的B-tree、B+tree和LSM-tree
首先来回答一个问题:为什么在磁盘中要使用b+树来进行文件存储呢?原因还是因为树的高度低得缘故,磁盘本身是一个顺序读写快,随机读写慢的系统,那么如果想高效的从磁盘中找到数据,势必需要满足一个最重要的条件:减少寻道次数。我们以平衡树为例进行对比,就会发现问题所在了:先上个图 这是个平衡树,可以看到基本上一个元素下只有两个子叶节点 抽象的来看,树
2014-09-30 11:03:40 819
原创 Hadoop程序,出现 Filesystem closed 异常
一个多线程的程序。FileSystem.get(getConf())返回的可能是一个cache中的结果,它并不是每次都创建一个新的实例。这就意味着,如果每个线程都自己去get一个文件系统,然后使用,然后关闭,就会有问题。因为你们关闭的可能是同一个对象。而别人还在用它!所以最好是在main函数中就创建好filesystem对象然后在不同函数之间来回传递吧。在main函数用用try…final
2014-09-29 11:19:31 2120
转载 Hbase访问方式之Mapreduce
概述:Hbase对Mapreduce API进行了扩展,方便Mapreduce任务读写HTable数据。一个简单示例:说明:从日志表中,统计每个IP访问网站目录的总数package man.ludq.hbase;import java.io.IOException;import org.apac
2014-09-26 15:16:02 663
转载 mr任务之从多个Hbase表中读取数据进行处理
从两个不同的Hbase表中读取数据:在reduce中根据数据结构 判断数据是来源于那个Hbase表即可// 设置查询条件 List scans = new ArrayList(); Scan scan1 = new Scan(); scan1.setCaching(100); scan1.setCacheBlocks(false); scan1.setAttribute
2014-09-26 15:13:11 1606
转载 HBase高性能复杂条件查询引擎
——索引的实质是另一种编排形式的数据冗余,高效的检索源自于面向查询特别设计的编排形式,如果再辅以分布式的计算框架,就可以支撑起高性能的大数据查询。本文原文出处: http://blog.csdn.net/bluishglc/article/details/31799255 严禁任何形式的转载,否则将委托CSDN官方维护权益!Apache HBase™是一个分布式、可伸缩的NoS
2014-09-19 11:36:11 1069
转载 原码, 反码, 补码 详解
本篇文章讲解了计算机的原码, 反码和补码. 并且进行了深入探求了为何要使用反码和补码, 以及更进一步的论证了为何可以用反码, 补码的加法计算原码的减法. 论证部分如有不对的地方请各位牛人帮忙指正! 希望本文对大家学习计算机基础有所帮助! 一. 机器数和真值在学习原码, 反码和补码之前, 需要先了解机器数和真值的概念.1、机器数一个数在计算机中的二进制表示形式
2014-09-18 15:10:45 557
转载 JAVA移位运算符
移位运算符就是在二进制的基础上对数字进行平移。按照平移的方向和填充数字的规则分为三种:>(带符号右移)和>>>(无符号右移)。 在移位运算时,byte、short和char类型移位后的结果会变成int类型,对于byte、short、char和int进行移位时,规定实际移动的次数是移动次数和32的余数,也就是移位33次和移位1次得到的结果相同。移动long型的数值时,规定实际移动的次数是移动次
2014-09-18 14:45:02 924
转载 字母组合算法
a、b、c三个字母,得到这样一组组合集合: a、b、c、ab、ac、ba、bc、ca、cb、abc、acb、bac、bca、cab、cba 算法源码如下: public class Comb{ public static void main(String[] args){ comb();
2014-09-03 14:06:32 1463
转载 JAVA NIO 实例
import java.io.IOException;import java.net.InetSocketAddress;import java.net.ServerSocket;import java.nio.ByteBuffer;import java.nio.channels.SelectionKey;import java.nio.channels.Selector;impor
2014-09-03 14:05:53 522
转载 Impala/Hive现状分析与前景展望
Impala和Hive野史提到Impala就不得不提Google的Dremel,处理PB级数据规模的基于SQL的交互式、实时数据分析系统。Dremel是Google推出的PaaS数据分析服务BigQuery的后台。Google已经有了MapReduce,为什么还要开发Dremel呢?Dremel/Impala类系统和MapReduce有什么区别呢?Hadoop现在已经成为BigDa
2014-08-06 17:17:20 1074
Hortonworks Data Platform: HDFS Administration Guide
2015-10-26
Hortonworks Data Platform: YARN Resource Management
2015-10-26
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人