自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

大米瓶子的博客

专业填坑二十年

  • 博客(44)
  • 收藏
  • 关注

原创 CDH官网禁止下载后的应对策略

有几年没更新了,稍微写点证明自己还活着。 由于众所周知的原因,Cloudera在今年2月份关闭了CDH(以及HDP)的所有免费下载渠道,对于想装hadoop玩一玩的初学者、已有“白嫖”集群的升级都会受到影响。这里提示几种应对策略,排名分先后: 一、在Cloudera官网填表后,获得一组账号密码,然后将username:password@拼在下载地址前即可访问,这种方式可以下到60天的试用版。60天到期后,CM不可进入,但集群正常运行,考虑到运维的方便性,不进CM几乎是不可能支持商...

2021-05-12 14:57:00 2919 1

原创 讲几个小故事

今天读到一篇不错的文章,来自微信公众号“3W互联网深度精选”的《管理者的无用功:靠加班、靠团建、靠个人》,深有感触,文章我就不转了,估计这个号也是转别人的,大家可以自己找原文看。       说教的东西我就不重复了,我也不想下结论、扣帽子,死认某种管理方式一定是对的,另一种管理方式一定是错的,那就太绝对了。给大家讲几个小故事,个中道理大家可以自行体会。 加班故事一:      

2017-08-04 08:32:06 1173 2

原创 Java多线程,Thread和Runnable究竟该用哪个

很久没写博客了,内心有一丝罪恶感。其中一个原因是最近做的一些东西不适合在博客上公开。       今天抽空来说说Java多线程中的一个小话题,也是新人经常会遇到的。起因是我在给新人找培训资料的时候,在网上看到了很多Thread和Runnable究竟该用哪个的讨论,绝大多数这类文章都是同一个祖师爷的,都用了窗口卖票的例子。以下地址是一篇比较有代表性的(搞笑的是连Runnable都拼错了):h

2017-04-10 16:03:22 7229 4

原创 Spring Boot引用本地jar包

最近在做一个SpringBoot的小工程,这类工程通常都是使用maven管理依赖并打包,但最近这个工程因为某些原因(比如企业自己的jar包,或者修改后的开源项目jar包)需要引用本地jar包。这种情况有两种方案可以采用:       一,搭建一个本地maven源,仍然通过maven管理。这种方法的缺点是,一旦工程需要多人维护,每人都需要搭一个本地源,比较麻烦,除非公司有公用的内部maven源,

2017-01-03 17:35:22 34464 11

原创 SUSE安装SaltStack后的pam认证问题

最近项目需要在几个集群的机器上部署SaltStack,操作系统有SUSE11 SP3和SP4两个版本的。之前同事在centos的虚拟机上测试一路顺风顺水,没想到上SUSE遇到一堆坑。             坑1:在SaltStack的官网上可以找到两个SUSE用的源,从Document- Installation - SUSE下找到的源是opensuse的(http://download

2016-10-15 19:59:46 3427

原创 一个SpringSecurity引发的表单提交乱码问题

这个问题困扰了大半个下午,好久没遇到耗时这么久的问题了,所以还是值得一写的。    最近在做一个工程,前后端交互用的是Spring4.3.1+SpringSecurity4.1.3+thymeleaf3.0.1,版本都比较新,总体还是比较愉快的。今天在做一个form的时候,有一个字段允许填写中文的,但输入中文后提交回显乱码。起初以为是数据库连接编码问题(今天刚换了本地的调试库),但打了个断点发

2016-10-04 20:09:10 2615 6

原创 ZooKeeper的客户端库Curator

正常来说zk的内容到上一篇就可以结束了,但为了更好地使用zk,Curator是无法回避的话题。Curator是Netflix捐献给Apache的一套ZooKeeper客户端类库,提供了强大而简洁的封装,大大减少使用zk时重复发明轮子的情况。不客气的说,国内的Java程序员99%都是辣鸡,代码都是调对的而不是写对的,还特别喜欢重复发明轮子。相比之下,国外开源社区的代码质量就高得多,久经考验,即使有b

2016-08-20 15:30:06 2765

原创 ZooKeeper的原生API

之所以称之为“原生”,是为了和下次讲的Curator有所区别。讲述的版本还是以3.5.1为例。    API中一共有5个包:org.apache.zookeeperorg.apache.zookeeper.clientorg.apache.zookeeper.dataorg.apache.zookeeper.serverorg.apache.zookeeper.se

2016-08-13 16:26:07 2150

原创 ZooKeeper命令行工具zkCli的使用

本次来讲命令行工具zkCli.sh的使用,这个工具对运维人员是非常重要的,许多对zk的管理操作都需要使用它来进行。作为一个示例,我会用zkCli.sh来创建一个主从模式系统,当然这只是作为演示,对开发人员来说不会这样操作。    首先需要配置zk的环境变量保证zkCli.sh能正常执行,这个过程省略。    连接zk集群使用命令zkCli.sh -server host:port,

2016-08-06 17:15:16 14171 1

原创 ZooKeeper的安装与配置

本期开始进入实际操作,大致安排如下:本期讲安装配置,侧重于配置;下期讲用zk命令行实现一个主从模式;下下期讲zk的Java API。很多人喜欢看这些内容,其实我个人觉得这才是最无聊的,毕竟“API型人才”多如牛毛,懂原理的一百个里都找不到一个。安装1,从官网下安装包http://www.apache.org/dyn/closer.cgi/zookeeper/

2016-07-30 18:28:34 4172 1

原创 ZooKeeper的三种角色

上周有人和我说,有篇讲怎么调zk API的水文都上了csdn首页,我表示相当无奈,毕竟大多数人看一门技术就是想知道怎么调API,很少有人去了解内部机制。而懂不懂原理,恰恰是码农和架构师的最大区别。我肯定也会讲API,不过是下下篇的内容,最近仍然要讲原理。    这次说的是ZooKeeper的三种角色,也就是ZooKeeper服务器的三种节点类型(需要区分这里的“节点”和名字空间的“节点”,

2016-07-25 19:32:21 20655 1

原创 ZooKeeper的名字空间节点(有关znode的一切)

上一篇有人跟我说比较深奥和抽象,确实,我写这个不是按照循序渐进的写法写的,而是先写那本OREILLY书最不清楚的部分,然后再写次不清楚的……到最后会覆盖zk的绝大多数特性,这时候会再给出一个阅读次序的建议。    这篇来说说有关znode的一切,比较容易理解,也很容易通过zkCli.sh来实验。分层名字空间    上图是ZooKeeper的分

2016-07-16 20:24:48 5289

原创 ZooKeeper的原子广播(ZAB协议)

ZooKeeper作为高可用的一致性协调框架,自然有着一致性算法的实现,ZooKeeper使用的是ZAB协议作为数据一致性的算法,即ZAB(ZooKeeper Atomic Broadcast )。ZAB在Paxos算法上做了重要改造,和Paxos有着明显的不同。为讨论ZAB,我们假定ZooKeeper已经开启仲裁模式(ZooKeeper还有一种独立模式,除实验需求以外不要开,因为它无法避免脑裂)

2016-07-10 15:39:04 16337

原创 当我问java问题的时候我在问些什么

最近团队扩张比较快,不管是开发还是运维都需要懂java的人,前后面过几十人有了。我觉得面试题除了要能评价面试者的技术水平,还要看态度是否严谨。这几天我问得比较多的一个题是关于public static void main(String[] args)的:       “所有java程序的入口都是个main函数。”       说出这句,通常有10%的大神会打断我说,不一定!这些大神基本

2016-07-03 09:13:40 827

原创 Kafka Streams入门指南

应该会有不少人觉得我标题打错了,是不是想讲SparkStreaming或者Kafka+SparkStreaming啊?实际上这不是笔误,Kafka Streams是Kafka 0.10提供的新能力,用于实时处理Kafka中的数据流,和现有的流处理技术如SparkStreaming,Storm,Flink还是有些区别的。1 概况    Kafka Streams是一套处理分析Ka

2016-06-10 11:21:24 22230

原创 Hadoop2.8.0新特性

Hadoop2.8.0将会是3.0版本前最后一个重要版本(2.9基本只会搞一些小修补了),即将发布,这个版本虽然没什么革命性的新功能,但是努力提升维护、调试等工作的效率,值得关注。 Common HADOOP-10971 Add -C flag to make `hadoop fs-ls` print filenames only 在hadoop fs -ls 命令中增加-C标志,

2016-06-05 09:42:48 6916

原创 Oracle/Hive/Impala SQL比较(5)

5 Function     指数据库内置的function,不讨论UDF。另外,操作符都不比较了,区别不大。5.1 数学函数功能OracleHiveImpalaABS绝对值,有有有SIN/SINH/ASIN/COS/COSH/ACOS/TAN/T

2016-05-15 09:27:13 29246

原创 Oracle/Hive/Impala SQL比较(3-4)

3 DML3.1 Load Files操作OracleHiveImpalaLOADLOAD DATA [LOCAL] INPATH 'filepath' [OVERWRITE] INTO TABLE tablename [PARTITION (partcol1=val1, partcol

2016-05-15 09:24:45 5410

原创 Oracle/Hive/Impala SQL比较(1-2)

因为一部分是写给公司同事看的,会适当阉割。     分为五部分介绍,以表格形式对比。各软件默认版本如下:Oracle 11g, Hive 0.13.0, Impala 2.1.0,如有例外会指出。空白说明没有这种类型或功能。     Cloudera官方文档有一篇文章阐述了Impala和Hive的差异(http://www.cloudera.com/documentation/ar

2016-05-15 09:23:35 8042

原创 虚拟化的层次与机制

最近几年随着并行计算、集群等技术的火热,虚拟机领域焕发了第二春。虚拟化就是指多台虚拟机共享一台物理机硬件的计算机体系结构技术。虚拟化的基本思想是分割软硬件以产生更好的系统性能(实际上,软硬件资源并没有增加,只是利用率提高了)。一个例子就是常见的“虚拟内存”,通过将一部分不用的磁盘写为页面文件,可以获得更大的内存地址空间,我们就可以跑更大的程序了。1.  层次     我们都知道,传

2016-05-02 15:51:38 19194 1

原创 集群资源共享的三种方式

最近被问到分布式系统的共享方式,结合之前学过的黄铠老师的书稍微说几句。     各种分布式系统,不管是Hadoop,SMP,MPP还是其他巴拉巴拉的东西,共享资源的方式不外乎以下三种,见下图。该图最早来自黄铠老师的论文(K.Hwang,Z.Xu, Support of clustering and availability),我重新画了下,各部分含义如下:P/C处理器和缓存,M内存,D磁盘,N

2016-04-24 15:16:20 11585

原创 坏盘导致Kafka故障一例

最近工作中又踩到Kafka的一坑。            某日收到业务侧告警说无数据,首先怀疑Flume问题,因为之前踩的Flume坑多嘛,发现某个Flume实例中有ChannelFullException,因为用的是memory channel,确认可丢数据后杀死Flume进程,起来后channel又满了。            于是确定应该是下游Kafka问题,查了每个Kafka实例的

2016-04-23 20:45:50 7140 1

翻译 NoSQL数据库介绍(7)

7 总结     本文的目的是提供一个全面的NoSQL数据库潮流的概述和介绍,其于最近几年出现,为占优势地位的RDBMS提供了替代品。第2章讨论了开发和使用非关系型数据库系统的原因、理由和动机。这可以概括为高扩展性的需要,海量数据处理,在众多(通常是商品)服务器之间分布数据的能力,继而产生DBMS的面向分布式的设计(而不是在上层增加分布式能力),以及与编程语言和其数据结构的平滑整合

2016-04-14 14:50:06 3570

翻译 NoSQL数据库介绍(6)

6 面向列的数据库     在本章中将研究第三类NoSQL数据存储:面向列的数据库。以列来替代行存储和处理数据的方法起源于分析和商业智能,在一个无共享的大规模并行处理(注:MPP)架构中的列存储可用于构建高性能应用。这一领域引人注目的产品是Sybase IQ和Vertica([ Nor09 ])。然而,在这一章中,面向列的存储类型被视为少一些纯粹性,也包括了整合面向列和行的数据存储

2016-04-13 08:07:49 4198

翻译 NoSQL数据库介绍(5)

5 文档数据库     在这一章中另一类NoSQL数据库将被讨论。文档数据库被许多人认为是从简单的键/值存储到稍复杂和有意义的数据结构的下一个逻辑步骤,因为它们至少允许在文档中封装键/值对。另一方面,文档不需要符合严格的模式,这省去了模式迁移工作的需要([ Ipp09 ])。在这一章中,Apache CouchDB和MongoDB作为这类文档数据库的代表将被研究。

2016-04-10 15:03:04 3049

翻译 NoSQL数据库介绍(4)

4 键/值存储     讨论了常用的概念、技术和模式后,第一类NoSQL数据存储会在本章进行研究。键/值存储通常有一个简单的数据模型:一个map/dictionary,允许客户按键来存放和请求数值。除了数据模型和API,现代键/值存储倾向于高扩展性而非一致性,因此它们中的大多数也省略了富ad-hoc查询和分析功能(尤其是联接和聚合操作被取消)。通常,可存储的键的长度被限制为一定的字

2016-04-05 12:54:53 3308

翻译 NoSQL数据库介绍(3)

3 基本概念,技术和模式     本章概述了一些NoSQL数据存储常见的基本概念、技术与模式,并不仅限于一类非关系型数据库或一个单一的NoSQL存储。众多NoSQL数据存储和个别产品的具体概念和技术将在随后的章节中讨论。3.1 一致性3.1.1 CAP理论     在2000年的ACM PODC研讨会上主题为“走向鲁棒的分布式系统”的演示文稿中,Eric

2016-04-03 09:50:35 1419

翻译 NoSQL数据库介绍(2)

2 NoSQL潮流     在这一章中,将一起讨论NoSQL潮流的动机和主要驱动力,以及NoSQL主张的批评和反馈。本章将通过不同的尝试得出结论来分类和描述NoSQL数据库。其中一个分类法将在随后的章节中被提出。2.1 动机和主要驱动力     NoSQL这个词汇首先用在1998年对关系数据库排除SQL使用的论文([ Str10 ])。这个词在2009年再次被选

2016-03-31 09:15:18 3178

原创 Kafka源码分析(6)

六  其他1、Producer        首先来看org.apache.kafka.clients.producer中的KafkaProducer类实现,org.apache.kafka开头的包全部是以java实现的,为用户提供调用kafka组件的功能。该类代码如下:public class KafkaProducer implements Producer {……………

2016-03-30 09:10:14 1389

原创 Kafka源码分析(5)

五  LogSubsystem1、Log        Kafka通过Log文件将消息物化到磁盘中,Log只能在尾部追加而不能修改,它由一系列的LogSegments组成,每个LogSegment都有一个表示该段第一条消息位置的base offset。当往最后一个LogSegment中追加数据超过一定的时间或大小(此参数可配置)后,会生成一个新的LogSegment。   

2016-03-30 09:08:19 584

原创 Kafka源码分析(4)

四、Replication Subsystem1、Replica        Replica是kafka分发数据的最小单元,主要代码如下:class Replica(val brokerId: Int, val partition: Partition, time: Time = SystemTime,

2016-03-29 08:52:57 1868

原创 Kafka源码分析(3)

三 API Layer1、KafkaApis        该类是各种API的封装,通过传入的requestId来决定调用何种API,最重要的handle()方法如下所示:def handle(request: RequestChannel.Request) { try{ trace("Handling request: " + request.reques

2016-03-28 13:43:42 845

原创 Kafka源码分析(2)

二Network Layer1、SocketServer           主要用来创建和销毁Acceptor和Processor,主要的逻辑前面已经讲过了。 2、Acceptor线程           在线程的run()方法里,首先等待broker初始化结束,这里使用了java.util.concurrent.CountDownLatch进行同步,创建Acceptor线程

2016-03-27 15:24:00 529

原创 Kafka源码分析(1)

选择Kafka0.8.2.2版本进行说明,0.8以后基本都是这个架构。因为0.9以后版本的设计有比较大的变化,因此不适用于0.9以后版本代码。           本文假设读者对Kafka的基本概念已有了解。一启动1、入口           Kafka类中的main方法是整个Kafka的入口。首先是解析命令行参数,并封装为一个KafkaConfig对象。接着用该参

2016-03-26 10:33:14 653

原创 函数式编程与Scala

1函数式编程      函数式编程(FunctionalProgramming,简称FP)是一种编程范式,我们常见的编程范式有命令式编程(常用的面向对象编程就是),函数式编程,逻辑式编程。       命令式编程、函数式编程的区别:命令式编程是面向计算机硬件的抽象,抽象元素有变量(对一个存储单元),赋值语句(对应获取、存储指令),表达式(对应内存引用和算术运算),控制语

2016-03-25 09:09:04 877

原创 几种分布式消息系统比较(old)

0 引言         随着互联网行业的发展和IT技术在行业内的广泛应用,许多互联网企业的服务器每天产生海量的日志。如天翼阅读平台每天产生的PV日志有上亿条;淘宝网每天的用户行为日志达数TB大小。如何高效地收集日志,并根据不同的时延要求向下游系统转发,是一个巨大的挑战。         传统日志收集技术使用大容量高吞吐的日志服务器收集集群中每台机器的本地日志,再向下游系统转发。这种架构有

2016-03-24 09:56:18 2696

原创 商业智能与大数据结合的一点感想(old)

0引言        商业智能的概念兴起于上世纪90年代,经过近20年的发展,已经得到广泛的认可和应用。越来越多的中大型企业建设了自己了商业智能系统以提升商业价值,甚至小微型企业也有考虑使用商业智能工具来辅助决策。        近3-4年以来,随着数字设备性能的飞速发展,信息爆炸的大数据时代降临。传统的商业智能模式、系统应该如何发展,以适应大数据带来的变革并从中受益?笔者结合自身

2016-03-24 09:50:36 4988

翻译 NoSQL数据库介绍(1)

最近看了一些英文文档,其中有一篇把分布式系统和第一代NoSQL的大背景介绍得很清楚,虽然文档本身是10年写的,而且没有介绍某种特定NoSQL数据库的使用,但很多思想性的东西到今天看都非常有价值,于是决定翻译一下,翻译中的各种bug请各位指出。原文可以在 http://www.christof-strauch.de/nosqldbs.pdf 找到。    另外由于工作量浩大(原始文档有140多页

2016-03-23 10:06:50 773

原创 Impala安装手册

鄙人最近准备离职,所以把之前工作中积累的一些东西整理下发上来,其中一部分发在公司内刊上,一部分是组内交流文档,标“原创”的都是本人原创,转载请注明谢谢!    Impala这个东西在我们实践应用中还是不错的,查询速度可以,就是稳定性一般,做好监控的话没有问题。我们装的是配套CDH5u3的2.1版本,装其他版本不是不可以,只不过cloudera不保证一定可用,需要自己解决一些坑,如果有明

2016-03-22 09:56:18 8551 1

原创 Hadoop集群安装、扩容等操作

0 Hadoop集群机器配置公司正式集群机子:内存32G存储24T,另有1块1T的本地盘namenode和secondery namenode配Xeon E5-2640,24线程其余节点配Xeon E5-2609,8线程 安装cdh 5u3 1 Hadoop集群安装1.1 Hadoop环境配置1.JDK安装配置1)关闭防火墙:chkconfig iptabl

2016-03-21 09:59:42 6179

空空如也

空空如也

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

TA关注的人

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